Доброго времени суток, просьба не кидаться тяжелыми предметами, с 77 уже как 5 лет не занимался.
Подскажите где косяк?
Имеется БП 4.5
Требуется материалы перенести в номенклатуру
Спр = СоздатьОбъект("Справочник.Материалы");
Спр.ВыбратьЭлементы();
СпрСотр = СоздатьОбъект("Справочник.Номенклатура");
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если Спр.ТекущийЭлемент().ЭтоГруппа()=0 Тогда
// Если Спр.ТекущийЭлемент().ЭтоГруппа()=0 Тогда
Если СпрСотр.НайтиПоНаименованию(спр.Родитель,Спр.Родитель.Код) = 1 тогда
СпрСотр.Родитель =СпрСотр.ТекущийЭлемент();
КонецЕсли;
едИзм = СоздатьОбъект("Справочник.ЕдиницыИзмерений");
Если едИзм.НайтиПоНаименованию(спр.ЕдиницаИзмерения) = 1 тогда
СпрСотр.ЕдиницаИзмерения =едИзм.ТекущийЭлемент() ;
КонецЕсли;
СпрСотр.Цена = Спр.Цена;
СпрСотр.ТипТовара = Перечисление.ТипыТоваров.Собственный;
СпрСотр.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар;
СпрСотр.Записать();
сообщить("Наименование "+спр.Наименование+" Код "+спр.код);
КонецЕсли;
Получаю в конце элемент не выбран
Типа того:
СпрМатериалы = СоздатьОбъект("Справочник.Материалы");
СпрМатериалы.ВыбратьЭлементы();
СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
Пока СпрМатериалы .ПолучитьЭлемент() = 1 Цикл
Если СпрНоменклатура.НайтиПоКоду(СпрМатериалы.Код,1)=0 Тогда
Если СпрМатериалы.ЭтоГруппа()=1 Тогда
СпрНоменклатура.НоваяГруппа();
СпрНоменклатура.Код = СпрМатериалы.Код;
СпрНоменклатура.Наименование= СпрМатериалы.Наименование;
СпрНоменклатура.Записать();
Иначе
СпрНоменклатура.Новый();
СпрНоменклатура.Код = СпрМатериалы.Код;
СпрНоменклатура.Наименование= СпрМатериалы.Наименование;
// ......остальные реквизиты
СпрНоменклатура.Записать();
КонецЕсли;
КонецЕсли;
//далее еще одна выборка и просто заполнить реквизит Родитель, ищя его так-же по коду.
Усё
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший