Автоматизация обмена данными между конфигурациями 1С:Бухгалтерия 3.0 и 1С:Розница 2.2 — это стандартная задача, которая, тем не менее, имеет свои нюансы, особенно если вы используете собственные правила, созданные в Конвертации данных 2.1. Часто разработчики сталкиваются с вопросом: как заставить обмен работать по расписанию, не прибегая к масштабным изменениям конфигурации?
В этой статье мы подробно разберем, как автоматизировать этот процесс, проанализируем основные способы настройки и выясним, почему регламентные задания могут не запускаться в файловом режиме.
Прежде чем приступать к написанию программного кода, рассмотрим наиболее «правильный» с точки зрения типовых решений метод. Современные конфигурации на базе БСП (Библиотеки стандартных подсистем) позволяют интегрировать сторонние правила обмена непосредственно в механизм синхронизации.
Разберем этот алгоритм по шагам:
Проанализируем преимущества этого подхода: нам не нужно создавать дополнительные обработки, мы получаем готовый мониторинг ошибок и журнал регистрации, а также возможность использовать штатное расписание 1С.
Если по каким-то причинам стандартная синхронизация не подходит (например, требуется сложная логика предварительной подготовки данных), мы можем пойти путем создания внешней обработки. Эта обработка будет программно обращаться к типовой обработке УниверсальныйОбменДаннымиXML.
Рассмотрим пример кода, который может быть использован внутри такой «обертки» для инициализации выгрузки:
// Создаем объект обработки Универсальный обмен данными
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
// Заполняем основные параметры
ОбработкаОбмена.ИмяФайлаПравил = "C:\Exchange\Rules.xml";
ОбработкаОбмена.ИмяФайлаДанных = "C:\Exchange\Data.xml";
ОбработкаОбмена.РежимОбмена = "Выгрузка";
// Загружаем правила для корректного заполнения параметров
ОбработкаОбмена.ЗагрузитьПравилаОбмена();
// Если в правилах есть параметры, их можно заполнить здесь
// ОбработкаОбмена.Параметры.ДатаНачала = НачалоМесяца(ТекущаяДата());
// Запускаем процесс
ОбработкаОбмена.ВыполнитьВыгрузку();
После создания такой обработки ее необходимо зарегистрировать в справочнике Дополнительные отчеты и обработки. В этом справочнике есть возможность настроить регламентное задание для запуска этой обработки по расписанию. Это позволяет автоматизировать обмен, не снимая конфигурацию с поддержки и не используя расширения для создания РегламентныеЗадания.
Выясним причину, по которой регламентные задания часто не работают в файловых базах «из коробки». В отличие от клиент-серверного варианта, где заданиями управляет менеджер кластера, в файловом режиме для выполнения кода по расписанию требуется активный сеанс пользователя.
Проанализируем критически важные моменты для файловых баз:
В процессе настройки важно понимать, с каким инструментом вы работаете, так как механизмы автоматизации для них различаются. Посмотрим на основные признаки:
EnterpriseData (универсальный формат).Если вы работаете с КД 2.1, ваш основной инструмент — обработка УниверсальныйОбменДаннымиXML. Если с КД 3.0 — то это МенеджерОбменаЧерезУниверсальныйФормат.
Начиная с версии платформы 8.3.11, мы можем добавлять объекты РегламентноеЗадание непосредственно в расширения. Это избавляет нас от необходимости изменять основную конфигурацию. Однако, стоит помнить о Безопасном режиме расширения. Если он включен, регламентное задание может не иметь прав на запись файлов на диск или выполнение COM-соединения. Для работы обмена в расширении флаг безопасного режима следует снять.
Рассмотрим ситуацию с COM-соединением. Если базы расположены в одной сети, в правилах КД 2.1 можно настроить обмен не через файлы, а напрямую через COM. В параметрах обработки УниверсальныйОбменДаннымиXML для этого выбирается соответствующий режим. Это исключает этап создания промежуточного XML-файла и делает обмен более быстрым, но требует наличия установленной и зарегистрированной COM-компоненты V83.COMConnector на компьютере, где выполняется задание.
Подводя итог, можно сказать, что для автоматизации обмена между «Бухгалтерией» и «Розницей» на правилах КД 2.1 оптимальным будет использование типового механизма синхронизации с подгрузкой своих правил. Если же требуется нестандартное поведение, используйте внешнюю обработку, добавленную в дополнительные обработки с настроенным расписанием.
Никогда не забывайте проверять права пользователя, под которым запускается обмен, и доступность путей к файлам правил и данных. При соблюдении этих условий ваш обмен будет работать стабильно и полностью в автоматическом режиме.