|   |   | 
| 
 | Характеристики номенклатуры программно | ☑ | ||
|---|---|---|---|---|
| 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м,кг"); РегистрЗначенияСвойствОбъектов.Записать(); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Значение, | Ложь КАК ПометкаУдаления |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", ВыборкаДетальныеЗаписи.СсылкаНаХар); ТаблицаСвойств = Запрос.Выполнить().Выгрузить(); ОбъектХар = ВыборкаДетальныеЗаписи.СсылкаНаХар.ПолучитьОбъект(); ОбъектХар.Наименование = ОбъектХар.СформироватьНаименование(ТаблицаСвойств); ОбъектХар.Записать(); КонецЦикла; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |