В начало

ФО «Валютный учет»

 

            Постановка задачи: необходимо создать функциональную опцию (ФО) «Валютный учет» в зависимости от типа выбранного договора (валютный/рублевый). Хранится признак будет в справочнике «Договоры» в виде реквизита «Валютный учет», тип реквизита – булево.

Рис. 1. Признак валютного договора

Рис. 1. Реквизит «ВалютныйУчет» в договоре

           

            Далее заходим в раздел дерева объектов «Функциональные опции», создаем новый объект. На закладке «Основные» задаем имя «ВалютныйУчет» и указываем место хранения функциональной опции.

Рис. 1. Закладка «Основные» ФО «Валютный учет»

Рис. 2. Закладка «Основные» ФО «Валютный учет»

 

            Затем на закладке свойств «Состав» указываем в каких документах, что изменится при переключении функциональной опции. Ниже показано добавление реквизита «Валюта» в состав ФО.

Рис. 2. Закладка свойств «Состав» ФО

Рис. 3. Закладка свойств «Состав» ФО

 

            Потом переходим на ветку «Параметры функциональных опций» и создаем новый параметр «Договор», устанавливаем для него «Использование = Справочникоговоры».

Рис. 3. Параметр «Договор» ФО

Рис. 4. Параметр «Договор» ФО

 

            Затем возвращаемся в документ «Приходная» и в модуле формы добавляем событие «ПриСозданииНаСервере», а также событие при изменении поля «Договор» документа.

 

Листинг 1. Модуль формы документа «Приходная»

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

      ПараметрФО = Новый Структура("Договор", Объектоговор);

      УстановитьПараметрыФункциональныхОпцийФормы(ПараметрФО);

КонецПроцедуры

 

&НаКлиенте

Процедура ДоговорПриИзменении(Элемент)

      ПараметрФО = Новый Структура("Договор", Объектоговор);

      УстановитьПараметрыФункциональныхОпцийФормы(ПараметрФО);

КонецПроцедуры

           

Рис. 5. Шапка документа «Приходная» без поля «Валюта»

 

Теперь при выборе документа или редактировании поля договор в документе «Приходная» появляется поле «Валюта» в зависимости от того валютный договор или нет.

Рис. 6. Появление поля «Валюта» в шапке документа при выборе валютного договора

           

            Хотя, если заниматься только видимостью полей на форме, то можно и не заморачиваться всякими функциональными опциями, а просто отключить программно видимость конкретного поля.

 

Листинг 2. Альтернативный вариант отключения видимости поля «Валюта» в модуле формы

&НаСервереБезКонтекста

Функция ПризнакВалютногоДоговора(ZZZ)

      Возврат ZZZ.ВалютныйУчет;   

КонецФункции

 

&НаКлиенте

Процедура ДоговорПриИзменении(Элемент)

      Если ПризнакВалютногоДоговора(Объектоговор) = Истина Тогда

            ЭтаФормалементы.Валюта.Видимость = Истина;

      Иначе

            ЭтаФормалементы.Валюта.Видимость = Ложь;

      КонецЕсли; 

КонецПроцедуры

 

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

      //Если ПризнакВалютногоДоговора(Объектоговор) = Истина Тогда

      Если Объектоговор.ВалютныйУчет = Истина Тогда

            ЭтаФормалементы.Валюта.Видимость = Истина;

      Иначе

            ЭтаФормалементы.Валюта.Видимость = Ложь;

      КонецЕсли; 

КонецПроцедуры

 

ПРИМЕЧАНИЕ: все сделано на версии 8.3, интерфейс «Такси»