Имя: Пароль:
1C
 
Как обратиться к пользовательской характеристики объекта???
,
0 ultrannge89
 
24.10.14
16:32
В общем мне нужно поменять некоторое значение регистра  РегистрыСведений.ЗначенияСвойствОбъектов, называется оно "Снижение ДДУ"

В цикле пишу так:
НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();        
            Запись = НаборЗаписейЗначенияСвойств.Добавить();
            
            Запись.Объект   = Выборка.ДоговорКонтрагента;
            Запись.Свойство.Наименование = "Снижение ДДУ";
            Запись.Значение = Выборка.СнижениеДДУ;    

            НаборЗаписейЗначенияСвойств.Записать();

Но ничего не получается:

{Форма.Форма.Форма(47)}: Поле объекта недоступно для записи (Наименование)
            Запись.Свойство.Наименование = "Снижение ДДУ";
1 ultrannge89
 
24.10.14
16:34
И еще, может быть нубоватый вопрос, но все таки, надо помимо этого выставлять Отбор для набора записей, например такой:
НаборЗаписейЗначенияСвойств.Отбор = Выборка.ДоговорКонтрагента;
Чтобы изменять имеено ту запись для которой я указал ссылку...
2 ultrannge89
 
24.10.14
16:36
Вечер пятницы, а вот уже 3 часа как должен быть дома, но сижу на работе т.к. дома скучно...
3 ultrannge89
 
24.10.14
16:40
Ну я так понял пользовательские характеристики хранятся в обычном справочнике: Справочники.ЗначенияСвойствОбъектов, мне просто найти по наименованию?
4 Krolik Bezobraznik
 
24.10.14
16:42
А не проще ли найти этот объект в 1С и в его форме поменять значение свойства?
5 ultrannge89
 
24.10.14
16:45
НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
            //НаборЗаписейЗначенияСвойств.Отбор = Выборка.ДоговорКонтрагента;
            Запись = НаборЗаписейЗначенияСвойств.Добавить();
            
            Запись.Объект   = Выборка.ДоговорКонтрагента;
            Запись.Свойство = "Снижение ДДУ";
            Запись.Значение = Выборка.СнижениеДДУ;    

            НаборЗаписейЗначенияСвойств.Записать();


Так выдает:
{Форма.Форма.Форма(51)}: Ошибка при вызове метода контекста (Записать)
            НаборЗаписейЗначенияСвойств.Записать();
по причине:
Запись не верна! Значение поля "Дополнительный реквизит" не может быть пустым!: ЗначенияСвойствОбъектов: блаблабла,  (Регистр сведений: Значения дополнительных реквизитов; Номер строки: 1)
6 ultrannge89
 
24.10.14
16:46
Если бы я делал код как проще, то было бы совсем не интересно...
7 ultrannge89
 
24.10.14
16:47
Что за такой дополнительный реквезит...?
8 Krolik Bezobraznik
 
24.10.14
16:51
9 alle68
 
24.10.14
17:07
(5) Решил регистр почистить?
10 ultrannge89
 
24.10.14
17:12
=) На копии можно =)
11 ultrannge89
 
24.10.14
17:12
Пока Выборка.Следующий() Цикл
            НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
            Запись = НаборЗаписейЗначенияСвойств.Добавить();
            Запись.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Снижение ДДУ");
            Запись.Объект   = Выборка.ДоговорКонтрагента;
            Запись.Значение = Выборка.СнижениеДДУ;    

            НаборЗаписейЗначенияСвойств.Записать();
        КонецЦикла;
12 ultrannge89
 
24.10.14
17:12
Работает, добавляю новую, затирая старую =)
13 SUA
 
24.10.14
17:14
затирает все ну это мелочи...
14 ultrannge89
 
24.10.14
17:15
Видимо надо разобраться как правильно использовать Отбор =)
15 ultrannge89
 
24.10.14
17:18
Как мне правильно выставить отбор, чтобы он у меня затирал предыдущую запись?
16 SUA
 
24.10.14
17:21
набор.отбор.свойство.установить()
по объекту тоже
17 ultrannge89
 
24.10.14
17:22
Ой все..
        Пока Выборка.Следующий() Цикл
            НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
            НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(Выборка.ДоговорКонтрагента);            
            
            Запись = НаборЗаписейЗначенияСвойств.Добавить();
            Запись.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Снижение ДДУ");
            Запись.Объект   = Выборка.ДоговорКонтрагента;
            Запись.Значение = Выборка.СнижениеДДУ;    

            НаборЗаписейЗначенияСвойств.Записать();
        КонецЦикла;
18 ultrannge89
 
24.10.14
17:22
Спасибо, пойду домой, а то уже почти 8 вечера...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс