← На главную
При настройке типовой синхронизации данных между конфигурациями 1С на базе «Библиотеки стандартных подсистем» (БСП) часто используется оптимизация передачи нормативно-справочной информации: в правилах отправки данных для справочника Номенклатура устанавливается режим «Отправлять только используемую в документах». Это позволяет не засорять базу-приемник полным каталогом товаров. Однако пользователи и администраторы нередко сталкиваются с ситуацией, когда созданную позицию необходимо передать заранее или когда она упорно не выгружается вместе с документом. Разберем по шагам, как устроен этот механизм, выясним причины возможных сбоев и рассмотрим надежные варианты передачи позиций.
Почему номенклатура не регистрируется вручную
Проанализируем логику работы БСП при выбранном режиме. Когда в настройках узла обмена для справочника активирован отбор по использованию в документах, в правилах регистрации данных (ПРД) включается режим ссылочной целостности (выгрузка «по ссылке» или «при необходимости»).
Если мы попытаемся открыть окно «Состав отправляемых данных» и принудительно зарегистрировать отдельный элемент справочника Номенклатура, программа выдаст сообщение о том, что зарегистрировано 0 изменений. Платформа блокирует прямую регистрацию, поскольку на уровне метаданных и правил объект помечен как выгружаемый исключительно в составе ссылок родительских объектов. Даже в случае принудительной программной регистрации позиции через метод ПланыОбмена.ЗарегистрироватьИзменения() обработчик выгрузки EnterpriseData может отсечь данный элемент на этапе формирования XML-пакета, если не найдет его в табличных частях выгружаемых документов.
Выясним причины, почему позиция не уходит вместе с документом
В штатном режиме номенклатура должна автоматически попасть в обмен в тот момент, когда регистрируется документ, где она выбрана. Если этого не произошло, рассмотрим типовые факторы:
- Статус проведения документа: если документ просто записан, но не проведен (или помечен на удаление), правила синхронизации большинства конфигураций игнорируют его регистрацию либо выгружают без связанных ссылочных данных.
- Граница даты выгрузки: дата документа может быть меньше, чем дата начала выгрузки документов, заданная в параметрах узла обмена.
- Отборы по организации и подразделению: если документ оформлен по организации, складу или подразделению, которые не входят в фильтр синхронизации, сам документ не отправляется, а значит, и номенклатура из его табличной части не попадет в выгрузку.
- Ожидание сопоставления на стороне приемника: номенклатура может быть успешно доставлена в целевую базу, но не записана в рабочий справочник. Проверим форму «Предупреждения при синхронизации данных» (вкладка «Несопоставленные данные» или «Конфликты»). Если алгоритм нашел дубли по наименованию или артикулу, запись откладывается до ручного подтверждения пользователем.
Способ 1. Использование рабочего или технического документа
Рассмотрим самый быстрый сценарий, не требующий изменения глобальных настроек синхронизации. Передача позиции инициируется через документ, соответствующий всем фильтрам обмена:
- Создадим документ (например,
ПриобретениеТоваровУслуг или ОприходованиеИзлишковТоваров) с текущей датой, выбрав организацию, участвующую в обмене.
- Добавим в табличную часть нужные новые позиции номенклатуры.
- Проведем документ.
- Откроем обработку «Регистрация изменений для обмена данными» и убедимся, что по данному виду документа появился счетчик изменений.
- Запустим сеанс синхронизации. После того как данные будут приняты во второй базе, технический документ можно распровести и пометить на удаление.
Способ 2. Временное переключение режима выгрузки НСИ
Если требуется передать список номенклатуры до ввода первичных документов, разберем способ с временным изменением правил фильтрации справочников:
- Перейдем в раздел Администрирование — Синхронизация данных — Настройки синхронизации данных.
- Откроем параметры нужного подключения и временно изменим режим отправки нормативно-справочной информации: вместо положения «Отправлять только используемую в документах» установим значение «Отправлять всю» (или выберем отправку с ручным отбором).
- Сохраним настройки. Перейдем в «Состав отправляемых данных». Важно: убедимся, что система не зарегистрировала к отправке всю базу целиком. Если в очереди появились лишние сотни тысяч объектов, снимем их с регистрации.
- Зарегистрируем к обмену только требуемые позиции номенклатуры.
- Выполним синхронизацию и проверим появление номенклатуры в базе-приемнике.
- Вернем настройку выгрузки НСИ в исходное состояние — «Отправлять только используемую в документах».
Способ 3. Интерактивная выгрузка дополнительных данных
Посмотрим на штатный интерфейс синхронизации. При нажатии на кнопку «Синхронизировать» в расширенном режиме (или через команду «Выполнить синхронизацию данных с дополнительными параметрами») система предлагает шаг ручного добавления данных в текущую выгрузку.
Сложность этого способа заключается в том, что в типовых справочниках 1С отсутствует стандартный реквизит даты создания элемента, из-за чего сложно отобрать недавно добавленные карточки. Обойдем это ограничение организационным путем:
- Поместим новые позиции номенклатуры во временную группу справочника (например, «_Для выгрузки») либо временно укажем специфический признак (например, уникальный суффикс в артикуле или комментарии).
- В окне интерактивной синхронизации откроем состав выгружаемых данных и добавим номенклатуру по понятному фильтру (по родителю или артикулу).
- Завершим интерактивную выгрузку. После синхронизации вернем элементы номенклатуры в их рабочие группы.