Имя: Пароль:
1C
1С v8
КД: Конвертация в РегистрСведений со свойством составного типа
0 Armin
 
16.08.11
16:48
В БГУ Регистр сведений "ЗначенияХарактеристикОС" имеет свойство "ЗначениеХарактеристики", которое имеет составной тип данных (Строка,Число,Булево,Дата или Справочник.ДополнительныеХарактеристикиОС)

В обработчике пробовал присваивать как конкретное значение, так и передавать через ИсходящиеДанные (список значений).
Выгружается все нормально, но при загрузке все идет как Справочник.ДополнительныеХарактеристикиОС, но в самом справочнике эти записи отсутствуют. Т.е. в регистр записывается ссылка на справочник.
1 Armin
 
16.08.11
16:49
Необходимо загрузить все как строку
2 Armin
 
16.08.11
16:57
any ideas?
3 Синий зуб
 
16.08.11
16:57
В ПКС есть свойство - ТипПриемника. Укажи явно - ТипПриемника = "Строка".
4 Armin
 
16.08.11
17:00
явно нельзя. в том и смысл составного типа.

...

ИначеЕсли ((ВидХарактеристики = "Марка") Или
   (ВидХарактеристики = "Модель") Или
   (ВидХарактеристики = "ТипАвто")) Тогда
   
   // ДополнительныеХарактеристикиОС
   ИмяПКО = "ДополнительныеХарактеристикиОС";
   
   ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
   ИсходящиеДанные.ДобавитьЗначение(ВидХарактеристики, "Владелец");
   ИсходящиеДанные.ДобавитьЗначение(ЗначениеХарактеристики, "Наименование");
ИначеЕсли (ВидХарактеристики = "КраткИндивХарактОбъекта") Тогда
   //Значение=ЗначениеХарактеристики;
   //ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
   //ИсходящиеДанные.ДобавитьЗначение(ВидХарактеристики, "Владелец");
   //ИсходящиеДанные.ДобавитьЗначение(ЗначениеХарактеристики, "Наименование");
   
   //Строка
   ИмяПКО = "";
       Значение=ЗначениеХарактеристики;
КонецЕсли;
5 Синий зуб
 
16.08.11
17:06
Значит ПКО криво написал, ибо Значение = "чему-то" отрабатывется всегда правильно.
6 Синий зуб
 
16.08.11
17:10
Ну или вместо
  ИмяПКО = "";
  Значение=ЗначениеХарактеристики;
напиши
 ТипПриемника = "Строка";
 Значение = Строка(ЗначениеХарактеристики);
7 Armin
 
16.08.11
17:42
(6) И так не работает!
Попробовал реализовать справочником:
...
//ДополнительныеХарактеристикиОС
ИмяПКО = "ДополнительныеХарактеристикиОС";
ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.ДобавитьЗначение(ВидХарактеристики, "Владелец");
ИсходящиеДанные.ДобавитьЗначение(ЗначениеХарактеристики, "Наименование");

Записи справочника создаются. Но хотелось бы именно строкой.
8 Armin
 
16.08.11
17:44
В ПКО все просто:
...
ВыгрузитьПоПравилу(Источник, , ИсходящиеДанные, , "ЗначенияХарактеристикОС", , ,);
9 Armin
 
17.08.11
10:47
Вобщем получилось загрузить строкой. В плане видов характеристик надо было изменить тип данных конкретного вида хар-ки.

Но вылезла другая проблема: регистр сведений "ЗначенияХарактеристикОС" не дает записать 2 записи с одинаковыми измерениями ("ОсновныеСредства" и "ВидХарактеристики").
Как можно обойти это ограничение?
10 Armin
 
17.08.11
11:24
up...