При работе со связкой программ 1С:Бухгалтерия предприятия 3.0 (БП) и 1С:Управление торговлей 11 (УТ) пользователи часто сталкиваются с неожиданной проблемой. Если учет изначально велся в БП, а затем возникла необходимость запустить оперативную торговую базу в УТ, стандартная синхронизация отказывается переносить документы закупки и продажи. В УТ выгружаются только банковские и кассовые документы, в то время как накладные (поступления, реализации) даже не регистрируются к обмену.
В этой статье мы подробно разберем, почему так происходит, проанализируем внутреннюю архитектуру обмена 1С и рассмотрим несколько эффективных способов решения этой задачи: от простых штатных «лайфхаков» до разработки собственных правил конвертации данных.
Прежде чем переходить к настройкам, давайте разберем методологическую логику, заложенную разработчиками фирмы 1С в стандартный механизм синхронизации.
По определению, оперативный, складской и торговый учет является первичным. Это означает, что менеджеры должны работать в 1С:Управление торговлей, оформлять там заказы, закупки, продажи, складские перемещения и корректировки. Бухгалтерия же выступает в роли приемника консолидированных данных — в 1С:Бухгалтерия предприятия эти документы загружаются исключительно для расчета налогов и сдачи отчетности.
Именно поэтому в обратную сторону — из БП в УТ — типовой обмен отправляет строго ограниченный набор документов:
Правила регистрации объектов в плане обмена БП настроены таким образом, что документы РеализацияТоваровУслуг и ПоступлениеТоваровУслуг жестко фильтруются и игнорируются при регистрации изменений, даже если в узле обмена выставить настройку «Отправлять все документы с начала работы».
Ниже мы рассмотрим четыре практических способа обойти это ограничение.
Рассмотрим самый простой и элегантный лайфхак, не требующий программирования или снятия конфигураций с поддержки. Данный способ основан на использовании универсального формата обмена EnterpriseData.
Состав регистрируемых и выгружаемых документов в БП 3.0 напрямую зависит от того, какой тип конфигурации-приемника вы указываете при создании новой синхронизации:
Пошаговый алгоритм настройки:
EnterpriseData (ED).Проанализируем инструмент, который фирма 1С предлагает для миграции данных. В дистрибутив поставки УТ 11 (каталог шаблонов конфигураций на вашем диске) входит специализированная внешняя обработка Выгрузка данных из БП 3.0.epf.
Разберем особенности работы с ней:
Если вам требуется постоянная синхронизация, но вы хотите сохранить именно типовую настройку обмена «БП — УТ», нам придется вмешаться в правила регистрации объектов.
Для этого используется конфигурация «1С:Конвертация данных 2.1» (или КД 3.0 для формата EnterpriseData). Посмотрим на логику процесса:
ДокументСсылка.РеализацияТоваровУслуг и ДокументСсылка.ПоступлениеТоваровУслуг отключаются или переписываются обработчики событий, которые блокируют их авторегистрацию.После этого изменения документов купли-продажи начнут регистрироваться в стандартном узле обмена автоматически. Чтобы форсировать процесс для исторических данных, можно воспользоваться программным кодом для ручной регистрации документов в плане обмена.
Рассмотрим пример кода, который регистрирует все проведенные реализации за определенный период для узла обмена:
// Выбираем узел обмена с УТ
УзелОТ = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("УТ-000001");
Если ЗначениеЗаполнено(УзелОТ) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Реализация.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Проведен = ИСТИНА
| И Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(РабочаяДата));
Запрос.УстановитьПараметр("ДатаКонца", КонецДня(РабочаяДата));
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
// Регистрируем документ для выгрузки в выбранный узел
ПланыОбмена.ЗарегистрироватьИзменения(УзелОТ, Выборка.Ссылка);
КонецЦикла;
Сообщить("Регистрация документов купли-продажи успешно завершена!");
КонецЕсли;
Если структуры документов сильно различаются (например, в БП у вас простая аналитика, а в УТ включены статусы документов, ордерные склады, соглашения с клиентами и индивидуальные графики оплат), стандартный формат EnterpriseData может не справиться с корректным заполнением реквизитов.
В такой ситуации оптимальным решением является создание собственных правил обмена (ПКО, ПКС) в «1С:Конвертация данных 2.1»:
MD83Exp.epf.РеализацияТоваровУслуг и ПоступлениеТоваровУслуг.ТиповоеСоглашениеСКлиентом, определять ХозяйственнаяОперация (например, «РеализацияКлиенту») и устанавливать статус документа в значение «Реализовано».Универсальный обмен данными в формате XML, используя созданные правила, и загружаем в УТ через эту же обработку.Использование собственных правил XML гарантирует 100% контроль над тем, как именно документы преобразуются при переносе, и исключает появление непроводящихся документов-пустышек в базе УТ.