25.15. Контекст обработки Фузеева

145. Загрузите обработку: выберите Файл | Открыть, откройте папку Extforms, выберите файл Фузеева.ert, выберите Открыть.

145. Вставьте элемент: выберите Диалог, выберите Вставить | Текст, выберите мышью место размещения текста, в поле Заголовок введите СтавкиНДС, нажмите ОК.

146. Вставьте элемент: выберите Вставить | Реквизит Диалога, выберите мышью место размещения поля, в поле Идентификатор введите пер, выберите вкладку Тип, в списке Тип выберите Перечисление.СтавкиНДС, нажмите ОК.

147. Выберите Модуль обработки Фузеева, закомментируйте Пример 15.

148. Введите следующий код :

Пример 25.16. Контекст обработки

//Пример 16
 //Начальные значения переменных диалога дЧ и пер
 процедура ПриОткрытии()
    дЧ=5.55;
    пер=Перечисление.СтавкиНДС.ЗначениеПоНомеру(2); //НДС10
конецПроцедуры;

 

149. Проверьте синтаксис.

150 Сохраните обработку: Ctrl+S.

151. Откройте другую свою обработку: выберите Файл | Открыть, откройте папку Extforms, выберите файл ОткрытьФузеева.ert, выберите Открыть.

152. Выберите Модуль обработки ОткрытьФузеева, отредактируйте код:

Пример 25.17. Контекст

//Пример 15+17
перем контОбрШолина;
// Изменяет значения переменных дЧ и пер и обновляет диалог обработки Фузеева
процедура НовыйКонтекст(контОбрФузеева)
 Сообщить(контОбрФузеева.Дч); // 5.55
 Сообщить(контОбрФузеева.пер);
 Предупреждение("Сейчас будут изм. переменные дЧ и пер обработки
Фузеева");
 // Изменяем переменные диалога дЧ и пер обработки Фузеева и смотрим на ее
диалог
 контОбрФузеева.Дч = 7.98;
 контОбрФузеева.пер = Перечисление.СтавкиНДС.ЗначениеПоНомеру(3);  //НДС20
 // Обновляем диалог обработки Шолина
 контОбрФузеева.Форма.Обновить( );
конецПроцедуры // НовыйКонтекст
процедура Открыть( ) // Открывает обработку Фузеева
перем флаг, имяФайла;
флаг = ФС.ВыбратьФайл(0, имяФайла, , 
"Находим файл Фузеева.ert", "Отчет и обработки | *.ert");
если флаг = 1 тогда // Если файл обработки выбран
 если ОткрытьФорму("Отчет", контОбрФузеева, имяФайла) = 0 тогда
  Предупреждение("Не удается открыть обработку " + имяФайла);
  Возврат;
 иначе
  НовыйКонтекст(контОбрФузеева);// Изменяем значения переменных дЧ и пер
 конецЕсли; // и обновляем окно формы обработки Фузеева
иначе
 Предупреждение("Файл обработки не выбран");
конецЕсли;
конецПроцедуры // Открыть
//закрывает отк. Обработку Фузеева, используя для доступа к методу Закрыть
// переменную модуля контОбрФузеева
процедура ПриЗакрытии( )
 если ПустоеЗначение(контОбрФузеева) = 0 тогда
  контОбрФузеева.Форма.Закрыть( )
 конецЕсли;
конецПроцедуры 

 

151. Проверьте синтаксис.

152 Сохраните обработку: Ctrl+S.

153 Запустите 1С:Предприятие: нажмите F11, выберите Отчеты | Открыть, выберите Открыть обработку, выберите вашу обработку Фузеева. ert , должен появится запрос на изменение переменных дЧ и пер, выберите ОК, в числовом поле поле должно быть 7.98, в другом 20%.

154. Закройте 1С:Предприятие

Структура контекста говорит о том, что он является объектом агрегированного типа, включающего компоненты (у нас реквизиты формы) и методы, употребляемые с обработкой.

155. Выберите окно обработки ОткрытьФузеева.ert

156. Перед вызовом

контОбрФузеева.Форма.Обновить( );

введитеоператор контОбрФузеева.Форма.дЧ.Видимость (0);

157. Проверьте синтаксис.

158. Сохраните обработку: Ctrl+S.

159. Запустите 1С:Предприятие: нажмите F11, выберите Отчеты | Открыть, выберите Открыть обработку, выберите вашу обработку Фузеева. ert , должен появится запрос на изменение переменных дЧ и пер, но элемента диалога дЧ не видно!.

160. Закройте 1С:Предприятие

Контекст формы (документа, списка справочника и др.) можно передавать в качестве входного/выходного параметра процедуры глобального модуля.

161. Выберите Метаданные, выберите Действия | Глобальный модуль, найдите в модуле строку комментария // ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ

162. Определите процедуру: введите перед кодом основной программы глобального модуля:

Пример 25.18. РаботаСКонтекстом

процедура РаботаСКонтекстом(конт) экспорт
 конт.Дч = 7.98;
 конт.пер = Перечисление.СтавкиНДС.ЗначениеПоНомеру(2);  //НДС10
 конт.Форма.дЧ.Видимость(0); //скрываем элемент диалога Дч
 конт.Форма.Обновить( );
конецПроцедуры
 

163. Закройте глобальный модуль

164. Откройте окно обработки Фузеева, выберите Модуль, закомментируйте Пример 16.

165. Введите код вызова процедуры из глобального модуля:

Пример 25.19. Пример 18

//Пример 18  
процедура Выполнить()
    РаботаСКонтекстом (Контекст);
конецПроцедуры

 

166. Проверьте синтаксис.

167. Сохраните обработку: Ctrl+S

168. Запустите 1С:Предприятие: нажмите F11, выберите Начало | Пуск, нажмите Пуск, должна появится форма, в которой значение НДС 10% видно, а 7.98 не видно.

169. Закройте 1С:Предприятие

170. Удалите добавленную процедуру: выберите Метаданные, выберите Действия | Глобальный модуль, найдите в модуле вашу процедуру РаботаСКонтекстом и удалите ее.