Столкнулся с тем, что при переброске единиц измерения из независимого справочника (классификатора) в подчиненный номенклатуре справочник «Единицы измерения» не перегружались эти самые единицы. Точнее, первый экземпляр единицы измерения перегружался (первая штука, первый рулон, первый метр и так далее), а дальше — как «отрезало».
Сама переброска независимого справочника в подчиненный справочник была реализована с помощью параметра ПеременныеСреды, который перед выгрузкой данных инициализировался так :
Параметры.ПеременныеСреды = Новый Структура;
Каждый раз, когда мне из табличной части документа требовалось выгрузить единицу измерения, я писал в обработчике «перед выгрузкой» свойства так :
Параметры.ПеременныеСреды.Вставить(«Владелец», ОбъектКоллекции.Номенклатура);
а если требовалось выгрузить единицу измерения из карточки товара, писал так :
Параметры.ПеременныеСреды.Вставить(«Владелец», Источник);
Источник этого свойства был элемент справочника — классификатора единиц измерения, а приёмник — содержал ещё и владельца (номенклатуру).
Чтобы учитывать этого владельца, я добавил в ПКО «Единицы измерения» новое поле поиска Владелец, и написал такой обработчик перед его выгрузкой :
Значение = Параметры.ПеременныеСреды.Владелец;
а чтобы найти единицу измерения из классификатора (второе поле поиска, после владельца), я применил упрощенный поиск единицы по строке :
Значение = Источник.Наименование;
специально написав правило поиска объекта
КлассификаторЕдиницИзмерения_Из_Строки .
Чтобы понять, что во время конвертации данных происходит не так, я вставил отладочную печать в обработчик со считыванием свойства «Владелец» — и наглядно увидел, что обработчик считывал только первые экземпляры вхождений каждого наименования единицы измерения.
Я сразу понял, что проблемой является кэширование выгружаемых объектов, которое отключается с помощью галки «Не запоминать выгруженные объекты». Где мне нужно было установить эту галку? Только в том правиле конвертации объектов, где «от руки» создано новое поле поиска — Владелец.
Как только я проставил в ПКО «Единицы измерения» галку «Не запоминать выгруженные объекты», проблема тут же решилась.