Регламентные/фоновые задачи с запуском внешней обработки подгруженной в справочник или указанного на диске файла (*.epf). Управляемые формы/Обычные формы

30.09.19

База данных - Инструменты администратора БД

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

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

Наименование Файл Версия Размер
Консоль заданий с выбором внешней обработки или указания файла (УФ/ОФ)
.epf 49,54Kb
39
.epf 1.1.3 49,54Kb 39 Скачать

Процедура регламентного задания:

Процедура мод_ВнешняяОбработка(Код=Неопределено) Экспорт
	Если Код=Неопределено Тогда
		ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! Не правильно указан параметр '"+Код+"'", УровеньЖурналаРегистрации.Предупреждение);
	Иначе
		СсылкаНаВнешнююОбработку = Неопределено;
		Если СтрНайти(Код,"\")>0 Тогда
			ДвоичныеДанные = Новый ДвоичныеДанные(Код);
			Если ДвоичныеДанные=Неопределено Тогда
				ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! Не получилось получить ДвоичныеДанные '"+Код+"'", УровеньЖурналаРегистрации.Ошибка);
				Возврат;
			КонецЕсли;	
		Иначе
			Если НЕ Метаданные.Справочники.Найти("ВнешниеОбработки")=Неопределено Тогда
				ИмяМетаданного = "ВнешниеОбработки";
            	ИмяРеквизитыХранилища = "ХранилищеВнешнейОбработки";
			ИначеЕсли НЕ Метаданные.Справочники.Найти("ДополнительныеОтчетыИОбработки")=Неопределено Тогда
				ИмяМетаданного = "ДополнительныеОтчетыИОбработки";
            	ИмяРеквизитыХранилища = "ХранилищеОбработки";
			Иначе
				Возврат;
			КонецЕсли;	
			Выполнить("СсылкаНаВнешнююОбработку = Справочники."+ИмяМетаданного+".НайтиПоКоду("""+Код+""");");
			Если НЕ СсылкаНаВнешнююОбработку.Пустая() Тогда
				ДвоичныеДанные = СсылкаНаВнешнююОбработку[ИмяРеквизитыХранилища].Получить(); 
			Иначе
				ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! В справочнике "+ИмяМетаданного+" не найдена обработка по коду '"+Код+"'", УровеньЖурналаРегистрации.Ошибка);
				Выполнить("СсылкаНаВнешнююОбработку = Справочники."+ИмяМетаданного+".НайтиПоНаименованию("""+Код+""",Истина);");
				Если НЕ СсылкаНаВнешнююОбработку.Пустая() Тогда
					ДвоичныеДанные = СсылкаНаВнешнююОбработку[ИмяРеквизитыХранилища].Получить(); 
				Иначе
					ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! В справочнике "+ИмяМетаданного+" не найдена обработка по наименованию '"+Код+"'", УровеньЖурналаРегистрации.Ошибка);
					Возврат;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;	
	 	Попытка
			АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
			ИмяОбработки = ВнешниеОбработки.Подключить(АдресВоВременномХранилище, , Ложь);
			внОбработка = ВнешниеОбработки.Создать(ИмяОбработки);
			Попытка
				внОбработка.ВыполнитьЗадание();
			Исключение
				ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! Внешняя обработка '"+СсылкаНаВнешнююОбработку+"' должна иметь в модуле экспортную процедуру 'ВыполнитьЗадание() Экспорт'", УровеньЖурналаРегистрации.Ошибка);
			КонецПопытки; 
		Исключение 
			ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! '"+ОписаниеОшибки()+"'", УровеньЖурналаРегистрации.Ошибка);
		КонецПопытки;
	КонецЕсли; 
КонецПроцедуры

Данный блок тестировался на конфигурациях: УПП 1.3.124.2, БП 3.0.67.43, БП 2.0.66.77 и будет работать в любой типовой и НЕ типовой конфигурации, при условии выбора файла в качестве внешней обработки.

Тип передаваемого параметра выявляется по наличию символа "\", что означает путь к файлу, в противном случае ищется обработка по коду либо по имени обработки в справочнике.

В коде описано 2 вида справочника: ВнешниеОбработки с реквизитом ХранилищеВнешнейОбработки (это в конфигурации УПП, БП2.0, Комплексная и т.п.) и ДополнительныеОтчетыИОбработки с реквизитом ХранилищеОбработки (это БП 3.0 и т.д.)

П.С. Если Вы используете запуск обработки через указанный путь к файлу, и  если у пользователя, под которым запускается данное регламентное задание стоит галка Защита от опасных действий, то нужно: либо снять галку, либо зайти под данным пользователем и открыть указанный файл в базе, и дать согласие на открытие.

П.П.С. По умолчанию в форме Консоля заданий указано имя Регламентного задания мод_ВнешняяОбработка. Если же Вы в качестве имени в своей базе укажите какое-то другое, то имя можно поменять в Модуле объекта обработки ИмяРегламентногоЗаданияДоработка

П.П.П.С. Во внешней обработке, любого варианта, в Модуле объекта должна быть Экспортная процедура Выполнить задание, например:  

Процедура ВыполнитьЗадание() Экспорт
     //Текст процедуры
КонецПроцедуры

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2980    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3544    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177759    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27383    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61320    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11746    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31111    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10986    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. gucci76 364 26.09.12 11:11 Сейчас в теме
За качественное оформление уже достойно плюса!
Спасибо.
2. bobaG 62 26.09.12 11:39 Сейчас в теме
3. EmpireSer 26.09.12 23:32 Сейчас в теме
А можно выложить не только обработку, а архив с обработкой и картинками настройки (можно их и в doc оформить)?
4. iones 195 27.09.12 10:30 Сейчас в теме
(3) EmpireSer, а что Вам мешает сохранить картинки и составить инструкцию самим?
5. vladismi 168 28.09.12 10:28 Сейчас в теме
6. alexey_1c 28.09.12 10:31 Сейчас в теме
7. fishca 1254 28.09.12 10:45 Сейчас в теме
8. iones 195 01.10.12 14:07 Сейчас в теме
Пожалуйста =)
пользуйтесь на здоровье!
Только одно хочу добавить, во внешней обработке нужно создавать форму, обязательно. Иначе при подгрузке в во внешние обработки, будет ругаться.
9. Raminus 01.10.12 14:46 Сейчас в теме
хорошо оформлено, зачет! :)
10. iones 195 03.10.12 12:00 Сейчас в теме
И еще...учтите что при подвязке внешней обработки в регламентные задачи, в результате не отрабатываются некоторые команды, т.е. завершится с ошибкой!
Например:
Предупредить(), НайтиФайлы(), Вопрос(), вроде Сообщить() и т.п.
Это ограничение самой 1С, то что выполняется строго на клиенте.
22. yuraos 991 02.04.13 13:45 Сейчас в теме
(10)
Плюс за смекалку!
---
Вызов
 Сообщить()
на стороне сервера исключения не вызывает - просто игнорися.

Остальное верно для клиент-серверной базы, где задания крутятся на сервере 1С.

Для файловой базы задания крутятся в отдельной клиентской сессии, поэтому,
я полагаю, есть возможность использовать указанные "интерактивные" функции.

Правда более правомерно сказать "а кому это надо"?
У планировщика глаз нет!
:)
23. yuraos 991 02.04.13 14:03 Сейчас в теме
(22)
мое замечание - только для обычного приложения!
в управляемом все более занятно
...
Из-за задницы с инкапсуляцией функционала для переиспользования:
Один из старых способов (еще с 8.0) - размещать функционал в модуле объекта
с доступом через Объект
Новый способ (появился в 8.2) - размещать функционал в модуле менеджера объекта
с доступом через МенеджерОбъекта
Ни то - ни другое на стороне клиента - НЕ ДОСТУПНО!
---
Поэтому приходится все выполнять на стороне сервера,
даже если обращение к базе данных не требуется.
:)
11. Кебабыч 24 12.12.12 17:10 Сейчас в теме
Спасибо, реально полезная обработка. Удивительно что подобные очень удобные мелочи не включаются в стандарт системы...
12. TrinitronOTV 14 19.12.12 06:29 Сейчас в теме
спасибо автору за данный труд, забираю себе для работы
13. isn 15 18.01.13 12:34 Сейчас в теме
Спасибо автору за данную разработку. Очень интересная идея, попробую приобщить к своей работе.
14. iones 195 18.01.13 15:32 Сейчас в теме
Пользуйтесь с удовольствием!
Прост когда-то передо мной также стояла задача усовершенствовать фоновую задачу, менять параметры, добавлять некие условия. Каждый раз приходилось вмешиваться в конфигурацию, в результате родилась идея подключения внешней обработки.
15. dyak84 21.02.13 19:41 Сейчас в теме
Спасибо за идею и за работу. автор подскажите ваша обработка будет работать с УТ для украины типовой
16. Alex1c 29 28.02.13 23:23 Сейчас в теме
Откуда на 12 скрине берется форма для добавления регламентного задания для внешней обработки?
SirYozha; +1 Ответить
17. iones 195 04.03.13 11:13 Сейчас в теме
(16) Alex1c, если внимательно всмотреться в скрины, то это обработка создается Вами, и загружается в базу, во внешние обработки.
Вроде подробные сканы, а вопросы остаются... =))
18. Alex1c 29 05.03.13 20:06 Сейчас в теме
Свою обработку я с закрытыми глазами узнаю )) Речь идет о форме с заголовком "Новое регламентное задание" в которой предлагается выбрать внешнюю обработку и установить для нее расписание.
Попробовал сделать все по инструкции. Не работает. В журнале ошибка "Количество фактических параметров фонового задания не совпадает с количеством параметров метода фонового задания. ". Ошибка возникает при вызове общего модуля с параметрами. Если передача параметров не предусмотрена, модуль вызывается. В качестве параметра вы передаете код и затем ищете обработку по коду. Каким образом вы передаете параметр "код" в общий модуль?
19. Alex1c 29 06.03.13 00:58 Сейчас в теме
С параметром так и не разобрался. Для своей задачи чуть упростил. Сделал два регламентных задания и соответственно два общих модуля. Одно задание выполняется раз в 10 минут, второе один раз в день. В общих модулях не используется поиск по передаваемому в параметре коду обработки, а выполняются соответственно все обработки из папки "Автомат 10 минут" и из папки "Автомат 1 день". Для генерации и отправки ежедневных отчетов папка "Автомат 1 день". Сколько в ней обработок , столько и будет рассылаться. Для синхронизации со сторонней базой вторая папка с более частым запуском. За идею плюс поставил ))
20. eaKozlova 2 02.04.13 11:07 Сейчас в теме
Большое спасибо за идею и экономию времени. Плюс.
21. irbush 02.04.13 12:28 Сейчас в теме
Спасибо большое очень облегчит работу с заданиями.
24. SpartakM 71 12.04.13 05:02 Сейчас в теме
Не совсем понял, откуда взялась форма регламентного задания, где можно указать, какую конкретно обработку запускать?
можете пояснить?
25. Alex1c 29 12.04.13 18:26 Сейчас в теме
(24)+1 Я в (16) спрашивал, но ответ автора не пояснил вопрос
26. SpartakM 71 12.04.13 20:12 Сейчас в теме
(25)обработка, которая создает регламентные задания, находится в файле статьи.
можешь скачать.....
27. iones 195 16.04.13 15:00 Сейчас в теме
(25) Alex1c, обработка добавления нового, или редактирования существующего фонового задания (только с прикрепленной внешней обработкой) прикреплена к данной статье.
Светлый ум; +1 Ответить
28. kser87 2438 31.10.13 15:34 Сейчас в теме
Библиотека стандартных подсистем. Такая хорошая штука. И почему никто туда не смотрит?

Подсистема "Дополнительные отчеты и обработки"
Подсистема "Регламентные и фоновые задания"

Взял, да скопировал в свою конфу. И делов-то.
29. zhloby3k 16 01.11.13 14:25 Сейчас в теме
Как раз недавно избавлялись от создания временных файлов при создании внешних обработок в фоновых заданиях.
Получилось как-то так:

 
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(СсылкаНаВнешнююОбработку, "ХранилищеОбработки");
ИмяОбработки = ВнешниеОбработки.Подключить(НавигационнаяСсылка, Имя, Ложь);

ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяОбработки);
ВнешняяОбработка.ОбработатьУведомление(Источник, СсылкаНаВнешнююОбработку);
Прикрепленные файлы:
vsozansky; sanfoto; iones; МимохожийОднако; +4 Ответить
32. iones 195 30.01.14 14:37 Сейчас в теме
(29) zhloby3k, спасибо за подсказку! Подправил =)
30. Abadonna 3958 03.11.13 04:30 Сейчас в теме
(0)
Каждый раз лезть в конфигуратор, и вручную добавлять новое регламентное задание, как-то не удобно.

Пару лет назад сделал по другому, и никаких внешних обработок:
Универсальное регламентное задание
alex-l19041; МимохожийОднако; vkr; +3 Ответить
31. Lemkus 05.11.13 13:01 Сейчас в теме
Часто такая задача возникает, когда нельзя менять конфигурацию.
Для такого случая предложенное решение не подходит.
Мне больше понравилась оригинальная идея, предложенная в это статье http://infostart.ru/public/151693/
33. podzemelchik 26.05.14 15:00 Сейчас в теме
Подскажите пожалуйста, как происходит заполнение параметра процедуры "мод_ВнешняяОбработка"?
34. iones 195 19.09.14 17:18 Сейчас в теме
(33) podzemelchik, присмотритесь повнимательнее к скрину 6.
Создается новая регламентная задача, и указывается процедура мод_ВнешняяОбработка.
В данную обработку передается Код элемента справочника Внешние обработки.
А как создать новую фоновую задачу, обработка во вложении.
35. Белка13 13 30.09.14 15:51 Сейчас в теме
Создала:Регл.задан -"мод_ВнешняяОбработка" и ОбщийМодуль-"мод_ОбщийМодуль"!
Закрепила обработку.( В модуле ______Процедура ВыполнитьЗадание() Экспорт)
Запустила "Регламентные и фон. задания"!
Фон.задания: Состояние= Задание выполнено
Но обработка не отработала! Хотя с формы по кнопке--- отлично проходит!
Что может быть?
36. natarezn 25.06.15 08:47 Сейчас в теме
Хочется автору сказать спасибо! отпринтскринила все ! боюсь забыть где это . пишу сейчас обработку под регламент :)
37. Светлый ум 406 28.10.15 08:44 Сейчас в теме
Скорость выполнения фонового задания (для обычной обработки с экспортной процедурой ) была значительно ниже, чем вызов процедуру обработки bat файлом.
пример:
38. user983240 13.12.23 12:47 Сейчас в теме
как
мод_ВнешняяОбработка(Код=Неопределено)
сюда код передать?
Оставьте свое сообщение