Имя: Пароль:
1C
1С v8
план видов характеристик СвойстваОбъектов
0 Woolf
 
11.08.11
09:05
Всем доброго времени суток! Второй день бодаюсь с планом видов характеристик СвойстваОбъектов. Проще говоря обработкой проставляю
Размер для Номенклатуры. И вот какая проблема: именно в этом пвх в назначении свойств "Характеристики номенклатуры" тоже есть Размер
и именно он "цепляется" обработкой. То есть НайтиПоНаименованию возвращает Размер да не тот. Героическими усилиями дошел до понимания первопричины: нужно указать НазначениеСвойства. А вот как это сделать программно - опять проблема. Вот кусок кода:

пвхСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(НаименованиеСвойства,Истина);
//пвхСвойство.НазначениеСвойства =
Если пвхСвойство                   = неопределено Тогда
       пвхСвойство                    = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
       пвхСвойство.Наименование       = НаименованиеСвойства;
       //пвхСвойство.НазначениеСвойства =
       пвхСвойство.Записать(ложь);
КонецЕсли;

Заранее спасибо
1 Дикообразко
 
11.08.11
09:07
создай руками
2 Woolf
 
11.08.11
09:10
(1) - руками я создал, то есть в карточке номенклатуры есть свойство Размер, однако сие значение обработкой не проставляется, так как цепляется не тот размер из пвх.
Можно, конечно, НайтиПоКоду - там всё конкретно срабатывает.
Но уже интересно самому становится - как это дело победить
3 Woolf
 
11.08.11
09:12
+(2)-да и процедуру переписывать придётся - коряво будет
4 butterbean
 
11.08.11
09:17
запросом ищи, с условием по полям НазначениеСвойства и Наименование
5 Woolf
 
11.08.11
09:40
(4)-вот запрос, думаю что корректный:
ВЫБРАТЬ
   ЗначенияСвойствОбъектов.Объект КАК Объект,
   ЗначенияСвойствОбъектов.Свойство КАК Свойство,
   ЗначенияСвойствОбъектов.Значение КАК Значение
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
   (ЗначенияСвойствОбъектов.Свойство.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура))
   И (Объект = &Объект)

однако сей запрос не выбрал ничего - и это правильно
а как теперь грамотно записать в регистр с правильным назначением?
6 Дикообразко
 
11.08.11
09:45
(5) ты не можешь получить ссылку на ПВХ назначение свойств?
7 Woolf
 
11.08.11
09:45
(6) видимо да
8 Woolf
 
11.08.11
09:47
+(7) - чего й то само название объекта "планвидовхарактеристик" меня слегка в параллельные миры уводит :)
это ж надо так намудрить!
9 Дикообразко
 
11.08.11
09:48
(8) справочников типов и не более того
10 Дикообразко
 
11.08.11
09:49
пвхСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию
       пвхСвойство                    = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
       пвхСвойство.Наименование       = НаименованиеСвойства;
       пвхСвойство.НазначениеСвойства = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры;

       пвхСвойство.Записать(ложь);
11 Woolf
 
11.08.11
12:13
Если пвхСвойство               = неопределено Тогда
       пвхСвойство                    = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
       пвхСвойство.Наименование       = НаименованиеСвойства;
       пвхСвойство.НазначениеСвойства = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
       пвхСвойство.Записать(ложь);
   КонецЕсли;

пишет "слишком много фактических параметров"