Конвертация единиц измерения

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. s_lim 04.01.13 16:43 Сейчас в теме
Пишу правила выгрузки из переписанной БП 1.6 в типовую БП 2.0.
Столкнулся с следующей проблемой - в конфигурации источнике создан, подчиненный справочнику Номенклатура (Справочники.Номенклатура.БазоваяЕдиницаИзмерения), справочник ЕдиницыИзмерения. В этом справочнике есть реквизит - ЕдиницаПоКлассификатору (тип - СправочникСсылка.КлассификаторЕдиницИзмерения). В ПКС сформировалось правило при котором в Справочники.КлассификаторЕдиницИзмерения, конфигурации приемника, попадают элементы справочника ЕдиницыИзмерения конфигурации источника, соответственно появляется куча идентичных единиц измерения с кодами не соответствующих ОКЕИ.
Каким образом сформировать ПКС, что бы в конфигурацию приемник (значение реквизита - Справочники.Номенклатура.БазоваяЕдиницаИзмерения) попадало значение реквизита справочника ЕдиницыИзмерения типа СправочникСсылка.КлассификаторЕдиницИзмерения? Или какой обработчик написать надо?
В прикрепленном файле - скриншот ПКС.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. davdykin 25 04.01.13 21:38 Сейчас в теме
Как то сумбурно написано. Я правильно понимаю что у вас в реквизите "БазоваяЕденицаИзмерения" в конфигурации источник Тип "СправочникСсылка.ЕденицыИзмерения" а в приемнике "СправочникСсылка.КлассификаторЕденицИзмерения". Если это так, то я бы попробовал следующее: 1. Создал правило конвертации "СправочникСсылка.КлассификаторЕденицИзмерения" в "СправочникСсылка.КлассификаторЕденицИзмерения". 2. При выгрузке "Базовой еденицы измерения" в справочнике номенклатура в событии реквизита "Перед выгрузкой" написал код "Значение = Источник.ЕденицаПоКлассификатору", где ЕденицаПоКлассификатору - имя реквизита содержащего ссылку на Классификатор едениц измерения.
3. s_lim 05.01.13 15:13 Сейчас в теме
(2) davdykin,
Согласен, написано немного сумбурно, для наглядности приведу скрины:
1. Конфигурация источник





2. Конфигурация приемник



Обработчик событий "перед выгрузкой" или "при выгрузке" Значение = Источник.ЕдиницаПоКлассификатору выдал ошибку - "Поле объекта не обнаружено (ЕдиницаПоКлассификатору)", что выглядит весьма странным.
4. davdykin 25 05.01.13 15:26 Сейчас в теме
я думаю что надо так "Значение = Источник.БазоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору"
5. s_lim 05.01.13 15:49 Сейчас в теме
(4) davdykin,
ОписаниеОшибки = Значение не является значением объектного типа (ЕдиницаПоКлассификатору)
6. s_lim 07.01.13 11:45 Сейчас в теме
В общем решил я проблему. Быть может решение не самое элегантное, но рабочее.
В ПКС объект-источник - БазоваяЕдиницаИзмерения и такой же объект-приемник, правило - КлассификаторЕдиницИзмерения, в обработчике "Перед выгрузкой" следующий код:
Если Источник.ЭтоГруппа = Истина Тогда
	Отказ = Истина;
ИначеЕсли ПустаяСтрока (Источник.БазоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору) Тогда
	Отказ = Истина;
Иначе
	Значение = Источник.БазоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору.ПолучитьОбъект();
КонецЕсли;
Показать
SkyLink2012; +1 Ответить
7. davdykin 25 07.01.13 13:04 Сейчас в теме
(6) s_lim, у вас в сравнении
ПустаяСтрока (Источник.БазоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору)
немного не верно, т.к. это ссылка то необходимо проверять так
Источник.БазоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору.Пустая()
. А так молодец, честно говоря в вашем случаи можно было помочь только смоделировав ситуацию, а времени небыло :).
Смешной 1С; s_lim; +2 Ответить
8. s_lim 07.01.13 15:22 Сейчас в теме
(7) davdykin,
Спасибо за поправку!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот