Имя: Пароль:
1C
1С v8
Как загрузить номенклатурные группы из DBF
,
0 den17
 
06.06.12
15:10
Здравствуйте, я загружаю данные из DBF в справочник Номенклатура (конфигурация УТ), но все элементы загружаются просто, без групп. Как сделать, что-бы они были распределены по группам, подскажите пожалуйста..
1 den17
 
06.06.12
15:10
ДБФ = Новый XBase;
ДБФ.ОткрытьФайл("C:\tov.dbf");
НовыйЭлемент2 = Справочники.ВидыНоменклатуры.СоздатьЭлемент();
НовыйЭлемент2.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
НовыйЭлемент2.Наименование = "Товар";
НовыйЭлемент2.Записать();
//НоваяНоменклатура.ВидНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
Пока ДБФ.Следующая() Цикл
     
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();

 


ШтПоКлассификатору=Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
       НоваяЕдиницаИзмерения=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
       // уникальная ссылка для подстановки в товар


   НоваяссылкаЕдиницыИзмерения=Справочники.ЕдиницыИзмерения.ПолучитьСсылку();// уникальная ссылка


       НоваяЕдиницаИзмерения.УстановитьСсылкуНового(НоваяссылкаЕдиницыИзмерения);
       НоваяЕдиницаИзмерения.ПолучитьСсылкуНового();
       НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору=ШтПоКлассификатору;
       НоваяЕдиницаИзмерения.Коэффициент=1;
       НоваяЕдиницаИзмерения.Наименование="шт.";
       // не записываем раньше товара, поскольку нет владельца


       //НовыйТовар=Справочники.Номенклатура.СоздатьЭлемент();

//       НовыйТовар.ЕдиницаХраненияОстатков=НоваяссылкаЕдиницыИзмерения;

//       НовыйТовар.Артикул="А"+(Ст);

НоваяНоменклатура.БазоваяЕдиницаИзмерения=ШтПоКлассификатору;
//       НовыйТовар.ВидВоспроизводства=Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка;

//       НовыйТовар.Наименование="Шланг №"+Формат(Ст,"ЧЦ=4; ЧВН=; ЧГ=0"); // нужно ведущие нули

//

//       НовыйТовар.СтавкаНДС=Перечисления.СтавкиНДС.НДС18;

//       Новыйтовар.ВидНоменклатуры=Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");

//   НовыйТовар.Записать();


 НоваяНоменклатура.ВидНоменклатуры = НовыйЭлемент2.Ссылка;
 НоваяНоменклатура.НоменклатурнаяГруппа = ДБФ.ПолучитьЗначениеПоля("GRUPPA1");
НоваяНоменклатура.Код = ДБФ.ПолучитьЗначениеПоля("CODE");
НоваяНоменклатура.Наименование = ДБФ.ПолучитьЗначениеПоля("NAME");
       // товар записан со ссылкой на единицу измерения, которой в базе нет и в самой ссылке видим объект не найден

   НоваяНоменклатура.Записать();
   НоваяЕдиницаИзмерения.Владелец=НоваяНоменклатура.Ссылка;
   НоваяЕдиницаИзмерения.Записать();
   
   КонецЦикла;

ДБФ.ЗакрытьФайл();
2 Ц_У
 
06.06.12
15:13
Как то так можно
НоваяНоменклатура.Родитель = Справочники.НайтиПоКоду_Или_Наименованию(ДБФ.ПолучитьЗначениеПоля("Какое_то_поле_идентификации_родтителя"));
3 den17
 
06.06.12
15:32
Не работает, загружаются так-же, без групп:((
4 ЛЮС
 
06.06.12
15:37
А сами группы в базе есть? Если нет - тогда ставь условие: если родитель по коду не найден, то нужно создать новую группу.
5 Ц_У
 
06.06.12
15:40
Структура полей дбф какая?
и да:
1. есть ли такой элемент
2. проверка на группу
3. создание группы