|
Характеристики номенклатуры программно | ☑ | ||
---|---|---|---|---|
0
bebibo
06.04.22
✎
10:46
|
Всем добрый день.
Нужно заполнить характеристику номенклатуры. Точнее дозаполнить. Добавили одно свойство, вот его нужно у всех характеристик данной номенклатуры прописать. Как мне получить характеристику?? Я её получаю, но думаю, что не то я получаю. Код: ВесХарактеристика = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); СоздЭлементСпр = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); СоздЭлементСпр.Владелец = ВесХарактеристика; СоздЭлементСпр.Наименование = "22"; СоздЭлементСпр.Записать(); ЗначениеРазмер = СоздЭлементСпр.Ссылка; ЗначениеИзСправочника = ЗначениеРазмер; НовЗапись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); НовЗапись.Объект = Ном; НовЗапись.Свойство = ВесХарактеристика.Ссылка; НовЗапись.Значение = ЗначениеИзСправочника; НовЗапись.Записать(); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Значение, | Ложь КАК ПометкаУдаления |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", ВесХарактеристика); ТаблицаСвойств = Запрос.Выполнить().Выгрузить(); //Вот здесь мне же нужно получить характеристику, а не создать, но как её получить? НовыйЭлемент = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент(); НовыйЭлемент.Наименование = НовыйЭлемент.СформироватьНаименование(ТаблицаСвойств); НовыйЭлемент.Владелец = Ном.Ссылка; НовыйЭлемент.Записать(); Сообщить ("Значение свойства записано"); |
|||
1
bebibo
06.04.22
✎
10:47
|
Конфигурация: Комплексная автоматизация, редакция 1.1 (1.1.115.1)
|
|||
2
hhhh
06.04.22
✎
10:55
|
тут чего-то
НовЗапись.Объект = Ном; по идее должно быть НовЗапись.Объект = НовыйЭлемент.Ссылка; |
|||
3
hhhh
06.04.22
✎
10:56
|
и у характеристики может быть несколько свойств.
|
|||
4
bebibo
06.04.22
✎
10:59
|
(2) То есть РС писать самым последним?
|
|||
5
bebibo
06.04.22
✎
11:00
|
(3) Да, но мне нужно одно заполнить. Получается у одной номенклатуры - 10 характеристик. В Каждой характеристике мне нужно прописать свойство "Вес 1м,кг" в значение 22
|
|||
6
bebibo
06.04.22
✎
11:05
|
В РС пишет не корректно. Если создаю руками то в РС:
Объект|Свойство|Значение 22 |Вес 1,кг| 22 А если программно, то: Объект |Свойство|Значение Труба моя тест|Вес 1,кг| 22 |
|||
7
bebibo
06.04.22
✎
11:09
|
Как сделать так? https://dropmefiles.com/rIZ0v
Что я не так делаю? Вообще мне нужно изначально ПОЛУЧИТЬ объект эту характеристику, а я создаю. Но как её получить?? |
|||
8
bebibo
06.04.22
✎
11:27
|
Получаю характеристику, но там нет того, что нужно заполнить мне..
ВесХарактеристика = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); СоздЭлементСпр = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); СоздЭлементСпр.Владелец = ВесХарактеристика; СоздЭлементСпр.Наименование = "22"; СоздЭлементСпр.Записать(); ЗначениеРазмер = СоздЭлементСпр.Ссылка; ЗначениеИзСправочника = ЗначениеРазмер; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | ХарактеристикиНоменклатуры.Ссылка КАК Характеристика |ИЗ | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка |ГДЕ | Номенклатура.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ном); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СсылкаНаХарактеристикуНом = ВыборкаДетальныеЗаписи.Характеристика; ОбъектХарактеристики = СсылкаНаХарактеристикуНом.ПолучитьОбъект(); ОбъектХарактеристики.Записать(); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Значение, | Ложь КАК ПометкаУдаления |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", ВесХарактеристика); ТаблицаСвойств = Запрос.Выполнить().Выгрузить(); НовыйЭлемент = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент(); НовыйЭлемент.Наименование = НовыйЭлемент.СформироватьНаименование(ТаблицаСвойств); НовыйЭлемент.Владелец = Ном.Ссылка; НовыйЭлемент.Записать(); |
|||
9
hhhh
06.04.22
✎
11:48
|
(6) объект - это характеристика, а ты лепишь номенклатуру туда. Я же написал в (2), вообще не читаешь?
|
|||
10
bebibo
06.04.22
✎
12:36
|
(9) Так свойство - это тоже характеристика
|
|||
11
bebibo
06.04.22
✎
12:37
|
Запись = НаборЗаписейЗначенияСвойств.Добавить();
Запись.Объект = ??ВотЗдесьЧТо??; Свойство=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); Запись.Свойство = Свойство.Ссылка; Запись.Значение = СоздЭлементСпр; НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(??ВотЗдесьЧТо??); НаборЗаписейЗначенияСвойств.Отбор.Свойство.Установить(Свойство); НаборЗаписейЗначенияСвойств.Записать(); |
|||
12
bebibo
06.04.22
✎
12:38
|
В РС у Свойства тип: ПланВидовХарактеристикСсылка.СвойстваОбъектов
у Объекта тип: ДокументСсылка, СправочникСсылка |
|||
13
bebibo
06.04.22
✎
12:47
|
ВОт инфа с ИТС, там в объекте номенклатура
МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = ПолеВводаНоменклатура; МенеджерЗаписи.Свойство = ПолеВводаСвойствоНоменклатуры; МенеджерЗаписи.Значение = ПолеВводаЗначениеСвойства; МенеджерЗаписи.Записать(); ПОэтому у меня она |
|||
14
hhhh
06.04.22
✎
12:49
|
(13) это другое, это свойства номенклатуры, а тебе надо свойства характеристик номенклатуры.
|
|||
15
bebibo
06.04.22
✎
12:51
|
(14)
Запись.Объект = откуда взять тогда этот объект?; Свойство=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); Запись.Свойство = Свойство.Ссылка; |
|||
16
bebibo
06.04.22
✎
12:52
|
(15) аааааа
|
|||
17
lEvGl
гуру
06.04.22
✎
12:53
|
все смешалось в доме. в коде совсем не видно типа Справочники.ХарактеристикиНоменклатуры. Есть свойства объектов, есть характеристики номенклатуры, это разные справочники, определитесть, что нужно.
пс. Характеристика номенклатуры - не образовано от планвидовХарактеристик |
|||
18
bebibo
06.04.22
✎
12:54
|
(16)
Запись.Объект = Характиристика номенклатуры Запись.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); Так? |
|||
19
lEvGl
гуру
06.04.22
✎
13:01
|
наверно, если надо так. а что нужно? поставить значение свойства на номенклатуру или на характеристику номенклатуры?
|
|||
20
lEvGl
гуру
06.04.22
✎
13:03
|
и еще есть сомнения насчет того, что вы и к чему добавили
|
|||
21
bebibo
06.04.22
✎
13:05
|
(19)
Вот код сработал такой, НО наименование не меняется в самой номенклатуре..Не добавляется моя цифра 22..В наименование характеристики Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХарактеристикиНоменклатуры.Ссылка КАК СсылкаНаХар, | ХарактеристикиНоменклатуры.Наименование |ИЗ | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры |ГДЕ | ХарактеристикиНоменклатуры.Владелец = &Владелец | И ХарактеристикиНоменклатуры.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("Владелец", Ном); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл РегистрЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); //Записываем запись в регистр сведений РегистрЗначенияСвойствОбъектов.Значение = ЗначениеИзСправочника; РегистрЗначенияСвойствОбъектов.Объект = ВыборкаДетальныеЗаписи.СсылкаНаХар; РегистрЗначенияСвойствОбъектов.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); РегистрЗначенияСвойствОбъектов.Записать(); КонецЦикла; |
|||
22
bebibo
06.04.22
✎
13:08
|
(21) То есть сейчас у меня наименование хар-ки: 120*120, 0,78мм
А после добавления моего значения в мое добавленное свойство должно быть: 22, 120*120, 0,78мм Но это не происходит. |
|||
23
bebibo
06.04.22
✎
13:12
|
(22)
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл РегистрЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); //Записываем запись в регистр сведений РегистрЗначенияСвойствОбъектов.Значение = ЗначениеИзСправочника; РегистрЗначенияСвойствОбъектов.Объект = ВыборкаДетальныеЗаписи.СсылкаНаХар; РегистрЗначенияСвойствОбъектов.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); РегистрЗначенияСвойствОбъектов.Записать(); /////////НЕ ПОМОГЛИ ЭТИ 2 СТРОЧКИ ОбъектХар = ВыборкаДетальныеЗаписи.СсылкаНаХар.ПолучитьОбъект(); ОбъектХар.Записать(); КонецЦикла; |
|||
24
vicof
06.04.22
✎
13:15
|
Ну посмотри, где наименование формируется, и сделай также.
|
|||
25
lEvGl
гуру
06.04.22
✎
13:16
|
такое ощущение, что это собеседование на обслуживание
Комплексная автоматизация, редакция 1.1 (1.1.115.1) Кто разгадает, того возьмут, может быть |
|||
26
bebibo
06.04.22
✎
13:20
|
Все получилось. Всем спасибо!
Вот код: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХарактеристикиНоменклатуры.Ссылка КАК СсылкаНаХар, | ХарактеристикиНоменклатуры.Наименование |ИЗ | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры |ГДЕ | ХарактеристикиНоменклатуры.Владелец = &Владелец | И ХарактеристикиНоменклатуры.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("Владелец", Ном); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл РегистрЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); //Записываем запись в регистр сведений РегистрЗначенияСвойствОбъектов.Значение = ЗначениеИзСправочника; РегистрЗначенияСвойствОбъектов.Объект = ВыборкаДетальныеЗаписи.СсылкаНаХар; РегистрЗначенияСвойствОбъектов.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вес 1м,кг"); РегистрЗначенияСвойствОбъектов.Записать(); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Значение, | Ложь КАК ПометкаУдаления |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", ВыборкаДетальныеЗаписи.СсылкаНаХар); ТаблицаСвойств = Запрос.Выполнить().Выгрузить(); ОбъектХар = ВыборкаДетальныеЗаписи.СсылкаНаХар.ПолучитьОбъект(); ОбъектХар.Наименование = ОбъектХар.СформироватьНаименование(ТаблицаСвойств); ОбъектХар.Записать(); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |