Имя: Пароль:
1C
1С v8
слишком много фактических параметров
0 Woolf
 
11.08.11
12:28
Доброго времени суток! Не могу разобраться с планом видов характеристик. Пытаюсь обработкой заполнить свойства номенклатуры.
В результате ошибка "слишком много фактических параметров".
С пвх практически еще не сталкивался - посему тухлыми помидорами, просьба, не бросайтесь.


Процедура ЗаписатьСвойство(ТоварСсылка,НаименованиеСвойства,ЗначениеСвойства)

Запрос = Новый Запрос;
   Запрос.Текст = "
   | ВЫБРАТЬ
   | ЗначенияСвойствОбъектов.Объект   КАК Объект,
   | ЗначенияСвойствОбъектов.Свойство КАК Свойство,
   | ЗначенияСвойствОбъектов.Значение КАК Значение
   | ИЗ
   | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
   | ГДЕ
   | (ЗначенияСвойствОбъектов.Свойство.НазначениеСвойства = Значение(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура))
   | И (Объект = &ТоварСсылка)
       | ";
   
   Запрос.УстановитьПараметр("ТоварСсылка",ТоварСсылка);

пвхСвойство               = неопределено;
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       СвойствоВыборки = Выборка.Свойство;
       Если СвойствоВыборки.Наименование = НаименованиеСвойства Тогда    //приходится так, потому что в выборку //попадают и Цвет, и Полнота, и Размер

           Если СокрЛП(Выборка.Значение) = Выборка.Значение Тогда
               пвхСвойство = Выборка.Свойство;
           КонецЕсли;      
           прервать;
       КонецЕсли;
   КонецЦикла;    

Если пвхСвойство               = неопределено Тогда
       пвхСвойство                    = ПланыВидовХарактеристик.СвойстваОбъектов.СоздатьЭлемент();
       пвхСвойство.Наименование       = НаименованиеСвойства;
       пвхСвойство.НазначениеСвойства = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
       пвхСвойство.Записать(ложь);
   КонецЕсли;
   
   СпрЗначСвОб  = Справочники.ЗначенияСвойствОбъектов;
   сСпрЗначСвОб = СпрЗначСвОб.НайтиПоНаименованию(ЗначениеСвойства,Истина);
   Если сСпрЗначСвОб = СпрЗначСвОб.ПустаяСсылка() Тогда
       НовРазмер   = СпрЗначСвОб.СоздатьЭлемент();
       НовРазмер.Наименование = ЗначениеСвойства;
       НовРазмер.Владелец = пвхСвойство;
       НовРазмер.Записать();
       сСпрЗначСвОб = НовРазмер.Ссылка;
   КонецЕсли;
   
   НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
   
   НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(ТоварСсылка);
   НаборЗаписейЗначенияСвойств.Отбор.Свойство.Установить(пвхСвойство.Ссылка);
   
   НаборЗаписейЗначенияСвойств.Прочитать();
   
   Если НаборЗаписейЗначенияСвойств.Количество()=0 Тогда
       НовЗапись = НаборЗаписейЗначенияСвойств.Добавить();
   Иначе
       НовЗапись = НаборЗаписейЗначенияСвойств[0];
   КонецЕсли;
   
   НовЗапись.Объект   = ТоварСсылка;
   НовЗапись.Свойство = пвхСвойство.Ссылка;
   НовЗапись.Значение = сСпрЗначСвОб;
   НаборЗаписейЗначенияСвойств.Записать();
КонецПроцедуры
1 Jstunner
 
11.08.11
12:29
в какой строчке ошибка?
2 Woolf
 
11.08.11
12:31
(1) пвхСвойство.НазначениеСвойства = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;
3 Rebelx
 
11.08.11
12:33
я думаю тут у тебя ошибка:
пвхСвойство.Записать(ложь)
4 Ненавижу 1С
 
гуру
11.08.11
12:35
(2) брешишь, ошибка тут

пвхСвойство.Записать(ложь);

а что параметр ложь собственно означает у тебя?
5 lxs
 
11.08.11
12:36
Дожили, млять, отладчиком пользоваться не умеем.
6 Ненавижу 1С
 
гуру
11.08.11
12:37
(5) а миста на что?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn