|
Программная запись в значение свойства Номенклатуры | ☑ | ||
---|---|---|---|---|
0
Евгений90
19.10.12
✎
09:55
|
Пытаюсь программно записать определенное значение в свойство Номенклатуры
"Импортер" - свойство планов видов характеристик |
|||
1
butterbean
19.10.12
✎
09:56
|
похвально
|
|||
2
Godofsin
19.10.12
✎
09:56
|
молодец! Продолжай
|
|||
3
Евгений90
19.10.12
✎
10:02
|
Код не вставил )) Делаю во внешней обработке. Для одной записи вроде разобрался, а вот чтобы для всех элементов группы в номенклатуре не выходит
Процедура КнопкаВыполнитьНажатие(Кнопка) СпрЗначСвОб = Справочники.ЗначенияСвойствОбъектов; свИмпортер = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Импортер"); сСпрЗначСвОб = СпрЗначСвОб.НайтиПоНаименованию("МоеЗначение"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СправочникНоменклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК СправочникНоменклатура |ГДЕ | СправочникНоменклатура.Родитель = &Товары И СправочникНоменклатура.ЭтоГруппа"; Запрос.УстановитьПараметр("Товары", Товары); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НовЗапись = НаборЗаписейЗначенияСвойств.Добавить(); НовЗапись.Объект = Выборка.Номенклатура; НовЗапись.Свойство = свИмпортер.Ссылка; НовЗапись.Значение = сСпрЗначСвОб; НаборЗаписейЗначенияСвойств.Записать(); КонецЦикла; КонецПроцедуры |
|||
4
Евгений90
19.10.12
✎
10:03
|
На форме внешней обработке установил поле ввода "Товары", тип СправочникСсылка.Номенклатура, настройку "Выбор групп и элементов" только группы
|
|||
5
LAAry
19.10.12
✎
10:05
|
СправочникНоменклатура.Родитель = &Товары И СправочникНоменклатура.ЭтоГруппа
Так ты устанавливаешь свойство только для групп? |
|||
6
Евгений90
19.10.12
✎
10:07
|
Да, в справочнике Номенклатура есть группа "Товары". Я хочу чтобы для всех элементов этой группы для свойства "Импортер" установилось значение "МоеЗначение"
|
|||
7
LAAry
19.10.12
✎
10:07
|
СправочникНоменклатура.Ссылка В Иерархии(&Товары)
|
|||
8
Infsams654
19.10.12
✎
10:09
|
(3) все неправильно (см. в типовых как сделано). Набору записей установи отбор ...
|
|||
9
Reset
19.10.12
✎
10:13
|
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Запись=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = Выборка.Номенклатура; Запись.Свойство = свИмпортер.Ссылка; Запись.Значение = сСпрЗначСвОб; Запись.Записать(); КонецЦикла; |
|||
10
Евгений90
19.10.12
✎
10:13
|
СправочникНоменклатура.Ссылка В Иерархии(&Товары) Так пробовал никакой реакции
НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(Выборка); Правильно? В скобках что писать? Как вставлять ссылку на чужой комментарий? |
|||
11
Reset
19.10.12
✎
10:13
|
Можно создание записи вынести наружу цикла, можно все сделать в тарнзакции
|
|||
12
Reset
19.10.12
✎
10:14
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | СправочникНоменклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК СправочникНоменклатура |ГДЕ | СправочникНоменклатура.Ссылка в иерархии (&Товары) и не СправочникНоменклатура.ЭтоГруппа"; |
|||
13
Reset
19.10.12
✎
10:15
|
Запись.Свойство = свИмпортер.Ссылка;
==> Запись.Свойство = свИмпортер; скрпипастил криво |
|||
14
Reset
19.10.12
✎
10:16
|
Осталось выяснить, что это "Товары"
Запрос.УстановитьПараметр("Товары", Товары); |
|||
15
Reset
19.10.12
✎
10:16
|
должна быть ссылка на группу
|
|||
16
Reset
19.10.12
✎
10:18
|
Хотя бы
Справочники.Номенклатура.НайтиПоНаименованию("Товары") или лучше по коду, т.к. кто-то стопудов гденибудь еще созадть с таки именем |
|||
17
Reset
19.10.12
✎
10:18
|
создал с таким*
|
|||
18
Reset
19.10.12
✎
10:18
|
Шеф, вы на связи? Все понятно?
|
|||
19
Reset
19.10.12
✎
10:20
|
Ссылку на комментарий вставлять вот так: (номер)
|
|||
20
Евгений90
19.10.12
✎
10:26
|
Спасибо, все получилось )
Вот код Процедура КнопкаВыполнитьНажатие(Кнопка) СпрЗначСвОб = Справочники.ЗначенияСвойствОбъектов; свИмпортер = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Импортер"); сСпрЗначСвОб = СпрЗначСвОб.НайтиПоНаименованию("МоеЗначение"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СправочникНоменклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК СправочникНоменклатура |ГДЕ | СправочникНоменклатура.Ссылка В Иерархии(&Товары) И НЕ СправочникНоменклатура.ЭтоГруппа"; Запрос.УстановитьПараметр("Товары", Товары); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НовЗапись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); НовЗапись.Объект = Выборка.Номенклатура; НовЗапись.Свойство = свИмпортер.Ссылка; НовЗапись.Значение = сСпрЗначСвОб; НовЗапись.Записать(); КонецЦикла; КонецПроцедуры |
|||
21
Reset
19.10.12
✎
10:28
|
Молодец, только (13) учти
|
|||
22
Reset
19.10.12
✎
10:29
|
хотя для одноразового запуска пофиг
|
|||
23
Евгений90
19.10.12
✎
10:31
|
Только не совсем понимаю, почему в тексте запроса мы указали
|ГДЕ | СправочникНоменклатура.Ссылка В Иерархии(&Товары) И (почему здесь нужно НЕ??? Здесь "НЕ" означает что это наоборот не группа?) НЕ СправочникНоменклатура.ЭтоГруппа" |
|||
24
Reset
19.10.12
✎
10:31
|
что бы в выборку НЕ попали группы.
У групп свойств нет, как правило |
|||
25
Евгений90
19.10.12
✎
10:32
|
Ок, понял спасибо, а как ссылку на чужой комментарий вставить?
|
|||
26
Reset
19.10.12
✎
10:33
|
(25) см (19)
|
|||
27
Евгений90
19.10.12
✎
10:34
|
(26) Спасибо )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |