Как настроить односторонний обмен данными между 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3.0

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Бухгалтерский учет Торговля и дистрибуция
← На главную

При автоматизации торговых процессов часто возникает задача разделения управленческого и регламентированного учета. Типичный сценарий — работа в единой базе 1С:Управление торговлей 11 (УТ) с последующей выгрузкой данных в одну или несколько баз 1С:Бухгалтерия предприятия 3.0 (БП). В данной статье мы разберем, как правильно реализовать односторонний перенос данных, настроить фильтрацию по организациям и устранить критические ошибки, возникающие в процессе синхронизации на старых релизах программ.

Использование стандартного механизма синхронизации

Для реализации обмена между современными конфигурациями не требуется разработка собственных правил обмена или использование внешних обработок. Мы будем использовать встроенный механизм, основанный на универсальном формате EnterpriseData. Рассмотрим основные этапы настройки.

Прежде всего, проанализируем архитектуру решения. Если у нас есть одна база УТ и три базы БП для разных организаций, нам необходимо создать три отдельные настройки синхронизации в УТ. Каждая настройка будет отвечать за связь с конкретной базой бухгалтерии.

Для начала настройки перейдем в раздел НСИ и администрирование — Синхронизация данных. Здесь необходимо установить флаг СинхронизацияДанных и перейти по ссылке Настройки синхронизации данных. При создании нового обмена мы выбираем программу Бухгалтерия предприятия, редакция 3.0.

Реализация одностороннего режима обмена

Многие пользователи ошибочно полагают, что для одностороннего обмена нужно использовать сторонние утилиты. На самом деле, это стандартная возможность платформы. Разберем по шагам, как ограничить поток данных:

  1. В базе Управление торговлей при настройке параметров отправки данных мы указываем фильтр по конкретной организации. Это позволит выгружать в определенную базу БП только те документы, которые относятся к выбранному юридическому лицу.
  2. Ключевой момент настройки происходит на стороне Бухгалтерии предприятия. В мастере настройки синхронизации, на этапе определения правил получения и отправки данных, необходимо установить опцию Не отправлять данные (или аналогичную по смыслу, в зависимости от версии интерфейса).
  3. Даже при одностороннем обмене программа будет обмениваться техническими сообщениями — квитанциями. Это необходимо для того, чтобы база-источник (УТ) знала, что данные успешно приняты, и не пыталась отправить их повторно.

Важно помнить, что выгрузку из БП в УТ можно и нужно отключить именно в настройках на стороне бухгалтерии. Это предотвратит нежелательное изменение управленческих данных бухгалтерскими корректировками.

Настройка обмена с несколькими базами БП

Проанализируем ситуацию, когда организаций несколько. Для стабильной работы схемы «1 база УТ — N баз БП» необходимо строго соблюдать правило префиксов баз. Разберем, зачем это нужно:

Каждая информационная база должна иметь свой уникальный Префикс (например, «УТ», «Б1», «Б2», «Б3»). Префикс добавляется к номеру каждого документа и коду справочника. Если в разных базах БП будут одинаковые префиксы, в базе УТ возникнет конфликт номеров, и система не сможет корректно идентифицировать объекты. Выясним причину возможной путаницы: без уникальных префиксов синхронизация может начать «затирать» данные или выдавать ошибки при сопоставлении объектов.

Устранение ошибки поврежденного журнала регистрации

В процессе выполнения синхронизации вы можете столкнуться с ошибкой, которая блокирует запись данных. Рассмотрим пример сообщения: «Произошла критическая ошибка при записи в журнал регистрации». Часто это связано с форматом хранения логов в системе 1С.

Посмотрим на техническую сторону вопроса. Начиная с версии платформы 8.3.5, журнал регистрации может храниться в файле формата SQLite (1Cv8.lgd). При интенсивном обмене данными, особенно в старых релизах конфигураций (таких как УТ 11.4.1), этот файл может быть поврежден из-за системных сбоев или проблем с дисковой подсистемой.

Для решения этой проблемы выполним следующие действия:

  1. Завершим все сеансы работы с информационной базой.
  2. Найдем в каталоге базы данных файл 1Cv8.lgd и переименуем его (например, в 1Cv8_old.lgd).
  3. При новом запуске система создаст пустой файл журнала, и ошибка записи исчезнет.
  4. Если история событий критична, воспользуемся утилитами для восстановления баз SQLite, однако для возобновления обмена зачастую достаточно просто «обнулить» журнал.

Проблема версионности и обновления

Проанализируем ситуацию с версиями программ. УТ 11.4.1 и БП 3.0.44 — это достаточно старые релизы. В ранних версиях 11.4 механизм EnterpriseData (универсальный формат) содержал ряд недоработок, которые приводили к зависанию фоновых заданий при нажатии кнопки «Записать и закрыть» в настройках синхронизации.

Рассмотрим рекомендации по обновлению. Если база «зависает», это может означать, что система пытается выполнить первичную регистрацию всех документов за огромный период. В этом случае мы рекомендуем:

Выясним причину, почему обновление критично: форматы обмена XSD постоянно меняются. Если ваша БП обновляется регулярно (например, для сдачи отчетности), а УТ остается на старом релизе, структура XML-файла, которую генерирует УТ, может не соответствовать ожиданиям БП. В коде это обрабатывается через чтение версии формата:


// Пример логики проверки версии формата в коде синхронизации
ВерсияФормата = МенеджерОбмена.ОпределитьВерсиюФормата(Данные);
Если ВерсияФормата = "1.3" Тогда
    // Выполнить загрузку по старым правилам
ИначеЕсли ВерсияФормата = "1.5" Тогда
    // Выполнить загрузку по новым правилам
КонецЕсли;

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

Итоги настройки

Таким образом, для успешного одностороннего переноса мы выполняем следующие шаги: настраиваем стандартную синхронизацию в УТ, фильтруем данные по организации, отключаем выгрузку в настройках БП и следим за уникальностью префиксов. В случае технических сбоев проверяем целостность журнала регистрации и актуальность версий EnterpriseData.

← На главную