Интерактивное изменение выгрузки реквизит по настройкам. Заполняет реквизит формы по данным структуры настроек.
// Заполняет реквизит формы по данным структуры настроек.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма для установки реквизита.
// НастройкиДополненияВыгрузки - Структура - исходные настройки.
// ИмяРеквизитаДополнения - Строка - имя реквизита формы для создания или заполнения.
//
Процедура ИнтерактивноеИзменениеВыгрузкиРеквизитПоНастройкам(Форма, Знач НастройкиДополненияВыгрузки, Знач ИмяРеквизитаДополнения="ДополнениеВыгрузки") Экспорт
УстановитьПривилегированныйРежим(Истина);
ПараметрыСценарияДополнения = НастройкиДополненияВыгрузки.ПараметрыСценарияДополнения;
// Разбираемся с реквизитами
РеквизитДополнения = Неопределено;
Для Каждого Реквизит Из Форма.ПолучитьРеквизиты() Цикл
Если Реквизит.Имя=ИмяРеквизитаДополнения Тогда
РеквизитДополнения = Реквизит;
Прервать;
КонецЕсли;
КонецЦикла;
// Проверяем и добавляем реквизит.
Добавляемые = Новый Массив;
Если РеквизитДополнения=Неопределено Тогда
РеквизитДополнения = Новый РеквизитФормы(ИмяРеквизитаДополнения,
Новый ОписаниеТипов("ОбработкаОбъект.ИнтерактивноеИзменениеВыгрузки"));
Добавляемые.Добавить(РеквизитДополнения);
Форма.ИзменитьРеквизиты(Добавляемые);
КонецЕсли;
// Проверяем и добавляем колонки общей дополнительной регистрации.
ПутьРеквизитаТаблицы = РеквизитДополнения.Имя + ".ДополнительнаяРегистрация";
Если Форма.ПолучитьРеквизиты(ПутьРеквизитаТаблицы).Количество()=0 Тогда
Добавляемые.Очистить();
Колонки = НастройкиДополненияВыгрузки.ДополнительнаяРегистрация.Колонки;
Для Каждого Колонка Из Колонки Цикл
Добавляемые.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ПутьРеквизитаТаблицы));
КонецЦикла;
Форма.ИзменитьРеквизиты(Добавляемые);
КонецЕсли;
// Проверяем и добавляем колонки дополнительной регистрации сценария узла.
ПутьРеквизитаТаблицы = РеквизитДополнения.Имя + ".ДополнительнаяРегистрацияСценарияУзла";
Если Форма.ПолучитьРеквизиты(ПутьРеквизитаТаблицы).Количество()=0 Тогда
Добавляемые.Очистить();
Колонки = ПараметрыСценарияДополнения.ВариантДополнительно.Отбор.Колонки;
Для Каждого Колонка Из Колонки Цикл
Добавляемые.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ПутьРеквизитаТаблицы));
КонецЦикла;
Форма.ИзменитьРеквизиты(Добавляемые);
КонецЕсли;
// Добавляем данные
ЗначениеРеквизита = Форма[ИмяРеквизитаДополнения];
// Обрабатываем таблицы значений.
ЗначениеВДанныеФормы(ПараметрыСценарияДополнения.ВариантДополнительно.Отбор,
ЗначениеРеквизита.ДополнительнаяРегистрацияСценарияУзла);
ПараметрыСценарияДополнения.ВариантДополнительно.Отбор =ТаблицаВМассивСтруктур(
ПараметрыСценарияДополнения.ВариантДополнительно.Отбор);
ЗначениеРеквизита.ПараметрыСценарияДополнения = ПараметрыСценарияДополнения;
ЗначениеРеквизита.УзелИнформационнойБазы = НастройкиДополненияВыгрузки.УзелИнформационнойБазы;
ЗначениеРеквизита.ВариантВыгрузки = НастройкиДополненияВыгрузки.ВариантВыгрузки;
ЗначениеРеквизита.ПериодОтбораВсехДокументов = НастройкиДополненияВыгрузки.ПериодОтбораВсехДокументов;
Данные = ПолучитьИзВременногоХранилища(НастройкиДополненияВыгрузки.АдресКомпоновщикаВсехДокументов);
УдалитьИзВременногоХранилища(НастройкиДополненияВыгрузки.АдресКомпоновщикаВсехДокументов);
ЗначениеРеквизита.АдресКомпоновщикаВсехДокументов = ПоместитьВоВременноеХранилище(Данные, Форма.УникальныйИдентификатор);
ЗначениеРеквизита.ПериодОтбораСценарияУзла = ПараметрыСценарияДополнения.ВариантДополнительно.ПериодОтбора;
Если ПараметрыСценарияДополнения.ВариантДополнительно.Использование Тогда
ЗначениеРеквизита.ПредставлениеОтбораСценарияУзла = ПредставлениеДополненияВыгрузкиПоСценариюУзла(ЗначениеРеквизита);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ИнтерактивноеИзменениеВыгрузкиСохранитьНастройки (БСП)
ИнтерактивноеИзменениеВыгрузкиЗарегистрироватьДополнительныеДанные (БСП)
ИнтерактивноеИзменениеВыгрузкиВосстановитьНастройки (БСП)
ИнтерактивноеИзменениеВыгрузки_СформироватьТабличныйДокументПользователя (БСП)
ИнтерактивноеИзменениеВыгрузки_СформироватьДеревоЗначений (БСП)
ИнтерактивноеИзменениеВыгрузкиОчисткаДетально (БСП)
ИнтерактивноеИзменениеВыгрузки (БСП)