Загрузка из dbf в 1с

Новая тема
"Здравствуйте, уважаемые!
Подскажите, пожалуйста, что не так в обработке:

Процедура ЗаполнениеСправочника()
ФайлНоменклатура = Новый XBase;
ФайлНоменклатура.Кодировка = КодировкаXBase.OEM;
ФайлНоменклатура.ОткрытьФайл("D:\My documents\Мои документы\SPNM.DBF");
ФайлНоменклатура.Первая();

счетчик = 1;
Номенклатура = Справочники.Новый();
Пока Не ФайлНоменклатура.ВКонце() Цикл
НаименованиеТовара = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMNAME"));
ПолноеНаименование = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN1"));
НаименованиеДляПечати = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN2"));
БазоваяЕдиница = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMED"));
Страна = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMST"));
НомерГТД = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMGTD"));
КоличествоЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUPAK"));
ВесЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMVES"));
ЗакупочнаяЦена = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMSEB"));
РозничнаяЦенаМин = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMIN"));
РозничнаяЦенаМакс = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMAX"));
Валюта = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUE"));
ЦенаДляСотрудника = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMCENA1"));
ВидНоменклатуры = "Товар";
ЕдиницаХраненияОстатков = БазоваяЕдиница;
ЕдиницаДляОтчетов = БазоваяЕдиница;
НДС = "18%";
Если Валюта = 1 тогда
Категории = "Импортный";
КонецЕсли;
Артикул = счетчик;
счетчик = счетчик + 1;
КонецЦикла;

ФайлНоменклатура.ЗакрытьФайл();
КонецПроцедуры"
"> Номенклатура = Справочники.Новый();
Это что? Справочник то какой? Наверное Справочники.Номенклатура.СоздатьЭлемент(); вам нужно..
И чего вы пытаетесь делать дальше? Если заполняете созданный элемент справочника, то пишите Номенклатура.Наименование = , Номенклатура.Арткул = , и т.д. А в конце еще нужно Номенклатура.Записать();
А еще Базовая едиинца, ставка НДС и многое другое - это не строковые переменные, и такое присваивание (="Товар") не попрет."
> не попрет.

+1
"Вот так тоже не работает:

Процедура ЗаполнениеСправочника()
ФайлНоменклатура = Новый XBase;
ФайлНоменклатура.Кодировка = КодировкаXBase.OEM;
ФайлНоменклатура.ОткрытьФайл("D:\My documents\Мои документы\SPNM.DBF");
ФайлНоменклатура.Первая();

счетчик = 1;
Пока Не ФайлНоменклатура.ВКонце() Цикл
Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
Номенклатура.НаименованиеТовара = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMNAME"));
Номенклатура.ПолноеНаименование = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN1"));
Номенклатура.НаименованиеДляПечати = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN2"));
Номенклатура.БазоваяЕдиница = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMED"));
Номенклатура.Страна = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMST"));
Номенклатура.НомерГТД = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMGTD"));
Номенклатура.КоличествоЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUPAK"));
Номенклатура.ВесЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMVES"));
Номенклатура.ЗакупочнаяЦена = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMSEB"));
Номенклатура.РозничнаяЦенаМин = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMIN"));
Номенклатура.РозничнаяЦенаМакс = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMAX"));
Номенклатура.Валюта = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUE"));
Номенклатура.ЦенаДляСотрудника = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMCENA1"));
Номенклатура.ВидНоменклатуры = "Товар";
Номенклатура.ЕдиницаХраненияОстатков = Номенклатура.БазоваяЕдиница;
Номенклатура.ЕдиницаДляОтчетов = Номенклатура.БазоваяЕдиница;
Номенклатура.НДС = "18%";
Если Номенклатура.Валюта = 1 тогда
Номенклатура.Категории = "Импортный";
КонецЕсли;
Номенклатура.Артикул = счетчик;
Номенклатура.Записать();
счетчик = счетчик + 1;
КонецЦикла;

ФайлНоменклатура.ЗакрытьФайл();
КонецПроцедуры"
"Попробуй так:
Процедура ЗаполнениеСправочника()

 Ном=СоздатьОбъект("СправочникНоменклатура");
 ФайлНоменклатура = СоздатьОбъект("XBase");
 ФайлНоменклатура.Кодировка = КодировкаXBase.OEM;
 ФайлНоменклатура.ОткрытьФайл("D:\My documents\Мои документы\SPNM.DBF");
 ФайлНоменклатура.Первая();

 счетчик = 1;
 Пока ФайлНоменклатура.ВКонце()=0 Цикл
   Номенклатура = Ном.Новый();
   ...
   ...
   ...
   Номенклатура.Записать();
   счетчик = счетчик + 1;
   ФайлНоменклатура.Следующая();
 КонецЦикла;

 ФайлНоменклатура.ЗакрытьФайл();
КонецПроцедуры "
:)
А вы программист вобще?
"У меня 8.0, а не 7.7.

Сейчас текст такой:

Процедура ЗаполнениеСправочника()
ФайлНоменклатура = Новый XBase;
ФайлНоменклатура.Кодировка = КодировкаXBase.OEM;
ФайлНоменклатура.ОткрытьФайл("D:\My documents\Мои документы\SPNM.DBF");

Если ФайлНоменклатура.Открыта() тогда
Предупреждение("База Открыта",2);
ФайлНоменклатура.Первая();

счетчик = 1;
Пока Не ФайлНоменклатура.ВКонце() Цикл
Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
Номенклатура.НаименованиеТовара = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMNAME"));
Номенклатура.ПолноеНаименование = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN1"));
Номенклатура.НаименованиеДляПечати = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN2"));
Номенклатура.БазоваяЕдиница = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMED"));
Номенклатура.Страна = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMST"));
Номенклатура.НомерГТД = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMGTD"));
Номенклатура.КоличествоЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUPAK"));
Номенклатура.ВесЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMVES"));
Номенклатура.ЗакупочнаяЦена = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMSEB"));
Номенклатура.РозничнаяЦенаМин = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMIN"));
Номенклатура.РозничнаяЦенаМакс = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMAX"));
Номенклатура.Валюта = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUE"));
Номенклатура.ЦенаДляСотрудника = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMCENA1"));
Номенклатура.ВидНоменклатуры = "Товар";
Номенклатура.ЕдиницаХраненияОстатков = Номенклатура.БазоваяЕдиница;
Номенклатура.ЕдиницаДляОтчетов = Номенклатура.БазоваяЕдиница;
Номенклатура.НДС = "18%";
Если Номенклатура.Валюта = 1 тогда
Номенклатура.Категории = "Импортный";
КонецЕсли;
Номенклатура.Артикул = счетчик;
Номенклатура.Записать();
ФайлНоменклатура.Следующая();
счетчик = счетчик + 1;
КонецЦикла;
Иначе
Предупреждение("Не смогли открыть базу!!!",2);
КонецЕсли;

ФайлНоменклатура.ЗакрытьФайл();
КонецПроцедуры"
К сожалению с 8-кой дело не имел....
Разобралась. Тема закрыта.
Разобралась. Тема закрыта.
Читают тему
(гостей: 1)

Быстрый переход