В процессе работы с конфигурацией 1С:Управление торговлей 11.4 (УТ 11.4) администраторы и программисты часто сталкиваются с необходимостью изменения транспортного механизма обмена данными. Типичная ситуация: сначала была настроена Распределенная информационная база (РИБ), но позже возникла потребность перейти на Универсальный формат (EnterpriseData) или прямое подключение. При попытке сохранить новые правила отправки данных система может выдать критическую ошибку: «Поле "Код" не заполнено!». При этом визуально в форме настройки все поля могут казаться заполненными.
В рамках данной статьи мы разберем причины возникновения этой ошибки, методы её устранения и особенности синхронизации розничных документов, таких как ЧекККМ и ОтчетОРозничныхПродажах.
Разберем ситуацию подробно. Ошибка возникает на уровне платформы при попытке записи объекта в ПланОбмена. Каждый узел в любом плане обмена обязан иметь уникальный строковый идентификатор — Код. Когда мы удаляем старую синхронизацию (например, РИБ) и пытаемся создать новую, в базе могут остаться «фантомные» записи или некорректно очищенные узлы.
Проанализируем основные сценарии возникновения проблемы:
Если мы столкнулись с тем, что поле Код недоступно для редактирования в обычном интерфейсе, воспользуемся инструментами для разработчиков или стандартной обработкой. Рассмотрим по шагам, как исправить ситуацию:
ПланОбмена. Обычно это СинхронизацияДанныхЧерезУниверсальныйФормат или тот план, который использовался при создании РИБ.Код пустое. В колонке «Новое значение» введем уникальный код (например, «УТ001»).После того как все узлы в плане обмена получат свои уникальные коды, ошибка при сохранении правил синхронизации должна исчезнуть. Проверим это, повторно зайдя в настройки синхронизации и попытавшись сохранить параметры отправки.
Рассмотрим ситуацию, когда прямое подключение (через COM-соединение) вызывает ошибки, в то время как обмен через файлы проходит успешно. Выясним причину такого поведения.
Прямое соединение требует регистрации библиотеки comcntr.dll и совпадения разрядности клиентского приложения и сервера 1С. Кроме того, при прямой связи система пытается мгновенно инициализировать метаданные в обеих базах. Если в одной из баз структура плана обмена нарушена (пустые коды), COM-соединение прервется еще на этапе инициализации.
Рекомендация: Если базы находятся на одном сервере или в терминальной среде, и прямое подключение выдает неинформативные ошибки, используйте обмен через локальный каталог (файловый обмен). Это более стабильный метод, который позволяет изолировать процессы обработки данных в каждой базе.
Проанализируем сложный момент, связанный с розничной торговлей. Пользователи часто замечают, что документы ЧекККМ синхронизируются между базами, но после закрытия смены в одной базе они удаляются (архивируются), а в другой — «зависают».
Разберем логику работы 1С в этом контексте:
Документы ЧекККМ являются оперативными. При выполнении операции «Закрытие смены» в 1С происходит следующее:
ОтчетОРозничныхПродажах.Если настроена двусторонняя синхронизация чеков, то база-приемник получает чеки как самостоятельные объекты. Однако команда на удаление или архивацию чека после закрытия смены в источнике не всегда передается в приемник через универсальный формат. В результате в базе-приемнике остаются «лишние» чеки, которые фактически уже вошли в состав Отчета о розничных продажах, что приводит к задвоению выручки в отчетах.
Для исключения дублирования данных и корректного учета продаж выполним следующие действия:
ЧекККМ в настройках правил обмена. Вместо этого настроим выгрузку только документа ОтчетОРозничныхПродажах.ЧекККМ.Рассмотрим пример кода для программной очистки регистрации изменений, если типовая обработка по каким-то причинам недоступна:
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, Метаданные.Документы.ЧекККМ);
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, Метаданные.Документы.ОтчетОРозничныхПродажах);
Использование только Отчетов о розничных продажах значительно упрощает схему обмена, уменьшает объем передаваемого трафика и исключает ошибки, связанные с жизненным циклом кассового чека. Синхронизация итогов дня — это наиболее надежная стратегия для распределенных торговых точек.
Подведем итоги нашего исследования. Если вы столкнулись с ошибкой незаполненного кода при настройке синхронизации в УТ 11.4 после удаления РИБ, выполните проверку планов обмена через групповое изменение реквизитов. Убедитесь, что у всех узлов, включая «Этот узел», прописаны уникальные коды. Для стабильной работы обмена в рознице отдавайте предпочтение файловому обмену результатами смен (отчетами), а не оперативными чеками, и всегда используйте фильтрацию данных по местам хранения.