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