gifts2017

Универсальный подбор и обработка справочников и документов UPGRADE

Опубликовал Max Sit (xamass) в раздел Обработки - Универсальные обработки

Многие из вас, коллеги, прекрасно знают и наверняка используют Универсальную обработку справочников и документов, но мне не хватало в ней возможности при использовании произвольного алгоритма сохранять переменные, которые можно было бы использовать для всех объектов (наподобие глобальной переменной в конфигурации).

Для получения возможности использовать общие переменные для всех обрабатываемых объектов, я добавил в обработку структуру, в которую можно добавлять переменные любых типов, и в последствии вызывать их в нужное время.

ПРИМЕР: Получение XML файла, последующая обработка объектов и проверка на соответствие с XML.

(У меня при обработке происходит загрузка с XML с подменой некоторых элементов справочника)

Если СтруктураПеременных.Свойство("Файл") = ЛОЖЬ Тогда
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ОТкрытие);
	ДиалогВыбораФайла.МножественныйВыбор = Ложь;
	ДиалогВыбораФайла.Заголовок = "Задайте имя файла выгрузки";

	ДиалогВыбораФайла.Фильтр = "Формат выгрузки(*.xml)|*.xml|FastInfoSet (*.fi)|*.fi|Все файлы (*.*)|*.*";
	Если ДиалогВыбораФайла.Выбрать() Тогда
		ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;
	КонецЕсли;
	
	СтруктураПеременных.Вставить("Файл",ИмяФайла);
	
	ТЗ = Новый таблицаЗначений;
	ТЗ.Колонки.Добавить("Объект");
	ТЗ.Колонки.Добавить("МассивСсылок");
	СтруктураПеременных.Вставить("ТЗ",ТЗ);
КонецЕсли;

ТЗ = СтруктураПеременных.ТЗ;

....

// В конце когда мы собрали массив всех ссылок (обрабатываемых объектов) можно обработать выбранный файл файл
Если Объект.Ссылка = НайденныеОбъекты[НайденныеОбъекты.Количество()-1].Объект.Ссылка Тогда
	ИмяФайла = СтруктураПеременных.Файл;
	

 Еще один пример: Наполняет обработку Поиск и замена значений, по заданному мной алгоритму.

Если НЕ СтруктураПеременных.Свойство("Обработка") Тогда
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ОТкрытие);
	ДиалогВыбораФайла.МножественныйВыбор = Ложь;
    ДиалогВыбораФайла.Фильтр = "Обработка(*.epf)|*.epf|Все файлы (*.*)|*.*";
	Если ДиалогВыбораФайла.Выбрать() Тогда
		ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;
	КонецЕсли;
	ПоискИЗамена = ВнешниеОбработки.Создать(ИмяФайла);
	СтруктураПеременных.Вставить("Обработка",ПоискИЗамена);
	СтруктураПеременных.Вставить("ФормаПоискаИЗамены",Неопределено);
КонецЕсли;

Если СтруктураПеременных.ФормаПоискаИЗамены = Неопределено Тогда
	ПоискИЗамена = СтруктураПеременных.Обработка;
	ФормаПоискИЗамена = ПоискИЗамена.ПолучитьФорму("Форма");
	ФормаПоискИЗамена.Открыть();
	СтруктураПеременных.ФормаПоискаИЗамены = ФормаПоискИЗамена;
КонецЕсли;

ФормаПоискИЗамена = СтруктураПеременных.ФормаПоискаИЗамены;

Скачать файлы

Наименование Файл Версия Размер
УниверсальныйПодборИОбработкаUPGRADE 13
.epf 97,94Kb
28.10.14
13
.epf 1 97,94Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Сергей Валутин (Bacemo) 03.11.14 17:19
Доработано хорошо за работу +
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа