Имя: Пароль:
1C
1С v8
Как записать в планВидовХарактеристик
0 Sintez123
 
17.09.12
11:40
Гуглил, на этом форуме тоже, ответ что-то не попадается никак.

1с8.2 УТ типовая. У справочника номенклатуры есть доп.свойство. Надо из файла загрузить номенклатуры и проставить доп.свойства. Все сделал, но застрял на доп.свойствах.

Вот так удается прочитать свойство:

НаСайте = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("На сайте", Истина);
Значение = ПолучитьЗначениеСвойства(Номенклатура.Ссылка, НаСайте);

Но как найти и перезаписать это свойство, не создавая нового? Номенклатура будет находиться по коду.
1 mikecool
 
17.09.12
11:41
в какой ПВХ тебе записать надо? просто поменять свойство номенклатуры?
2 Sintez123
 
17.09.12
11:42
(1) да просто поменять свойство
в ПВХ СвойстваНоменклатуры
3 Sintez123
 
17.09.12
11:43
Вот так тоже читается:

НаСайте = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("На сайте", Истина); //удалить
Отбор = Новый Структура();
Отбор.Вставить("Объект", Ном.Ссылка);
Отбор.Вставить("Свойство", НаСайте.Ссылка);
Значение = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Отбор).Значение;
4 Sintez123
 
17.09.12
12:22
Никто не знает? :)
5 plastinin
 
17.09.12
12:28
Теоретически в РС "Значения свойств объектов"
6 plastinin
 
17.09.12
12:29
Не догнал. Тебе нужно свойство "На сайте" у некоторого набора номенклатуры проставить?
7 Sintez123
 
17.09.12
12:32
(6) Не догнал. Тебе нужно свойство "На сайте" у некоторого набора номенклатуры проставить?

Да :) Прочитать я его не надо, я уже научился, надо записать, заменить значение в нем.
8 Sintez123
 
17.09.12
12:34
О! Прогресс! :) Вот так удалось обнулить нужно свойство. Как туда строку вогнать?

               НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();                
               НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(Ном.Ссылка);
               НаборЗаписейЗначенияСвойств.Отбор.Свойство.Установить(НаСайте);
               Попытка
                   НаборЗаписейЗначенияСвойств.Записать();
               Исключение
                   Предупреждение("Не удалось записать значения свойств:" + Символы.ПС + ОписаниеОшибки());
               КонецПопытки;
9 plastinin
 
17.09.12
12:40
НаборЗаписейЗначенияСвойств.Значение = "твоя строка"; :))
10 Sintez123
 
17.09.12
12:42
(9) не работает. Уже пробовал. Пишет:

{Форма.Форма.Форма(546)}: Поле объекта не обнаружено (Свойство)
11 mikecool
 
17.09.12
12:43
(8) ты тупо удалил запись из РС, вот м кажется, что обнулил
12 mikecool
 
17.09.12
12:44
НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();                
               НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(Ном.Ссылка);
               НаборЗаписейЗначенияСвойств.Отбор.Свойство.Установить(НаСайте);
НаборЗаписейЗначенияСвойств.Прочитать();
НаборЗаписейЗначенияСвойств.Значение = Новое значение;
НаборЗаписейЗначенияСвойств.Записать();
13 Sintez123
 
17.09.12
12:44
А ведь там же не строка вовсе :) Там элемент справочника значения свойств. Стало быть надо вставлять не строку, а элемент справочника.
14 Sintez123
 
17.09.12
12:45
(12), не не сработает. там ссылку на элемент справочника сувать надобно
15 plastinin
 
17.09.12
12:47
Юзай менеджер записи:

Значение = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
Значение.Объект = Объект;
Значение.Свойство = НаСайте;
Значение.Значение = Справочник.ЗначенияСвойствОбъектов.НайтиПоКоду(бла-бла);

Значение.Записать(Истина);
16 plastinin
 
17.09.12
12:47
(14) в чем проблема?
17 mikecool
 
17.09.12
12:48
(13) откуда я знаю, что у тебя за тип свойства? поэтому и не написал, что строка, а написал Новое значение
18 Жан Пердежон
 
17.09.12
12:51
(13) там может быть что угодно, в зависимости от "Свойства"
и еще, в ут11 разделили доп.свойства и доп.реквизиты (которые хранятся в табличной части)
19 Sintez123
 
17.09.12
12:54
(18) не я посмотрел, там именно справочник "значение свойств"
20 Sintez123
 
17.09.12
13:35
Разобрался таки :) Тема закрыта. Полдня потерять на 2 строчки :(
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший