Замена с подгруппами в справочнике

1. DDD2005 21.04.08 09:19 Сейчас в теме
нашел обработку но она жутко кривая, мне нужно присвоить группе и подгруппе спр. номенклатуры в поле Производитель значение спр.Производители
и ругается
Производитель.ВыбратьЭлементыПоРеквизиту("Производитель", ППроизводитель);
{C:\DOCUMENTS AND SETTINGS\DENIS\РАБОЧИЙ СТОЛ\ЗАМЕНА.ERT(38)}: Неверное имя реквизита!

//*******************************************

Процедура ПриВыбореГруппы()
Если ВыбГруппаТМЦ.ЭтоГруппа() = 0 Тогда
Предупреждение("Выбранная позиция не является группой!");
ВыбГруппаТМЦ = "";
КонецЕсли;
КонецПроцедуры
//*******************************************

Процедура УстановитьЕдиницуНоменклатуры(Товар, ТекЕд)
Товар.УстановитьАтрибут("Производитель", ППроизводитель);
Товар.Записать();
КонецПроцедуры

//*******************************************

Процедура Сформировать()
Перем ТекущийТовар, ТекЕд;
Товар = СоздатьОбъект("Справочник.Номенклатура");
Производитель = СоздатьОбъект("Справочник.Производители");
Если ПустоеЗначение(ВыбГруппаТМЦ) = 0 Тогда
Товар.ИспользоватьРодителя(ВыбГруппаТМЦ);
КонецЕсли;
Если ПустоеЗначение(ППроизводитель) = 1 Тогда
Предупреждение("Не выбрана ППроизводитель измерения товара", 60);
СтатусВозврата(0);
Возврат;
КонецЕсли;
Если Вложенные = 1 Тогда
Товар.ВключатьПодчиненные(1);
Иначе
Товар.ВключатьПодчиненные(0);
КонецЕсли;
ОбщееКоличество = 0;
Товар.ВыбратьЭлементы();
Пока Товар.ПолучитьЭлемент() > 0 Цикл
ТекущийТовар = Товар.ТекущийЭлемент();
Если ТекущийТовар.ЭтоГруппа() = 0 Тогда
Производитель.ИспользоватьВладельца(ТекущийТовар);
Производитель.ВыбратьЭлементыПоРеквизиту("Производитель", ППроизводитель);
Если Производитель.ПолучитьЭлемент() = 0 Тогда
Производитель.Новый();
Производитель.УстановитьАтрибут("Производитель", ППроизводитель);
Производитель.Записать();
ТекЕд = Производитель.ТекущийЭлемент();
//УстановитьЕдиницуНоменклатуры(Товар, ТекЕд);

Иначе
Производитель.ВыбратьЭлементыПоРеквизиту("Производитель", ППроизводитель);
КоличествоЕдиниц = 1;
Пока Производитель.ПолучитьЭлемент() = 1 Цикл
Если КоличествоЕдиниц = 1 Тогда
ТекЕд = Производитель.ТекущийЭлемент();
//УстановитьЕдиницуНоменклатуры(Товар, ТекЕд);

Иначе
//Если флУдаления = 0 Тогда

// Прервать;

//Иначе

// Производитель.Удалить(0);

//КонецЕсли;

КонецЕсли;
КоличествоЕдиниц = КоличествоЕдиниц + 1;
КонецЦикла;
КонецЕсли;
//Если флБазовый = 1 Тогда

// //УстановитьЕдиницуЦены(ТекущийТовар, ТекЕд);

//КонецЕсли;

КонецЕсли;
ОбщееКоличество = ОбщееКоличество + 1;
Состояние("Обработано " + ОбщееКоличество + " позиций номенклатуры");
КонецЦикла;
КонецПроцедуры

http://www.slil.ru/upload/25711378
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Pavlovsky 56 21.04.08 15:25 Сейчас в теме
ВыбратьЭлементыПоРеквизиту(<?>,,,)
....
Замечание:
Метод можно использовать только для реквизитов с установленным признаком ''Сортировка''.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот