Имя: Пароль:
1C
1С v8
Правила обмена данными (табличная часть в подчиненный справочник)
0 PeterGr
 
28.11.12
20:06
Помогите пожалуйста разобраться с правилами обмена, использую стандартный обмен между «Бухгалтерия для Украины» и «Управление торговлей для Украины». Необходимо настроить перенос единиц измерения. В направлении ут -> бухгалтерия ед. измерения переносятся. А из бухгалтерии в ут нет. В бухгалтерии это табличная часть номенклатуры в ут – подчиненный справочник. Подскажите, как настроить правила конвертации объектов для табличной части единицы измерения в подчиненный справочник.  Третий день разбираюсь с конвертацией данных...
1 PeterGr
 
29.11.12
14:55
Пробую выгружать, в ПКО Номенклатура в обработчике событий "После выгрузки"

Если Не Источник.ЭтоГруппа Тогда        
   УзелЕдиницИзмерения = СоздатьУзел("ЕдиницыИзмерения");
   
   КвоЕдиниц = Источник.ЕдиницыИзмерения.Количество();
   УстановитьАтрибут(УзелЕдиницИзмерения, "КвоЕдиниц", КвоЕдиниц);

   Для каждого стр из Источник.ЕдиницыИзмерения Цикл
       УстановитьАтрибут(УзелЕдиницИзмерения, "Единица_"+стр.НомерСтроки, стр.ЕдиницаИзмерения.Наименование);
       УстановитьАтрибут(УзелЕдиницИзмерения, "Вес_"+стр.НомерСтроки, стр.Вес);
       УстановитьАтрибут(УзелЕдиницИзмерения, "Коэффициент_"+стр.НомерСтроки, стр.Коэффициент);
   КонецЦикла;        
       
   ДобавитьПодчиненный(Приемник, УзелЕдиницИзмерения);    
КонецЕсли;

Не знаю как обработать загрузку, в каком обработчике событий и как получить узел "ЕдиницыИзмерения".
При загрузке в УТ "Ошибка получения значения свойства объекта (по имени свойства источника)".
2 Судачатник
 
29.11.12
15:19
Попробуй так:

1. Создаешь ПКО "ЕдИзмвУТ":
Источник пустой, Приемник - справочник Ед изм в УТ (не знаю как называется). В ПКС проставляешь галочки получить из входящих данных (Код,Наименование, Владелец), поиск по владельцу и наименованию.
Галочку на не запоминать выгруженные объекты в ПКО.

2. В ПВД "Номенклатура" формируешь исходящие данные и передаешь через
Формируешь ИсходящиеДанные и потом
ВыгрузитьПоПравилу(,,,ИсходящиеДанные,ЕдИзмвУТ);
3 PeterGr
 
29.11.12
16:29
Большое, огромное  спасибо!!!!!!!!!!!!!!!!!!!!!!!
Все работает. Только      ВыгрузитьПоПравилу(Объект.Ссылка,, ВходящиеДанные,, "ЕдиницыИзмеренияУТ");
4 PeterGr
 
30.11.12
01:59
Неправильно загружались единицы измерения в УТ (удваивались и перетирались), из за неверного поиска.
Добавил в ПКО "ЕдиницыИзмеренияУТ" в обработчик событий "После загрузки" код

Запрос = Новый Запрос;
Запрос.Текст =
   "ВЫБРАТЬ
   |    ЕдиницыИзмерения.ЕдиницаПоКлассификатору,
   |    ЕдиницыИзмерения.Коэффициент,
   |    ЕдиницыИзмерения.Вес,
   |    ЕдиницыИзмерения.Ссылка
   |ИЗ
   |    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
   |ГДЕ
   |    ЕдиницыИзмерения.Владелец = &Владелец";

Запрос.УстановитьПараметр("Владелец", Объект.Владелец.Ссылка);

Выборка = Запрос.Выполнить().Выбрать();

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

Если флНайден = 0 Тогда
   НоваяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
   НоваяЕдиницаИзмерения.Владелец = Объект.Владелец.Ссылка;
   НоваяЕдиницаИзмерения.Вес = Объект.Вес;
   НоваяЕдиницаИзмерения.Коэффициент = Объект.Коэффициент;
   НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору = Объект.ЕдиницаПоКлассификатору.Ссылка;
   НоваяЕдиницаИзмерения.Наименование = Объект.ЕдиницаПоКлассификатору.Наименование;
   НоваяЕдиницаИзмерения.Записать();
   Сообщить("Записан новый элемент единица измерения "+НоваяЕдиницаИзмерения.Код);    
Иначе    
   НайденнаяЕдиницаИзмерения.Вес = Объект.Вес;
   НайденнаяЕдиницаИзмерения.Коэффициент = Объект.Коэффициент;
   НайденнаяЕдиницаИзмерения.Записать();    
КонецЕсли;

Отказ = Истина;