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

//НовыйЭлемент.
НовыйЭлемент.Код = "0000020";
НовыйЭлемент.Наименование = "шт";
НовыйЭлемент.Записать();

//НовыйЭлемент3 = Перечисления.ТипыНоменклатуры.Товар;
//НовыйЭлемент3.Наименование = "Товар";
//НовыйЭлемент3.Записать();

НовыйЭлемент2 = Справочники.ВидыНоменклатуры.СоздатьЭлемент();
НовыйЭлемент2.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
НовыйЭлемент2.Наименование = "Кронштейны";
НовыйЭлемент2.Записать();
Сообщить(ОписаниеОшибки());


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

НоваяНоменклатура.БазоваяЕдиницаИзмерения = ДБФ.ПолучитьЗначениеПоля("BazEdIzm");
НоваяНоменклатура.ВидНоменклатуры = НовыйЭлемент2.Ссылка;
НоваяНоменклатура.Код = ДБФ.ПолучитьЗначениеПоля("CODE");
НоваяНоменклатура.Наименование = ДБФ.ПолучитьЗначениеПоля("NAME");
//НоваяНоменклатура.ВидНоменклатуры = ДБФ.gruppa2;
//Справочники.Номенклатура.СоздатьГруппу(ДБФ.gruppa1);
//Справочники.Номенклатура.СоздатьЭлемент()
//НоваяНоменклатура.Услуга = ДБФ.SERVICE;
//НоваяНоменклатура.Цена = ДБФ.PRICE;
НоваяНоменклатура.Записать();
КонецЦикла;

ДБФ.ЗакрытьФайл();  
КонецПроцедуры
2 birkoFFFF
 
06.06.12
12:09
Ну все правильно, а что ты хотел ?
3 den17
 
06.06.12
12:09
Не скажете, что не так?
4 pumbaEO
 
06.06.12
12:10
Решение:
1. Выполнять требования программы
2. Вежливо попросить "ОбменДанными.Загрузка = Истина"
5 birkoFFFF
 
06.06.12
12:11
(4) Ругаться перестанет, но базовую единицу все равно не заполнит )
6 den17
 
06.06.12
12:12
прямо так и написать?
7 Maxus43
 
06.06.12
12:12
(3) ед изм создаётся в при записи ФОРМЫ, погляди там алгоритм, чтоб всё было по феншую. Или юзай ЗаписатьВФорме
8 shuhard
 
06.06.12
12:13
(6) или (7) или :
ШтПоКлассификатору=Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
       НоваяЕдиницаИзмерения=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
       // уникальная ссылка для подстановки в товар
   НоваяссылкаЕдиницыИзмерения=Справочники.ЕдиницыИзмерения.ПолучитьСсылку();// уникальная ссылка
       НоваяЕдиницаИзмерения.УстановитьСсылкуНового(НоваяссылкаЕдиницыИзмерения);
       НоваяЕдиницаИзмерения.ПолучитьСсылкуНового();
       НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору=ШтПоКлассификатору;
       НоваяЕдиницаИзмерения.Коэффициент=1;
       НоваяЕдиницаИзмерения.Наименование="шт.";
       // не записываем раньше товара, поскольку нет владельца
       НовыйТовар=Справочники.Номенклатура.СоздатьЭлемент();
   НовыйТовар.ЕдиницаХраненияОстатков=НоваяссылкаЕдиницыИзмерения;
       НовыйТовар.Артикул="А"+(Ст);
       НовыйТовар.БазоваяЕдиницаИзмерения=ШтПоКлассификатору;
       НовыйТовар.ВидВоспроизводства=Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка;
       НовыйТовар.Наименование="Шланг №"+Формат(Ст,"ЧЦ=4; ЧВН=; ЧГ=0"); // нужно ведущие нули
       НовыйТовар.СтавкаНДС=Перечисления.СтавкиНДС.НДС18;
       Новыйтовар.ВидНоменклатуры=Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");
   НовыйТовар.Записать();
       // товар записан со ссылкой на единицу измерения, которой в базе нет и в самой ссылке видим объект не найден
   НоваяЕдиницаИзмерения.Владелец=НовыйТовар.Ссылка;
   НоваяЕдиницаИзмерения.Записать();
9 den17
 
06.06.12
12:53
пишет Значение поля "Владелец" не заполнено или заполнено неверно
10 shuhard
 
06.06.12
12:54
(9) нет ни чего глупее, чем привести ошибку без кода
11 den17
 
06.06.12
12:55
ДБФ = Новый XBase;
ДБФ.ОткрытьФайл("C:\tov.dbf");
НовыйЭлемент2 = Справочники.ВидыНоменклатуры.СоздатьЭлемент();
НовыйЭлемент2.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
НовыйЭлемент2.Наименование = "Кронштейны";
НовыйЭлемент2.Записать();

Пока ДБФ.Следующая() Цикл
     
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();

 


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

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

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

       //НовыйТовар=Справочники.Номенклатура.СоздатьЭлемент();
//      НовыйТовар.ЕдиницаХраненияОстатков=НоваяссылкаЕдиницыИзмерения;
//      НовыйТовар.Артикул="А"+(Ст);
НоваяНоменклатура.БазоваяЕдиницаИзмерения=ШтПоКлассификатору;
//      НовыйТовар.ВидВоспроизводства=Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка;
//      НовыйТовар.Наименование="Шланг №"+Формат(Ст,"ЧЦ=4; ЧВН=; ЧГ=0"); // нужно ведущие нули
//
//      НовыйТовар.СтавкаНДС=Перечисления.СтавкиНДС.НДС18;
//      Новыйтовар.ВидНоменклатуры=Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");
//   НовыйТовар.Записать();

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

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

ДБФ.ЗакрытьФайл();
12 den17
 
06.06.12
12:58
помогите пожалуста)
13 shuhard
 
06.06.12
12:59
(11) чё за бред:
где запись товара
где единица измерения остатков
14 den17
 
06.06.12
13:03
А, да, Запись товара добавил..
15 den17
 
06.06.12
13:07
Нихрена себе, сработало!! Спасибо бооооооооольше вам))
16 den17
 
06.06.12
13:07
Миста зэ бэст
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс