Синхронизация данных между конфигурациями «1С:Розница» и «1С:Бухгалтерия предприятия» (БП) — один из наиболее популярных сценариев интеграции в экосистеме 1С. Однако пользователи часто сталкиваются с неприятной ситуацией: обмен завершается успешно, документы переносятся в базу-приемник, но остаются в статусе непроведенных. Даже если вы вручную проводите эти документы в «1С:Бухгалтерии», при следующем сеансе обмена они перезаписываются и снова становятся непроведенными.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем внутренние механизмы взаимодействия конфигураций и пошагово решим задачу автоматического проведения документов при загрузке.
В настройках синхронизации данных «1С:Бухгалтерии» присутствует опция «Разрешить проведение документов при загрузке». Логично предположить, что ее включение должно гарантировать проведение всех пришедших документов. Однако на практике это работает иначе.
Данная опция дает системе лишь команду попытаться провести документ. Если в процессе проведения транзакции документ сталкивается с любой ошибкой заполнения реквизитов, отсутствием ключевой аналитики или нехваткой остатков на складах, система не прерывает сеанс обмена. Она просто записывает документ в том виде, в котором он пришел, оставляя его непроведенным.
Чтобы выяснить точную причину сбоя проведения конкретного документа, нам необходимо заглянуть в Журнал регистрации в БП 3.0. Для этого выполним следующие действия:
Разберем логику, заложенную разработчиками фирмы 1С в механизмы сопоставления объектов при обмене между конфигурациями «1С:Розница» и «1С:Бухгалтерия».
В программе «1С:Розница» архитектура учета построена вокруг физической структуры торговых точек. Здесь ключевым объектом является справочник Магазины. При этом один магазин может содержать внутри себя несколько подчиненных складов (например, «Торговый зал», «Склад хранения», «Витрина»).
В программе «1С:Бухгалтерия предприятия» детальный внутренний учет по секциям и отделам конкретного магазина для целей регламентированного учета не требуется. Поэтому справочник Магазины из Розницы принудительно сопоставляется со справочником Склады в БП 3.0. При первом обмене система автоматически создает в БП склад со специальным типом «Розничный магазин» (или «НТТ» — неавтоматизированная торговая точка).
Именно на этом стыке архитектур возникает ключевая ошибка, блокирующая проведение документов.
Для склада с типом «Розничный магазин» в БП 3.0 критически важно заполнение реквизита «Тип цен розничной торговли». Без указания этого типа цен система бухгалтерского учета не может рассчитать розничную стоимость поступившего товара, вычислить торговую наценку и корректно отразить операции по дебету и кредиту счетов 41 и 42.
В процессе обмена происходит следующее:
<Объект не определен...>.При импорте документов поступления (Приходная накладная) или реализации программа пытается обратиться к карточке склада, видит там битую ссылку вместо реального типа цен и закономерно отказывается проводить документ.
Рассмотрим детально, как исправить эту ошибку и добиться стабильного автоматического проведения документов при синхронизации.
Первым делом нам необходимо исправить некорректные данные, которые уже записались в базу-приемник:
<Объект не определен>.Теперь перейдем в базу-источник для того, чтобы предотвратить появление подобных ошибок в будущем:
Чтобы зафиксировать связь между объектами двух баз раз и навсегда, выполним ручное сопоставление:
Проведение документов розничных продаж и поступлений жестко завязано на настройки учетной политики организации в БП. Проверим их:
Установка цен номенклатуры в БП и корректно заполненных реквизитов типов цен во всех документах. Если розничная цена товара не будет определена на момент проведения поступления, документ не проведется.Помимо накладных, автору темы не удавалось провести документы движения денежных средств (ПКО, РКО). Причиной этого часто является незаполненная аналитика счетов денежных средств.
Для успешного автоматического проведения кассовых документов проверьте следующее:
Если после выполнения всех настроек некоторые старые документы все равно упорно не хотят проводиться при синхронизации, это может быть связано с тем, что в планах обмена зависли некорректные записи регистрации изменений.
Мы можем временно отключить авторегистрацию или вручную очистить зарегистрированные к обмену битые объекты с помощью встроенной обработки «Регистрация изменений для обмена данными». Для программного анализа зарегистрированных объектов администратор может использовать следующий код:
ВыборкаУзлов = ПланыОбмена.ОбменРозницаБухгалтерияПредприятия30.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
Если ВыборкаУзлов.Ссылка = ПланыОбмена.ОбменРозницаБухгалтерияПредприятия30.ЭтотУзел() Тогда
Продолжить;
КонецЕсли;
// Проверяем наличие зарегистрированных изменений для конкретного документа
ПланыОбмена.УдалитьРегистрациюИзменений(ВыборкаУзлов.Ссылка, Метаданные.Документы.ПоступлениеТоваровУслуг);
КонецЦикла;
Использование этого кода позволит очистить очередь выгрузки от зависших документов ПоступлениеТоваровУслуг, после чего вы сможете зарегистрировать их к обмену заново, уже с корректно сопоставленными складами и типами цен. Для интерактивного снятия с регистрации подойдёт обработка для отмены регистрации документов в плане обмена за период.
Мы по шагам разобрали неочевидную на первый взгляд причину того, почему документы становятся непроведенными после синхронизации между «1С:Розница» и «1С:Бухгалтерия». Главный виновник проблемы — несоответствие типов цен в созданных обменом складах и отсутствие сопоставления между видами цен Розницы и типами цен БП.
Выполнив предложенный нами алгоритм настройки складов, правил выгрузки розничных цен и сопоставления объектов, вы обеспечите стабильное автоматическое проведение документов при каждом сеансе обмена данными. Для контроля результатов переноса можно использовать инструмент для сверки документов между конфигурациями через http-сервис.