Как доработать правила обмена УТ-Розница и исправить ошибки метаданных в Конвертации данных 2.1

Программист 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

При доработке правил обмена между типовыми конфигурациями, такими как Управление торговлей 11.4 и Розница 2.2, разработчики часто сталкиваются с ситуацией, когда стандартные правила не содержат нужных полей или перестают корректно работать после обновления структуры метаданных. Рассмотрим подробнее, почему правила в консоли Конвертация данных 2.1 могут «покраснеть», и как правильно добавить поля Цена и Сумма в документ Перемещение товаров.

Почему правила становятся красными и как это исправить

Разберем ситуацию: вы загрузили новое описание конфигурации, и вдруг все настроенные правила конвертации объектов (ПКО) и свойств (ПКС) окрасились в красный цвет. Проанализируем причину. Это происходит из-за нарушения связей между элементами справочника Конвертация и объектами метаданных в справочнике Конфигурации.

В 1С:Конвертации данных 2.1 каждый объект (справочник, документ, реквизит) идентифицируется не только по имени, но и по внутреннему уникальному идентификатору (UUID). Если вы загрузили описание метаданных в «новую» конфигурацию вместо обновления существующей, или если в процессе выгрузки метаданных через обработку MD82Exp.epf произошел сбой, ссылки в правилах «повисают в воздухе».

Для исправления этой ситуации выполним следующие шаги:

  1. Проверим, в ту ли настройку конфигурации были загружены метаданные. Если создана дублирующая запись в справочнике Конфигурации, необходимо воспользоваться обработкой «Поиск и замена дублей», чтобы перенаправить ссылки из правил на новые актуальные метаданные.
  2. Если «покраснели» только отдельные поля, заходим в ПКС и вручную перевыбираем источник или приемник.
  3. В некоторых случаях краснота уходит сама после того, как вы просто пересохраните ПКО, при условии, что имена объектов в новой структуре полностью совпадают со старыми.

Добавление полей Цена и Сумма в Перемещение товаров

Часто в Управлении торговлей 11 поля Цена и Сумма в документе ПеремещениеТоваров отсутствуют в правилах, так как по умолчанию учет перемещений может вестись по себестоимости. Однако, если бизнес-процесс требует видеть цены в Рознице, нам необходимо их передать. Выясним, как это сделать наиболее эффективно.

Вариант 1: Ручное добавление реквизитов в структуру

Если вы не хотите рисковать и обновлять метаданные всей конфигурации целиком, можно добавить нужные поля вручную прямо в справочнике метаданных внутри КД:

  1. Откроем справочник Конфигурации и найдем нужную версию УТ или Розницы.
  2. Перейдем в документ ПеремещениеТоваров, в табличную часть Товары.
  3. Вручную добавим реквизиты Цена и Сумма с типом Число.
  4. Теперь в правилах конвертации свойств эти поля станут доступны для выбора.

Вариант 2: Использование алгоритмов и исходящих данных

Если поля физически отсутствуют в источнике (например, цена должна вычисляться «на лету» по определенному виду цен), используем механизм ИсходящиеДанные. Разберем по шагам:

В ПКО документа в обработчике Перед выгрузкой сформируем таблицу значений для табличной части:


// Пример формирования исходящих данных для ТЧ Товары
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Цена, Сумма ИЗ ..."; // Ваш алгоритм получения цен
ТаблицаТоваров = Запрос.Выполнить().Выгрузить();

ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("ТаблицаТовары", ТаблицаТоваров);

В ПКС для табличной части Товары установим флаг «Получить из входящих данных». Таким образом, система не будет пытаться найти данные в самом документе, а возьмет их из подготовленной нами структуры.

Особенности выгрузки метаданных из современных конфигураций

При использовании обработки MD82Exp.epf для УТ 11.4 часто возникают ошибки доступа или нехватки памяти. Проанализируем, как этого избежать. Современные конфигурации на платформе 8.3 имеют огромный объем метаданных, большая часть которых (формы, справка, движения) не нужна для настройки правил обмена в КД 2.1.

Рекомендации по выгрузке структуры:

Программная обработка при загрузке в Розницу

Важно помнить, что в Рознице 2.2 документ перемещения может требовать заполнения реквизита ВидЦены. Если вы просто загрузите цены в ТЧ, но не укажете тип цен в шапке, документ может не провестись или цены не отобразятся в интерфейсе. Посмотрим, как это обработать в ПКО:


// Обработчик ПриЗагрузке в ПКО ПеремещениеТоваров
Если Объект.ВидЦены.Пустая() Тогда
    Объект.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
КонецЕсли;

Использование таких небольших программных вставок позволяет сделать обмен более отказоустойчивым и адаптированным под конкретные требования заказчика, даже если типовые правила этого не предусматривают.

Переход на Универсальный формат (EnterpriseData)

Если доработки становятся слишком сложными, рассмотрим альтернативу — переход на КД 3.0. В современных версиях УТ 11.4 и Розница 2.2 обмен через EnterpriseData является приоритетным. В этом формате данные о ценах и суммах в перемещениях уже заложены в саму схему XDTO. Это позволит избежать манипуляций с UUID метаданных, так как обмен идет через стандартизированные объекты, не зависящие от внутренней структуры конкретной базы.

← На главную