helpf.pro
Регистрация
 +11 
Распечатать

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

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

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

Автор: Михали Задорнов (MZadornov)

Разместил:   Версии: | 8.2 УП | 8.3 |  Дата:   Прочитано: 20490
 +11 
Распечатать
Возможно, вас также заинтересует
Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
ZIP-архив Создание 0
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий: * Создать архив с необходимыми параметрами, в который будут помещаться файлы. * Поместить в архив необходимые файлы. * Записать архив. Создание объекта За
Авто добавление обработки в справочник Внешних обработок 0
Чтобы не изменять типовую конфигурацию приходится использовать типовой механизм внешних печатных форм и обработок. Данный код проверяет - добавлена ли открываемая обработка в конфигурацию, если нет - задает вопрос и при положительном ответе - автома
Автоматизация обмена данных используя обработку "Универсальный обмен данными в формате XML" 12
Автоматизация обмена между базами используя обработку " Универсальный обмен данными в формате XML" В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием обработки " Универсальный обме
Автоматическая выгрузка загрузка данных используя регламентное задание 18
Для обмена данными между программами необходимо сделать следующее: 1. При помощи Конвертации Данных создать правила выгрузки данных 2. Нужно чтобы в конфигурации была обработка УниверсальныйОбменДаннымиXML , желательно последней версии! (При помо
Посмотреть все результаты поиска похожих
Комментарии
deutsch2016
27.08.2021 13:59Комментарий: 1
deutsch2016

Спасибо за обработку! Работает на BAS ERP, 1С:Предприятие 8.3 (8.3.18.1483)

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!