Как выгрузить фиксированные значения и предопределенные элементы в Конвертации данных 2.1?

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

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

Решение задачи передачи перечислений и предопределенных значений

Рассмотрим случай, когда нам нужно передать значение перечисления или предопределенный элемент справочника. Самый надежный и простой способ сделать это — использовать обработчик «При выгрузке» в правиле конвертации свойств. Нам не нужно настраивать сложные правила конвертации для самих перечислений; достаточно передать строковое имя предопределенного значения.

Для реализации задачи присвоим переменной Значение строковое представление имени элемента. Механизм обмена 1С самостоятельно найдет нужный объект в базе-приемнике.

Разберем пример с установкой ставки НДС в зависимости от числового значения в базе-источнике:


Если Источник.СтавкаНДС = 20 Тогда
    Значение = "НДС20_120";
ИначеЕсли Источник.СтавкаНДС = 10 Тогда
    Значение = "НДС10_110";
Иначе
    Значение = "НДС18_118";
КонецЕсли;

Важно помнить, что передаваемая строка должна в точности совпадать с именем (идентификатором) предопределенного элемента в конфигурации базы-приемника. Этот подход работает универсально для любых предопределенных данных.

Как устранить ошибку «Метод объекта не обнаружен (НайтиПоКоду)»

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

Разберем по шагам, как проанализировать и исправить эту ситуацию:

  1. Перейдите в настройки ПКО того объекта, при выгрузке/загрузке которого возникает ошибка.
  2. Откройте вкладку «Поля поиска».
  3. Внимательно изучите установленные флажки. Если у вас отмечен флажок Код, но в базе-приемнике у этого объекта поиск по коду не предусмотрен или код не является уникальным, система выдаст ошибку.
  4. Снимите флажок Код, если он не является критически важным для идентификации объекта. Замените его на Наименование или Уникальный идентификатор, если это применимо.
  5. Если стандартного поиска недостаточно, вы можете использовать обработчик «При загрузке», где можно прописать собственный алгоритм поиска ссылки на объект, используя, например, поиск по наименованию или внутренним реквизитам.

Основные рекомендации при настройке конвертации

Чтобы избежать подобных сложностей в будущем, придерживайтесь следующих правил:

1. Использование обработчиков: Не старайтесь перегрузить правило сложными конструкциями. Для простых задач (как в нашем примере с НДС) кода в событии При выгрузке более чем достаточно. Система 1С сама корректно интерпретирует строковое имя и подставит нужное значение.

2. Выбор полей поиска: Всегда проверяйте, что именно система использует для идентификации объекта в базе-приемнике. Использование поиска по Код оправдано только в том случае, если коды в обеих базах жестко синхронизированы и уникальны.

3. Предопределенные данные: Если вы создаете новые элементы в конвертации, убедитесь, что их синонимы или имена в базе-источнике соответствуют тому, что ожидает получить база-приемник. Если они не предопределенные, лучше использовать поиск по уникальному строковому реквизиту.

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

← На главную