Имя: Пароль:
1C
1С v8
Конвертация Данных: поля поиска
0 PiotrLoginov
 
28.10.12
20:21
Здравствуйте всем. У меня после переноса два элемента справочника на новом месте имеют в одном из своих реквизитов одинаковое значение, а должны - разное. Реквизит этот - ссылочный. Для его ПКС настроено определенное ПКО. В то ПКО я уже данные из ПКС передавал и через "Значение = Источник", и через "Входящие данные" - всё без толку. Хоть тресни, для обоих элементов вижу в выгруженном xml-файле одинаковое значение этого реквизита, а должно быть разное.
1 PiotrLoginov
 
28.10.12
20:35
Теперь немного конкретнее. Переношу из ТиС 8.6 в УТ 11. Справочник Контрагенты переношу в справочник Партнеры, а также в справочник Контрагенты, где каждый элемент имеет реквизит Партнер-Владелец. ПКО Партнеры получилось навороченное, но справочник Контрагенты источника перенесся в Партнеры приемника без проблем.

Теперь надо заполнить в приемнике справочник Контрагенты. Создал ПКО Контрагенты. Для ПКС Партнер указал ранее созданное ПКО Партнеры. Попытался перенести. Уже на этапе выгрузки получил кучу "Ошибок исполнения обработчика" из-за многочисленных "ПередВыгрузкой", "ПриВыгрузке" и т.п. Тогда создал ПКО Партнеры заново - простое, без лишних телодвижений, с указанием только полей поиска и способом получение значений этих полей.

А теперь главное: полей несколько, т.к. многие партнеры в приемнике имеют одинаковое Наименование. Но это не спасает почему-то. Устал биться, пишу сюда.
2 ЧашкаЧая
 
28.10.12
20:55
"Значение = Источник"
Именно так и было? "Значение" это переменная в которую нужно установить правильное значение реквизита, "Источник" переменная в которой хранится объект конвертации, "родитель" этого реквизита. Пример из потолка, имеем справочник номенклатура с реквизитом Услуга (булево) и нужно для услуг перенести ед. измерения "час" для всего остального "шт", в ПКС реквизита Единица измерения в правиле ПередВыгрузкой

Когда Источник.Услуга Тогда
  ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("час");
Иначе
  ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
КонецЕсли;
  Значение = ЕдиницаИзмерения;
3 PiotrLoginov
 
28.10.12
21:23
(2) Почитав пособия и справку к КД, понимаю этот механизм так: Когда при переносе очередного объекта в приемник (в моем случае - в элемент справочника Контрагенты) доходит очередь до ПКС, где тип значения приемника - ссылочный (в моем случае ссылка на элемент справочника Партнеры), управление передается в соответствующее ПКО (в моем случае - ПКО Партнеры), и вместе с управлением передается значение реквизитов - например, Значение = Источник или Значение = ПолучитьЗначение(ВходящиеДанные, "Наименование") - по которым будет производиться поиск элемента, ссылка на который требуется.

У меня в ПКО Партнеры аж три реквизита, по которым производится поиск, и все три я заполняю конкретными значениями, но почему-то все равно в выгруженном xml-файле я вижу одинаковое значение ссылочного реквизита для двух разных элементов.
AdBlock убивает бесплатный контент. 1Сергей