Имя: Пароль:
1C
1С v8
Переделать обработку
0 Bamperius89
 
04.03.14
11:10
Добрый день.Сделал обработку которая в номенклатуре в доп реквизитах присваивает реквизиту  ВидМатериала= значение Название папки
А реквизит ТипМатериала =Значение Расходник.

Но теперь надо чтоб он не присваивал название папки как значение,а создавал название папки  в справочнике значение доп реквизитов и подтягивать  если там нет в справочнике названия,то создавал и  от туда уже присваивал.Вот код ,кому не сложно подскажите как реализовать  

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                  |    Номенклатура.Ссылка,
                  |    Номенклатура.Родитель.Наименование КАК Наименование,
                  |    Номенклатура.ЭтоГруппа
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    (Номенклатура.Родитель.Родитель.Код = &Код
                  |            ИЛИ Номенклатура.Родитель.Родитель.Родитель.Код = &Код
                  |            ИЛИ Номенклатура.Родитель.Родитель.Родитель.Родитель.Код = &Код)"  ;
     Запрос.УстановитьПараметр("Код", ПапкаНоменклатуры.Код);
     Результат = Запрос.Выполнить();
     Выборка = Результат.Выбрать();
     Пока Выборка.Следующий() Цикл
         Если НЕ Выборка.ЭтоГруппа  Тогда
             НаборЗаписей  = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
                НаборЗаписей.Отбор.Объект.Установить(Выборка.ССылка);
                    НЗ = НаборЗаписей.Добавить();
                    НЗ.Период = ТекущаяДата();
                    НЗ.Объект =  Выборка.ССылка;
                    НЗ.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("020");
                    НЗ.Значение = Выборка.Наименование;
                    НЗ = НаборЗаписей.Добавить();
                    НЗ.Период = ТекущаяДата();
                    НЗ.Объект =  Выборка.ССылка;
                    НЗ.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("019");
                    НЗ.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоКоду("000000061");
         КонецЕсли;
                НаборЗаписей.Записать();
            КонецЦикла;  
КонецПроцедуры