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