Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Доступ к флажку на форме из внешней процедуры (число прочтений - 246 )
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 44
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Доступ к флажку на форме из внешней процедуры
23. Августа 2023 :: 11:58
Печать  
Добрый день!

На форме есть несколько флажков (реквизит формы типа "Флажок").
Алгоритм, определяющий начальное состояние у этих флажков одинаковый.
Сделал процедуру, которая вызывается при открытии формы для каждого флажка, и вычисляет начальное значение флажка.

Код (C++)
Выбрать все
Процедура ПриОткрытии ()
    ВычислитьУстановитьФлажок(дФлажок1);
    ВычислитьУстановитьФлажок(дФлажок2);
    ВычислитьУстановитьФлажок(дФлажок3);
КонецПроцедуры

Процедура ВычислитьУстановитьФлажок (пФлажок)
     ...
     // вычисление
     ...
     пФлажок = лВычисленноеЗначение;
     ...
КонецПроцедуры
 



Однако, в процедуру "ВычислитьУстановитьФлажок " передается только значение флажка, и процедура не может изменить сам флажок.

Как передать в эту процедуру не значение флажка, а "ссылку" на сам реквизит флажка? Чтобы процедура могла изменить его значение?
Подскажите, плиз.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Доступ к флажку на форме из внешней процедуры
Ответ #1 - 25. Августа 2023 :: 06:52
Печать  
Процедура ПриОткрытии ()
    дФлажок1 = ВычислитьФлажок();
    дФлажок2 = ВычислитьФлажок();
    дФлажок3 = ВычислитьФлажок();
КонецПроцедуры

Функция ВычислитьФлажок()
     ...
     // вычисление
     ...
     Возврат лВычисленноеЗначение;
     ...
КонецФункции


т.к. в приведенном примере ничего не сказано про зависимость
"// вычисление" от переданного значения флажка ))
  

1&&2&&3
Наверх
 
IP записан
 
Arbuz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 64
Зарегистрирован: 06. Февраля 2019
Re: Доступ к флажку на форме из внешней процедуры
Ответ #2 - 25. Августа 2023 :: 12:31
Печать  
Код (C++)
Выбрать все
//======================================================================
Процедура ВычислитьУстановитьФлажок(пФлажок)

	_ВычисленноеЗначение = пФлажок.Значение;

	// ...
	// вычисление
	// ...

	пФлажок.Значение = _ВычисленноеЗначение;

	// ...

КонецПроцедуры // ВычислитьУстановитьФлажок

//*******************************************
Процедура ПриОткрытии()

	_РасшФорма = СоздатьОбъект("РасширениеФормы");
	Для _й = 1 По 3 Цикл
		_АтрФорма = _РасшФорма.ПолучитьАтрибут("дФлажок" + _й);
		ВычислитьУстановитьФлажок(_АтрФорма);
	КонецЦикла;

КонецПроцедуры // ПриОткрытии
 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать