До сих пор актуальны вопросы выгрузки из 1С 7.7, так что приходиться напрягать память где, что, чего и как ? Так что смотрим и вспоминаем…
Создаем и записываем данные в DBF 1C 7.7
//Создаем объект
База = СоздатьОбъект(«XBASE»);
База.КодоваяСтраница(1); // 1- DOS, 0 — Windows
//Добавляем поля в объект База.ДобавитьПоле("NOM","C",8,); База.ДобавитьПоле("KOL","N",14,3); База.ДобавитьПоле("ED","C",8,); База.ДобавитьПоле("CENA","N",15,2); База.ДобавитьПоле("SUMMA","N",15,2); База.ДобавитьПоле("K","C",1,); База.ДобавитьПоле("NOMDOC","C",10,); База.ДобавитьПоле("DATDOC","C",10,); База.ДобавитьПоле("NOMNAME","C",50,); //наименование номенклатуры База.ДобавитьПоле("NOMNAMEP","C",50,); //полное наименование номенклатуры База.ДобавитьПоле("ART","C",50,); //артикул База.ДобавитьПоле("GRUPPA","C",8,); //артикул База.ДобавитьПоле("KONTR","C",100,); //Создаем новый файл C:exch.dbf База.СоздатьФайл("C:exch.dbf"); База.ОчиститьФайл(); Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()= 1 Цикл База.Добавить(); База.УстановитьЗначениеПоля("NOM",Док.Номенклатура.Код); База.УстановитьЗначениеПоля("KOL",Док.Количество); База.УстановитьЗначениеПоля("ED",Док.Единица.ОКЕИ.Наименование); База.УстановитьЗначениеПоля("CENA",Док.Цена); База.УстановитьЗначениеПоля("SUMMA",Док.Сумма); База.УстановитьЗначениеПоля("K",Док.Коэффициент); База.УстановитьЗначениеПоля("NOMDOC",Док.НомерДок); База.УстановитьЗначениеПоля("DATDOC",СокрЛП(Док.ДатаДок)); База.УстановитьЗначениеПоля("KONTR",СокрЛП(Док.Контрагент.Наименование)); База.УстановитьЗначениеПоля("NOMNAME",СокрЛП(Док.Номенклатура.Наименование)); База.УстановитьЗначениеПоля("NOMNAMEP",СокрЛП(Док.Номенклатура.ПолнНаименование)); База.УстановитьЗначениеПоля("ART",СокрЛП(Док.Номенклатура.Артикул)); База.УстановитьЗначениеПоля("GRUPPA",СокрЛП(Номенклатура.Родитель.Код)); База.Записать(); КонецЦикла; Сообщить("Выгружен " +Док.ТекущийДокумент());
Читаем данные из DBF файла 1c 7.7
База = СоздатьОбъект("XBASE");
База.ОткрытьФайл("C:exch.dbf");
База.Первая();
Для й = 1 По База.КоличествоЗаписей() Цикл
Таб.НоваяСтрока();
Таб.Контр = База.ПолучитьЗначениеПоля("KONTR");
Таб.Ед= База.ПолучитьЗначениеПоля("ED");
Таб.Количество = База.ПолучитьЗначениеПоля("KOL");
Таб.Цена = База.ПолучитьЗначениеПоля("CENA");
Таб.Сумма = База.ПолучитьЗначениеПоля("SUMMA");
Таб.Коэффициент = База.ПолучитьЗначениеПоля("K");
........
База.Следующая();
КонецЦикла;