Имя: Пароль:
1C
 
Присваивание значения переменной в форме
0 cons74
 
30.12.15
11:22
Добрый день.

Открываю типовой модуль формы РТУ. Вверху идет определение переменных. В самом низу - переменным присваиваются значения. Но половине переменных значения присваиваются в ПриОткрытии(). Зачем присваивать значения в 2х разных местах - не проще ли в одном?
1 mikecool
 
30.12.15
11:30
(0) это от религии программиста зависит
2 palpetrovich
 
30.12.15
11:31
ну, может что-то надо присвоисть до открытия
а может перемменные присваивали разные авторы, может у них разный взляд на это дело :)
3 GROOVY
 
30.12.15
11:33
Управляемые формы?
4 Mort
 
30.12.15
11:40
А кусок модуля с указанным примером выложить не сутба?
5 cons74
 
31.12.15
07:14
(3) обычные, УПП
(4) велкам:


////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ

Перем мОбновлятьВладельца Экспорт;

// Хранит текущую дату документа - для проверки перехода документа в другой период установки номера
Перем мТекущаяДатаДокумента;

// Хранит текущее значение учетной политики, организация является плательщиком ЕНВД
Перем мОрганизацияЯвляетсяПлательщикомЕНВД;

// Хранит текущее значение организации для контроля учетной политики, организация является плательщиком ЕНВД
Перем мТекущаяОрганизация;

// Хранит валюту взаиморасчетов, установленную в текущем договоре взаиморасчетов,
// используется для определения необходимости пересчетов при изменении договора.
Перем мТекущаяВалютаВзаиморасчетов;

// Хранит текущий договор контрагента
// используется для восстановления старого договора в случае некорректного выбора нового
Перем мТекущийДоговорКонтрагента;

Перем мВидДоговора;
Перем мПоДокументамРасчетов;
Перем мОтражатьВРегламентированномУчете;
Перем мРасчетыВУЕ;
Перем мВедениеВзаиморасчетов;
Перем мКачество;

// Устанавливается в значение "Истина", если пользователю можно менять цену
// в документе
Перем мМожноМенятьЦенуВДокументе;

//Используется для определения необходимости заполнения счетов в документе
Перем мСклад;

Перем мКолонкиТовары, мКолонкиВозвратнаяТара, мКолонкиУслуги, мКолонкиДокументы; //

Перем мРазрешитьНулевыеЦеныВОпте, мРазрешитьНулевыеЦеныВРознице;

// Хранит информацию о сумме без скидки документа.
Перем мРассчитыватьАвтоматическиеСкидки Экспорт;
Перем мМинимальныеЦены Экспорт;
Перем мСписокФильтров Экспорт;

// Хранит суммарное количество товаров в табличной части Товары
Перем мТекущееКоличествоТоваров;

// Автоотметка СкладОредра без учета заполненности ТЧ.
Перем мАвтоОтметкаСклада;

Перем мФормаСоставНабора, мТекущаяСтрокаНабор;

// Хранит дерево кнопок подменю заполнение ТЧ
Перем мКнопкиЗаполненияТЧ;

// Предыдущие значения реквизитов
Перем мСтароеЗначениеСделки, мСтароеЗначениеСклада;

Перем ПоказыватьВДокументахСчетаУчета;

Перем мТерминалы;

Перем мУчетнаяПолитика;

// Хранит курс редактируемой строки табличной части "Предоплата"
Перем мКурсСтрокиДокументаРасчетов;

Перем мПересчитыватьСкидку;

Перем мСтруктураПараметровДляПолученияДоговора;

// Хранит вохможность выписки счета-фактуру: при настройке учетной политики
// "Начислять НДС по отгрузке без перехода права собственности" и при УСН
Перем мВыписыватьСчетФактуру;

// Содержит значение функциональной опции "ИспользоватьОбменЭД"
Перем мИспользоватьОбменЭД;


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

    // Запомнить текущие значения реквизитов формы.
    мТекущаяДатаДокумента        = Дата;
    мТекущаяВалютаВзаиморасчетов = ДоговорКонтрагента.ВалютаВзаиморасчетов;
   ...
    

    //Запомним автоотметку поля шапки Склад
    мАвтоОтметкаСклада    = ЭлементыФормы.Склад.АвтоОтметкаНезаполненного;

    мВидДоговора                      = ДоговорКонтрагента.ВидДоговора;
    мПоДокументамРасчетов             = ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом;
    мРасчетыВУЕ                       = ДоговорКонтрагента.РасчетыВУсловныхЕдиницах;
    мВедениеВзаиморасчетов               = ДоговорКонтрагента.ВедениеВзаиморасчетов;
    ИзменитьСоставПодменюВыбораВидаОперации();                                      
    ...
    
    мСклад = Склад;

    // Сохраним текущее значение сделки и склада
    мСтароеЗначениеСделки = Сделка;
    мСтароеЗначениеСклада = Склад;

    мМинимальныеЦены = Новый ТаблицаЗначений;
    мМинимальныеЦены.Колонки.Добавить("Номенклатура");
    мМинимальныеЦены.Колонки.Добавить("ХарактеристикаНоменклатуры");
    мМинимальныеЦены.Колонки.Добавить("ЕдиницаИзмерения");
    мМинимальныеЦены.Колонки.Добавить("Цена");

    мСписокФильтров = УправлениеДопПравамиПользователей.ПравоНеОтпускатьТоварСЦенойНижеОпределенногоТипа();
        ...
    
    
КонецПроцедуры // ПриОткрытии()
...

////////////////////////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ

мОбновлятьВладельца = Ложь;

мКолонкиТовары         = ЭлементыФормы.Товары.Колонки;
мКолонкиУслуги         = ЭлементыФормы.Услуги.Колонки;
мКолонкиВозвратнаяТара = ЭлементыФормы.ВозвратнаяТара.Колонки;
мКолонкиДокументы      = ЭлементыФормы.ДокументыРасчетовСКонтрагентом.Колонки;

мРазрешитьНулевыеЦеныВОпте    = УправлениеДопПравамиПользователей.РазрешитьНулевыеЦеныВОпте();
мРазрешитьНулевыеЦеныВРознице = УправлениеДопПравамиПользователей.РазрешитьНулевыеЦеныВРознице();

мТекущееКоличествоТоваров = Товары.Итог("Количество");

мВыписыватьСчетФактуру = ложь;

мТерминалы = ПолучитьСерверТО().ПолучитьСписокУстройств(
            Перечисления.ВидыТорговогоОборудования.ТерминалСбораДанных);
            
мИспользоватьОбменЭД = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");

///////////////
Перем мКолонкиТовары, мКолонкиВозвратнаяТара, мКолонкиУслуги, мКолонкиДокументы; // - эти в конце заданы
мВидДоговора, мПоДокументамРасчетов - в ПриОткрытии()
6 DJ Anthon
 
31.12.15
07:27
наверное, надо, чтобы эти переменные заполнялись и при создании формы, и при повторном открытии
7 ЧеловекДуши
 
31.12.15
07:28
Вакханалия у Толстого клиента... Забей пиши как хочешь :)

А так. При создании формы, её могут и не открыть ;)
8 DJ Anthon
 
31.12.15
07:33
до открытия может что-то выполниться, где они нужны
2 + 2 = 3.9999999999999999999999999999999...