ИнтерактивноеИзменениеВыгрузки (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиСервер
БСП

Интерактивное изменение выгрузки. Инициализирует дополнение выгрузки для мастера пошагового обмена.

// Инициализирует дополнение выгрузки для мастера пошагового обмена.
//
// Параметры:
//     УзелИнформационнойБазы - ПланОбменаСсылка                - ссылка на узел, для которого производится настройка.
//     АдресХранилищаФормы    - Строка, УникальныйИдентификатор - адрес сохранения между серверными вызовами.
//     ЕстьСценарийУзла       - Булево                          - флаг необходимости дополнительной настройки.
//
// Возвращаемое значение:
//     Структура - данные для дальнейшего оперирования дополнением выгрузки.
//
Функция ИнтерактивноеИзменениеВыгрузки(Знач УзелИнформационнойБазы, Знач АдресХранилищаФормы, Знач ЕстьСценарийУзла=Неопределено) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	Результат = Новый Структура;
	Результат.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы);
	Результат.Вставить("ВариантВыгрузки", 0);
	
	Результат.Вставить("ПериодОтбораВсехДокументов", Новый СтандартныйПериод);
	Результат.ПериодОтбораВсехДокументов.Вариант = ВариантСтандартногоПериода.ПрошлыйМесяц;
	
	ОбработкаДополнения = Обработки.ИнтерактивноеИзменениеВыгрузки.Создать();
	ОбработкаДополнения.УзелИнформационнойБазы = УзелИнформационнойБазы;
	ОбработкаДополнения.ВариантВыгрузки        = 0;
	
	// Компоновщик собираем по частям.
	Данные = ОбработкаДополнения.КомпоновщикНастроекОбщегоОтбора(АдресХранилищаФормы);
	Результат.Вставить("АдресКомпоновщикаВсехДокументов", ПоместитьВоВременноеХранилище(Данные, АдресХранилищаФормы));
	
	Результат.Вставить("ДополнительнаяРегистрация", Новый ТаблицаЗначений);
	Колонки = Результат.ДополнительнаяРегистрация.Колонки;
	
	ТипСтрока = Новый ОписаниеТипов("Строка");
	Колонки.Добавить("ПолноеИмяМетаданных", ТипСтрока);
	Колонки.Добавить("Отбор",         Новый ОписаниеТипов("ОтборКомпоновкиДанных"));
	Колонки.Добавить("Период",        Новый ОписаниеТипов("СтандартныйПериод"));
	Колонки.Добавить("ВыборПериода",  Новый ОписаниеТипов("Булево"));
	Колонки.Добавить("Представление", ТипСтрока);
	Колонки.Добавить("ОтборСтрокой",  ТипСтрока);
	Колонки.Добавить("Количество",    ТипСтрока);

	Результат.Вставить("ПараметрыСценарияДополнения", Новый Структура);
	ПараметрыСценарияДополнения = Результат.ПараметрыСценарияДополнения;
	
	ПараметрыСценарияДополнения.Вставить("ВариантБезДополнения", Новый Структура("Использование, Порядок, Заголовок", Истина, 1));
	ПараметрыСценарияДополнения.ВариантБезДополнения.Вставить("Пояснение", 
		НСтр("ru='Будут отправлены только данные согласно общим настройкам.'")); 
	
	ПараметрыСценарияДополнения.Вставить("ВариантВсеДокументы", Новый Структура("Использование, Порядок, Заголовок", Истина, 2));
	ПараметрыСценарияДополнения.ВариантВсеДокументы.Вставить("Пояснение",
		НСтр("ru='Дополнительно будут отправлены все документы за период, удовлетворяющие условиям отбора.'")); 
	
	ПараметрыСценарияДополнения.Вставить("ВариантПроизвольныйОтбор", Новый Структура("Использование, Порядок, Заголовок", Истина, 3));
	ПараметрыСценарияДополнения.ВариантПроизвольныйОтбор.Вставить("Пояснение",
		НСтр("ru='Дополнительно будут отправлены данные согласно отбору.'")); 
	
	ПараметрыСценарияДополнения.Вставить("ВариантДополнительно", Новый Структура("Использование, Порядок, Заголовок", Ложь,   4));
	ПараметрыСценарияДополнения.ВариантДополнительно.Вставить("Пояснение",
		НСтр("ru='Будут отправлены дополнительные данные по настройкам.'")); 
	
	ВариантДополнительно = ПараметрыСценарияДополнения.ВариантДополнительно;
	ВариантДополнительно.Вставить("Заголовок", "");
	ВариантДополнительно.Вставить("ИспользоватьПериодОтбора", Ложь);
	ВариантДополнительно.Вставить("ПериодОтбора");
	ВариантДополнительно.Вставить("Отбор", Результат.ДополнительнаяРегистрация.Скопировать());
	ВариантДополнительно.Вставить("ИмяФормыОтбора");
	ВариантДополнительно.Вставить("ЗаголовокКомандыФормы");
	
	МетаУзел = УзелИнформационнойБазы.Метаданные();
	
	Если ЕстьСценарийУзла=Неопределено Тогда
		// Можно определить по метаданным узла.
		ЕстьСценарийУзла = Ложь;
	КонецЕсли;
	
	Если ЕстьСценарийУзла Тогда
		Если ЕстьАлгоритмМенеджераПланаОбмена("НастроитьИнтерактивнуюВыгрузку",МетаУзел.Имя) Тогда
			МодульМенеджераУзла = ПланыОбмена[МетаУзел.Имя];
			МодульМенеджераУзла.НастроитьИнтерактивнуюВыгрузку(УзелИнформационнойБазы, Результат.ПараметрыСценарияДополнения);
		КонецЕсли;
	КонецЕсли;
	
	Результат.Вставить("АдресХранилищаФормы", АдресХранилищаФормы);
	
	УстановитьПривилегированныйРежим(Ложь);
	
	Возврат Результат;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ИнтерактивноеИзменениеВыгрузки_СформироватьТабличныйДокументПользователя (БСП)

ИнтерактивноеИзменениеВыгрузки_СформироватьДеревоЗначений (БСП)

ИнтерактивноеИзменениеВыгрузкиОчисткаДетально (БСП)

ИнтерактивноеИзменениеВыгрузкиОчисткаОбщегоОтбора (БСП)

ИнтерактивноеИзменениеВыгрузкиСохранитьНастройки (БСП)

ИнтерактивноеИзменениеВыгрузкиРеквизитПоНастройкам (БСП)

ИнтерактивноеИзменениеВыгрузкиЗарегистрироватьДополнительныеДанные (БСП)

ИнтерактивноеИзменениеВыгрузкиФильтрВарианта (БСП)

ИнтерактивноеИзменениеВыгрузкиОписаниеДополненияОбщегоОтбора (БСП)

TurboConf 6 - расширение Конфигуратора 1С