gifts2017

Выгрузка всех дополнительных обработок и отчетов в каталог за пару кликов

Опубликовал Михали Задорнов (MZadornov) в раздел Обработки - Универсальные обработки

Надоело выгружать обработки по одной? Теперь это в прошлом. Код в свободном доступе без скачивания

Выгрузить все дополнительные обработки и отчеты в каталог всего за пару кликов. Простейшая обработка в один реквизит и команду. Набросайте элементы на форму и вставьте код в модуль формы обработки. И без всякого скачивания.

Работоспособность проверена на БП 3.0, Документооборот 1.4-2.0, платформы 1С 8.3.7, 8.3.8

#Область ВыборКаталогаДляВыгрузки

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

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

// окончание выбора каталога
&НаКлиенте
Процедура ОбработатьВыборКаталога(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
	
    Если ВыбранныеФайлы = Неопределено Тогда
        Возврат;
	КонецЕсли;
	Объект[ДополнительныеПараметры.ИмяЭлемента] = ВыбранныеФайлы[0];
	
КонецПроцедуры

#КонецОбласти

#Область НажатиеНаКнопку

// кнопка начала выгрузки
&НаКлиенте
Процедура Выгрузить(Команда)
	
	ОчиститьСообщения();
	// проверка на заполнение реквизита, существовавание каталога, на его "не пустоту"
	Если НЕ ЗначениеЗаполнено(Объект.КаталогВыгрузки) Тогда
		Сообщить("Укажите каталог для выгрузки");
		Возврат;
	КонецЕсли;
	Каталог = Новый Файл(Объект.КаталогВыгрузки);
	Если НЕ Каталог.Существует() Тогда
		Сообщить("Указанный каталог не существует");
		Возврат;
	КонецЕсли;
	МассивФайлов = НайтиФайлы(Объект.КаталогВыгрузки,"*.*");
	Если МассивФайлов.Количество()>0 Тогда
		ОписаниеОповещения = новый ОписаниеОповещения("ПодвержденияЗамещения",ЭтаФорма);
		ПоказатьВопрос(ОписаниеОповещения,"В каталоге есть файлы. При выгрузке будет выполнение замещение существующих."+Символы.ПС+"Начать выгрузку?",РежимДиалогаВопрос.ДаНет);
		Возврат;
	КонецЕсли;
	ВыгрузкаНачнись(); // проблем не обнаружили, давайте выгружать уже
	
КонецПроцедуры

// если пользователь передумал затирать файлы в каталоге, выгрузку делать не будем
&НаКлиенте
Процедура ПодвержденияЗамещения(ЧтоОтветилПользователь, Параметры) Экспорт
	
	Если ЧтоОтветилПользователь = КодВозвратаДиалога.Да Тогда
		ВыгрузкаНачнись();
	Иначе
		Возврат;
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область СамаВыгрузка

&НаКлиенте
Процедура ВыгрузкаНачнись()
	
	ПолучаемыеФайлы = ПодготовимФайлыНаСервере(ЭтаФорма.УникальныйИдентификатор);
	Обработчик = Новый ОписаниеОповещения("ОбработкаРезультатаВыгрузки", ЭтотОбъект);
	НачатьПолучениеФайлов(Обработчик, ПолучаемыеФайлы, Объект.КаталогВыгрузки, Ложь);

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

&НаСервере
Функция ПодготовимФайлыНаСервере(ИдентификаторФормы)
	
	Массив = Новый Массив;
	Выборка = Справочники.ДополнительныеОтчетыИОбработки.Выбрать(); // выберем все в справочнике.
	Пока Выборка.Следующий() Цикл
		Если ТипЗнч(Выборка.ХранилищеОбработки) = Тип("ХранилищеЗначения") Тогда
			Адрес = ПоместитьВоВременноеХранилище(Выборка.ХранилищеОбработки.Получить(),ИдентификаторФормы);
			Массив.Добавить(Новый ОписаниеПередаваемогоФайла(Выборка.ИмяФайла, Адрес));
		КонецЕсли;
	КонецЦикла;
	Возврат Массив;
	
КонецФункции

&НаКлиенте
Процедура ОбработкаРезультатаВыгрузки(ПолученныеФайлы, ДополнительныеПараметры) Экспорт
	
	ПоказатьПредупреждение(,"Выгрузка в каталог завершена",10); // все готово, шеф!
	
КонецПроцедуры

#КонецОбласти

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

Наименование Файл Версия Размер
ВыгрузитьВсеДополнительныеОтчетыОбработки.epf 2
.epf 7,50Kb
18.10.16
2
.epf 7,50Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.