Автообмен через регламентное задание на сервере
На серверной базе доступен механизм регламентных заданий. Фоновое задание выполняется сервером автоматически, без открытия каких-либо окон. Нет необходимости держать отдельный компьютер/сеанс для запуска 1С в пользовательском режиме.
Начиная с версии модуля 4.45.0, объект и модуль регламентного задания входят в поставку файла обновления конфигурации. Для предыдущих версий модуля их необходимо будет добавить в конфигурацию:
- Запустите 1С в режиме Конфигуратора.
- Создайте сам объект регламентного задания с расписанием и выберите модуль, в котором будет располагаться код. Рекомендуем создать отдельный модуль с названием «КонтурEDI». Для этого в списке «Общие» → нажмите правой кнопкой мыши на список «Общие модули» → «Добавить».
- Откроются свойства модуля. Введите название «КонтурEDI» и установите флажок «Сервер».
- Создайте процедуру для выполнения фонового задания. Можно использовать приведенный код как шаблон.
Пример кода
Процедура ВыполнениеОбмена_КонтурEDI() Экспорт // 1. Если модуль сохранен в справочнике «Внешние обработки» // подставьте свой код КодОбработкиВСправочнике = «000000001»; ХранилищеОбработки = Справочники.ВнешниеОбработки.НайтиПоКоду(КодОбработкиВСправочнике); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(«epf»); ХранилищеОбработки.ХранилищеВнешнейОбработки.Получить().Записать(ИмяВременногоФайла); БезопасныйРежим = Ложь; ОбъектОбработки = ВнешниеОбработки.Создать(ИмяВременногоФайла, БезопасныйРежим); // 2. Если модуль сохранен как файл на диске // внимание: данный путь должен быть доступен учетной записи, // под которой запущен сервер 1С:Предприятие. ПолноеИмяФайла = "\\fileserver\share KonturEDI.epf"; БезопасныйРежим = Ложь; ОбъектОбработки = ВнешниеОбработки.Создать(ПолноеИмяФайла, БезопасныйРежим); // 3. Если модуль встроен в конфигурацию ОбъектОбработки = Обработки.КонтурEDI.Создать(); // Общая часть ОбъектОбработки.ФоновоеЗадание_ВыполнитьОбмен(); ОбъектОбработки = Неопределено; // если модуль сохранен в справочнике «Внешние обработки» УдалитьФайлы(ИмяВременногоФайла); КонецПроцедуры
- Создайте объект регламентного задания. Для этого в списке «Общие» → нажмите правой кнопкой мыши на список «Регламентные задания» → «Добавить».
- Введите название «ВыполнениеОбмена_КонтурEDI».
- В поле «Имя метода» выберите метод, созданный ранее модуль «КонтурEDI» (процедура «ВыполнениеОбмена_КонтурEDI»).
- Установите флажки в свойствах «Использование» и «Предопределенное».
- Настройте периодичность выполнения задания. Для этого в разделе «Расписание» нажмите «Открыть», в открывшемся окне настройте расписание:
- На вкладке «Общее» установите периодичность запуска задания. Например, выполнять каждый день.
- На вкладке «Дневное» установите время повтора. Например, повторять каждые 300 секунд (5 минут).
- На вкладке «Недельное» выберите дни, в которые нужно выполнять задание.
С указанными настройками задание будет запускаться каждые 5 минут круглосуточно. Можно ограничить выполнение по дням недели и часам работы. Время в этом случае определяется относительно компьютера, на котором находится сервер 1С:Предприятия.
- На вкладке «Общее» установите периодичность запуска задания. Например, выполнять каждый день.
- Примените изменения в конфигурации. Для этого требуется монопольный режим: все активные пользователи должны закрыть свои сеансы работы 1С:Предприятие. Иначе обновление не сработает.
- Проверьте результат настройки и запуск задания с помощью обработки «Консоль заданий» с диска ИТС: КонсольЗаданий.epf
Сверху — список всех регламентных заданий. Снизу — список запущенных или уже выполненных заданий. Если при обмене появились ошибки, то в списке снизу в колонке «Описание ошибки» будет указана причина. В этом случае задание запустится повторно согласно настройкам. - Для файловой базы данных в настройках учета необходимо выбрать пользователя, в сеансе которого будут выполняться регламентные задания.
Для этого запустите 1С:Предприятие и нажмите «Сервис» → «Настройка учета» → «Настройка параметров учета».
В открывшемся окне перейдите на вкладку «Обмен данными» и выберите пользователя, в сеансе которого будут выполняться регламентные задания. Нажмите «ОК».