Найти тему
Про 1С

Добавление нового регламентного задания через внешнюю обработку в типовых конфигурациях 1С Предприятие 8.3 на управляемых формах

Всем, доброго времени суток!

В этой статье хочу рассказать о прекрасной возможности которая появилась у конфигураций 1С Предприятие 8.3. построенных на управляемых формах.

Речь пойдет о добавлении выполнения какого-нибудь регламентного задания, которое должно отрабатывать в базе по какому либо расписанию

Рассмотрим живой пример.

Конфигурация Управление торговлей, редакция 11 (11.5.8.221)

Стоит задача получать информацию об остатках на складе поставщика.

Для этого была разработана внешняя обработка, задача которой подключаться к ftp ресурсу, читать там файл с остатками и обновлять информацию в базе. Задание должно отрабатывать каждый час всю неделю с 08:00 до 18:00

Решение задачи:

  1. Заходим в базу, под правами, которые дают возможность добавлять и настраивать внешние обработки
  2. Добавляем обработку

НСИ и Администрирование \ Печатные формы и обработки \

Переходим по гиперссылке "Дополнительные отчеты и обработки"

-2

Нажимаем на кнопку "Добавить из файла"

-3

Добавить из файла

-4

3. В настройках обработки выставляем флажок "Выполнять команду по расписанию"

-5

4. Открывается окно настройки расписания выполнения обработки. Где указываем периодичность выполнения каждый день

-6

5. На закладке "Дневное" указываем временные интервалы, расписани

-7

6. На закладе "Недельное" определяемся в какие дни недели будет выполняться данное задание

-8

7. Нажимаем кнопку "ОК"

Внешняя обработка, работа которой настроена по расписанию выглядит следующим образом

-9

С этого момента обработка будет выполняться по расписанию.

Что происходит с вашей добавленной обработкой, выполняется она или нет, можно всегда увидеть в списке "Регламентных заданий"

-10

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

ВАЖНО!! Выше описанный пример имеет отношение к базам, которые работают в серверном варианте

Это очень удобная возможность.

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

Со стороны самой обработки.

То в модуле объекта должна быть примерно такая структура

-11

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.БезопасныйРежим = Ложь;

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();

//представление команды в пользовательском режиме
НоваяКоманда.Представление = "Чтение фала по ftp";
НоваяКоманда.Идентификатор = "ЧтениеФайла";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();

Возврат ПараметрыРегистрации;

КонецФункции
Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт

Если ИдентификаторКоманды = "ЧтениеФайла" Тогда
ЧтениеФайла();
КонецЕсли;

КонецФункции


&НаСервере
Процедура ЧтениеФайла() экспорт

//Инициализируем объект Файл

ИмяФайла = "\\*********************.***";

ВыбФайл = Новый Файл(ИмяФайла);

Если ВыбФайл.Существует() Тогда //проверка на существование файла
.....

и т.д. и т.п
КонецПроцедуры

Надеюсь кому-нибудь данная статья принесла пользу.

Данная логика применима для многих типовых конфигураций, построенных на управляемых формах, таких как 1С Бухгалтерия 8.3, 1С Комплексная автоматизация 2.5, 1С Управление предприятием и другие решения

На этом у меня всё.

С Вас лайк + подписка! :)