Примерно так:
ДБФ=СоздатьОбъект("XBASE");
Ф=СоздатьОбъект(ФС);
дир=каталогИБ();
// создадим начало файла с номером аптеки
НомерАптеки=прав("00"+Контрагент.Код,2);
Файл= Строка(НомерАптеки) + Прав(НомерДок,6);
если Ф.ВыбратьФайл(1,Файл,Дир,"Укажите файл с куда выгружать","Файл заказа (*.dbf) |*.dbf",,)=0 тогда
DoMessageBox("Файл не записан!");
возврат;
конецесли;
если Ф.СуществуетФайл(Дир+Файл)=1 тогда
Если Вопрос("Файл с таким именем уже существует!! Перезаписать?",4)=7 тогда
возврат;
конецесли;
конецесли;
// Дата 3
// Строка 2
// Число 1
// + обязательное поле
// - необязательное поле
ДБФ.ДобавитьПоле("KONTRAGENT",2,180,0); // + // контрагент для аптеки "ООО Ривьера" например, "Тайди - Казань ..."
ДБФ.ДобавитьПоле("NUMDOC",2,10,0); // + // номер накладной
ДБФ.ДобавитьПоле("DATE",3,8,0); // + // дата накладной
ДБФ.ДобавитьПоле("OSNOVANIE",2,50,0); // - // основание накладной
ДБФ.ДобавитьПоле("GRUP",2,5,0); // - // группа ТМЦ - не заполняется
ДБФ.ДобавитьПоле("NNUM",2,13,0); // - // номенклатурный номер ТМЦ - не заполняется
ДБФ.ДобавитьПоле("NAME",2,34,0); // + // наименование ТМЦ
ДБФ.ДобавитьПоле("ED",2,5,0); // + // ед.изм. ТМЦ
ДБФ.ДобавитьПоле("KOL",1,17,4); // + // количество ТМЦ по накладной
ДБФ.ДобавитьПоле("CODEVAL",2,3,0); // + // всегда = "РУБ" - т.е. приход в рублях
ДБФ.ДобавитьПоле("CENAVAL",1,13,4); // + // всегда = 1 - соответственно
ДБФ.ДобавитьПоле("CENA0",1,19,4); // + // цена ТМЦ в рублях (БЕЗ НДС)
ДБФ.ДобавитьПоле("NDS_TAX",1,5,2); // + // ставка НДС, в процентах
ДБФ.ДобавитьПоле("NDS_SUM",1,19,4); // + // сумма НДС - для ОДНОЙ ТМЦ !!!
ДБФ.ДобавитьПоле("SUMMA0",1,19,4); // + // сумма ТМЦ (БЕЗ НДС)
ДБФ.ДобавитьПоле("SUMMA",1,19,4); // + // сумма ТМЦ (С НДС)
ДБФ.ДобавитьПоле("MARKA",2,25,0); // - // дополнительное поле - не используется
ДБФ.ДобавитьПоле("SORT",2,25,0); // - // дополнительное поле - не используется
ДБФ.ДобавитьПоле("PROFIL",2,25,0); // - // дополнительное поле - не используется
ДБФ.ДобавитьПоле("RAZMER",2,25,0); // - // дополнительное поле - не используется
ДБФ.ДобавитьПоле("KOEF",1,14,4); // - // дополнительное поле - не используется
ДБФ.ДобавитьПоле("SERIA",2,25,0); // + // серия ТМЦ
ДБФ.ДобавитьПоле("SERTIFICAT",2,100,0); // + // сертификат ТМЦ
ДБФ.ДобавитьПоле("PRIM",2,50,0); // - // примечание для ТМЦ
ДБФ.ДобавитьПоле("GTD",2,30,0); // + // номер ГТД
ДБФ.ДобавитьПоле("COUNTRY",2,25,0); // + // страна изготовления ТМЦ
ДБФ.ДобавитьПоле("ATTRIB1",2,25,0); // - // дополнительное поле
ДБФ.ДобавитьПоле("ATTRIB2",2,25,0); // - // дополнительное поле
ДБФ.ДобавитьПоле("BARCODE",2,13,0); // - // штрих-код ТМЦ
ДБФ.ДобавитьПоле("MAKER",2,25,0); // + // фирма-изготовитель ТМЦ
ДБФ.ДобавитьПоле("DATE_MAKED",3,8,0); // + // дата производства ТМЦ
ДБФ.ДобавитьПоле("DATE_END",3,8,0); // + // срок годности ТМЦ, т.е. использовать до указанной даты
ДБФ.ДобавитьПоле("INS",2,1,0); // - // технологическое поле
ДБФ.ДобавитьПоле("PERCENT",1,6,2); // - // технологическое поле
ДБФ.ДобавитьПоле("MODE",2,100,0); // - // технологическое поле
ДБФ.ДобавитьПоле("COMMENT",2,240,0); // - // информационное поле
ДБФ.СоздатьФайл(файл);
РасчетНакладной(); //там проверка сформированности!!
табнакл=СгруппироватьПоТоваруТабл(табрасх,контекст,1,,НДС1,НДС2,безНДС); //1- означ. - в штуках без групп в коробки и т.д.
йй=ТабНакл.КоличествоСтрок();
Для й=1 По йй Цикл
ТабНакл.ПолучитьСтрокуПоНомеру(й);
ДБФ.Добавить();
// ндс %
прндс=табнакл.товар.НДС;
если прндс.порядковыйномер()=1 тогда
прндс=НДС1;
иначе
прндс=НДС2;
конецесли;
// найдем сертификат
ДокСерт=СоздатьОбъект("Документ");
НомерДокСертификат = "";
РегистрационныйНомерСертификат = "";
КемВыданСертификат = "";
ДатаВыдачиСертификат = "";
СрокДействияСертификат = "";
если доксерт.ВыбратьПоЗначению(,,"ТоварСертификаты",табнакл.Товар)=0 тогда
Сообщить(Строка(ТабНакл.товар.Наименование) + " На этот товар нет сертификатов");
иначе
МаксСрок=дата("");
серт=ДокСерт.ТекущийДокумент();
Пока ДокСерт.получитьДокумент()=1 Цикл
ТекС=ДокСерт.ТекущийДокумент();
Серт=ТекС;
если (МаксСрок<ТекС.СрокДействия) тогда //И (Текс.ВНаличии=1)
МаксСрок=ТекС.СрокДействия;
конецесли;
конеццикла;
если серт.выбран()=1 тогда
НомерДокСертификат = серт.НомерДок;
РегистрационныйНомерСертификат = серт.НомерСертификата;
КемВыданСертификат = серт.КемВыдан;
ДатаВыдачиСертификат = серт.ДатаДок;
СрокДействияСертификат = серт.СрокДействия;
иначе
Сообщить(Строка(ТабНакл.товар.Наименование) + " На этот товар нет ДЕЙСТВУЮЩИХ сертификатов");
конецесли;
конецесли;
ДБФ.KONTRAGENT = Фирма.Наименование; // + // контрагент для аптеки "ООО Ривьера" например, "Тайди - Казань ..."
ДБФ.NUMDOC = Строка(НомерДок); // + // номер накладной
ДБФ.DATE = ДатаДок; // + // дата накладной
ДБФ.OSNOVANIE = ""; // - // основание накладной
ДБФ.GRUP = ""; // - // группа ТМЦ - не заполняется
ДБФ.NNUM = ""; // - // номенклатурный номер ТМЦ - не заполняется
ДБФ.NAME = ТабНакл.товар.Наименование; // + // наименование ТМЦ
ДБФ.ED = Строка(ТабНакл.ед_изм); // + // ед.изм. ТМЦ
ДБФ.KOL = ТабНакл.Количество; // + // количество ТМЦ по накладной
ДБФ.CODEVAL = "РУБ"; // + // всегда = "РУБ" - т.е. приход в рублях
ДБФ.CENAVAL = "1"; // + // всегда = 1 - соответственно
ДБФ.CENA0 = ТабНакл.Цена0сДС; // + // цена ТМЦ в рублях (БЕЗ НДС)
ДБФ.NDS_TAX = ""+прндс+"%"; // + // ставка НДС, в процентах
ДБФ.NDS_SUM = Число(ТабНакл.НДС) / Число(ТабНакл.Количество);
// + // сумма НДС - для ОДНОЙ ТМЦ !!!
ДБФ.SUMMA0 = ТабНакл.сумма0сДС; // + // сумма ТМЦ (БЕЗ НДС)
ДБФ.SUMMA = ТабНакл.суммасДС; // + // сумма ТМЦ (С НДС)
ДБФ.MARKA = ""; // - // дополнительное поле - не используется
ДБФ.SORT = ""; // - // дополнительное поле - не используется
ДБФ.PROFIL = ""; // - // дополнительное поле - не используется
ДБФ.RAZMER = ""; // - // дополнительное поле - не используется
ДБФ.KOEF = ""; // - // дополнительное поле - не используется
ДБФ.SERIA = НомерДокСертификат; // + // серия ТМЦ
ДБФ.SERTIFICAT = РегистрационныйНомерСертификат; // + // сертификат ТМЦ
ДБФ.PRIM = КемВыданСертификат; // - // примечание для ТМЦ
ДБФ.GTD = Строка(ТабНакл.ГТДнов); // + // номер ГТД
ДБФ.COUNTRY = Строка(ТабНакл.ГТДНов.Страна.Наименование);
// + // страна изготовления ТМЦ
ДБФ.ATTRIB1 = ""; // - // дополнительное поле
ДБФ.ATTRIB2 = ""; // - // дополнительное поле
ДБФ.BARCODE = ""; // - // штрих-код ТМЦ
ДБФ.MAKER = ""; // + // фирма-изготовитель ТМЦ
ДБФ.DATE_MAKED = ""; // + // дата производства ТМЦ
ДБФ.DATE_END = ""; // + // срок годности ТМЦ, т.е. использовать до указанной даты
ДБФ.INS = ""; // - // технологическое поле
ДБФ.PERCENT = ""; // - // технологическое поле
ДБФ.MODE = ""; // - // технологическое поле
ДБФ.COMMENT = ""; // - // информационное поле
ДБФ.Записать() ;
конеццикла;
ДБФ.ЗакрытьФайл();
конецесли;
сообщить("В файл с именем "+файл+" выгружено "+йй+" позиций товара");