Перенос данных между конфигурациями 1С:Комплексная автоматизация (КА) и 1С:Бухгалтерия предприятия (БП) — это классическая задача автоматизации. Когда базы расположены на одном физическом или виртуальном сервере, мы получаем преимущество в виде высокой скорости передачи данных и отсутствия необходимости в сложных сетевых настройках. Давайте разберем наиболее эффективные подходы к решению этой задачи.
Прежде чем приступать к написанию собственного кода, всегда следует рассмотреть готовые решения, встроенные в платформу. Для актуальных версий 1С:ERP, 1С:УТ 11 и 1С:КА существует типовой обмен с 1С:Бухгалтерией.
EnterpriseData.Если типового функционала недостаточно, использование КД2 (Конвертация Данных) является «золотым стандартом». Процесс выглядит следующим образом:
Поскольку базы находятся на одном сервере, мы можем использовать прямое подключение через V83.COMConnector. Этот метод позволяет одной базе «видеть» данные другой без выгрузки промежуточных файлов.
Рассмотрим структуру реализации такого обмена:
// Создание COM-соединения к базе БП
COMConnector = Новый COMObject("V83.COMConnector");
БазаПриемник = COMConnector.Connect("Srvr=""Сервер1С"";Ref=""Бухгалтерия"";Usr=""Логин"";Pwd=""Пароль""");
// Пример передачи данных
ДокументПриемник = БазаПриемник.Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокументПриемник.Дата = ТекущаяДата();
ДокументПриемник.Контрагент = БазаПриемник.Справочники.Контрагенты.НайтиПоНаименованию("Название");
// Заполнение табличной части
СтрокаТЧ = ДокументПриемник.Товары.Добавить();
СтрокаТЧ.Номенклатура = БазаПриемник.Справочники.Номенклатура.НайтиПоНаименованию("Товар");
ДокументПриемник.Записать();
Важное примечание: при работе через COM-соединение обязательно реализуйте логирование ошибок в регистр сведений, чтобы в случае сбоя понимать, на каком этапе прервался процесс.
Хотя вы упоминали, что не хотели бы «поднимать Web», стоит заметить, что это наиболее современный и масштабируемый способ. С помощью HTTP-сервисов вы можете передавать данные в формате JSON. Это работает быстрее, чем COM-соединение, и менее чувствительно к обновлениям платформы.
Разберем, почему это удобно:
HTTP-сервиса.POST-запрос с данными документа в формате JSON.JSON и создает объект.Проанализировав ситуацию, мы рекомендуем начать с настройки типового обмена, а если он не покрывает ваши потребности, использовать COM-соединение как самый доступный способ для баз, расположенных на одном сервере.