При организации обмена данными между 1С и сторонними информационными системами часто возникает необходимость регулярного экспорта и импорта справочников или документов в формате XML. В случае с конфигурацией «1С:Бухгалтерия предприятия 2.0» задача усложняется тем, что программа разработана на обычном приложении и не содержит стандартного пользовательского планировщика для произвольных внешних обработок, привычного по конфигурациям на управляемых формах (БП 3.0).
Рассмотрим рабочие и проверенные способы реализации автоматического обмена данными по расписанию без изменения конфигурации и без снятия базы с поддержки.
Проанализируем наиболее распространенный вариант решения задачи. Он заключается в создании внешней обработки (файл формата .epf), в которую закладывается логика чтения/записи XML, и последующем её регулярном запуске с помощью стандартного планировщика задач Windows (Task Scheduler).
Разберем процесс настройки по шагам:
ПриОткрытии помещаем вызов основной логики и команду завершения работы сеанса.Предупреждение(), Вопрос() или диалогов выбора файла. При их возникновении автозапуск заблокируется.Посмотрим на пример командной строки для запуска обработки в файловом или клиент-серверном режиме:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\BP2" /N "РоботОбмена" /P "Пароль123" /Execute "C:\TradeExchange\ExportImportXML.epf"
В модуле внешней обработки алгоритм автозапуска выглядит следующим образом:
Процедура ПриОткрытии()
// Выполняем экспорт и импорт XML
ВыполнитьВыгрузкуЗагрузкуXML();
// Завершаем сеанс 1С без подтверждения
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
Выясним, как решить задачу с помощью типовых механизмов платформы. В БП 2.0 присутствует встроенная подсистема обмена данными и инструмент Универсальный обмен данными в формате XML.
Если инициатором обмена выступает сторонняя программа, проанализируем вариант с подключением к 1С через COM-соединение. В этом случае внешняя система сам по расписанию подключается к базе 1С и вызывает методы внешней обработки.
Для реализации этого метода используется объект V82.COMConnector или V82.Application. Скрипт подключается к информационной базе, создает экземпляр внешней обработки через ВнешниеОбработки.Создать() и запускает экспортируемую процедуру обмена.
При настройке фонового обмена необходимо учитывать следующие особенности платформы и операционной системы:
usr1cv8) должна иметь права на чтение и запись в папку, где размещаются XML-файлы. Рекомендуется использовать сетевые UNC-пути вида \\server\share\exchange.xml.