помогите с gbf

6. krasavcheg 30.01.13 21:15 Сейчас в теме
ДБФ=СоздатьОбъект("xBase");
ДБФ1=СоздатьОбъект("xBase");
//ДБФ1.КодоваяСтраница(1); // 0 - windows, 1 - dos
//ДБФ.КодоваяСтраница(1); // 0 - windows, 1 - dos
// Шапка
ДБФ.ДобавитьПоле("wb_ID","S",100,0); //1 идентификатор
ДБФ.ДобавитьПоле("wb_Number","S",50,0); //2 № накладной
ДБФ.ДобавитьПоле("wb_Date",,20,0); //3 Дата и время накладной
ДБФ.ДобавитьПоле("wb_OutDate",,20,0); //4 Дата и время отгрузки
ДБФ.ДобавитьПоле("Sender","S",255,0); //5 отправитель
ДБФ.ДобавитьПоле("Recepient","S",255,0); //6 получатель
ДБФ.ДобавитьПоле("Supplier","S",255,0); //7 поставщик
ДБФ.ДобавитьПоле("Paye","S",255,0); //8 плательшик
ДБФ.ДобавитьПоле("Basis","S",200,0); //9
ДБФ.ДобавитьПоле("DocType","N",2,0); //10 Тип накладной (1- приходная, 2- расходная, 3-возврат прихода, 4-возврат расхода)
ДБФ.ДобавитьПоле("Structura","S",200,0); //11
ДБФ.ДобавитьПоле("InDate",,20,0); //12 Дата и время прихода
ДБФ.ДобавитьПоле("PriceNDS","N",1,0); //13 НДС в сумме (1-в сумме, 0- невсумме)
ДБФ.ДобавитьПоле("IsIncludeNDS","N",1,0); //14
// Таблица
ДБФ1.ДобавитьПоле("wb_ID","S",38,0); //1 идентификатор
ДБФ1.ДобавитьПоле("wb_ID1","S",100,0); //1 идентификатор
ДБФ1.ДобавитьПоле("Amount","N",1,0); //2 количество
ДБФ1.ДобавитьПоле("Partyid","S",100,0); //3 номер партии
ДБФ1.ДобавитьПоле("tallProduct","S",255,0); //4 наименован продукции
ДБФ1.ДобавитьПоле("Price",,18,2); //5 цена
ДБФ1.ДобавитьПоле("RateNDS",,,); //6 ставка ндс

Попытка;
НачатьТранзакцию();
Док=СоздатьОбъект("Документ.Реализация");
Док.ВыбратьДокументы(НачДатаВыгрузки, КонДатаВыгрузки);
Фл=1;
Пока Док.ПолучитьДокумент()= 1 Цикл
Если Док.ПометкаУдаления()=0 Тогда
Сообщить("Выгружаем накладную: " + Док.НомерДок + " от: " + Док.ДатаДок);

ДБФ.Добавить();
Флаг = Строка(ТекущаяДата())+Фл;
ДБФ.wb_ID = Флаг; // идентификатор
ДБФ.wb_Number = Док.НомерДок; // номер документа
ДБФ.wb_Date = Док.ДатаДок; // дата платежа
ДБФ.wb_OutDate = Док.ДатаОплаты;// дата отгрузки;
ДБФ.Sender = Док.Фирма; // отправитель
ДБФ.Recepient = Док.Контрагент; //получатель
ДБФ.Supplier = Док.Фирма; //поставщик ----- необязательно
ДБФ.Paye = Док.Контрагент; //плательщик ----- необязательно
ДБФ.Basis = ""; // ----- необязательно
ДБФ.DocType = ТипДок; //тип накладной
ДБФ.Structura = "";
ДБФ.InDate = Док.НомерДокВходящий; // входящий номер у поступления тмц
ДБФ.PriceNDS = Док.УчитыватьНДС; //ндс в сумме (1-в сумме, 0- невсумме)
ДБФ.IsIncludeNDS = ""; // ----- необязательно

Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
ДБФ1.Добавить();
ДБФ1.wb_ID = Флаг; // идентификатор
ДБФ1.wc_ID = Флаг; //
ДБФ1.Amount = Док.Количество; // количество
ДБФ1.Partyid = ""; // номер партии ----- необязательно
ДБФ1.tallProduct = Док.Номенклатура;// товар
ДБФ1.Price = Док.Цена; //Цена
ДБФ1.RateNDS = Док.СтавкаНДС; // ----- необязательно
ДБФ1.Записать();
КонецЦикла;
Фл=Фл+1;
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. krasavcheg 30.01.13 21:15 Сейчас в теме
ДБФ.Записать();
Сообщить("Выгружена накладная: " + Док.НомерДок + " от: " + Док.ДатаДок);
КонецЕсли;
КонецЦикла;
ДБФ.ЗакрытьФайл();
ДБФ1.ЗакрытьФайл();
ЗафиксироватьТранзакцию();
Предупреждение("Выгрузка прошла успешно !");
Исключение
Предупреждение("Выгрузка не выполнена");
КонецПопытки;
8. krasavcheg 30.01.13 21:16 Сейчас в теме
Процедура ОпределитьСтруктуруДБФ(ДБФ)
ДБФ.ДобавитьПоле("INUM","N",7,);
ДБФ.ДобавитьПоле("INAME","S",64,);
ДБФ.ДобавитьПоле("IPROD","S",34,);
ДБФ.ДобавитьПоле("ILAND","S",17,);
ДБФ.ДобавитьПоле("I1PCK","S",8,);
ДБФ.ДобавитьПоле("IPACK","S",14,);
ДБФ.ДобавитьПоле("IUBF","D",,);
ДБФ.ДобавитьПоле("INDS","N",8,);
ДБФ.ДобавитьПоле("IWHQ","N",8,);
ДБФ.ДобавитьПоле("IPRIC0","N",8,2);
ДБФ.ДобавитьПоле("IPRIC1","N",8,2);
ДБФ.ДобавитьПоле("IPRIC2","N",8,2);
ДБФ.ДобавитьПоле("IPRIC3","N",8,2);
ДБФ.ДобавитьПоле("IPRIC4","N",8,2);
ДБФ.ДобавитьПоле("IPRIC5","N",8,2);
ДБФ.ДобавитьПоле("IPRICZ","N",8,2);
ДБФ.ДобавитьПоле("IFMV","S",32,);
КонецПроцедуры //ОпределитьСтруктуруДБФ()
//***************************************

Процедура ЗаполнитьЗапись(ДБФ,Цена)
ДБФ.Добавить();
ДБФ.УстановитьЗначениеПоля("INUM",Число(СокрЛП(ТаблИнтернет.Номенклатура.Код)));
ДБФ.УстановитьЗначениеПоля("INAME",СокрЛП(ТаблИнтернет.Номенклатура.Наименование));
ДБФ.УстановитьЗначениеПоля("IPROD",СокрЛП(ТаблИнтернет.Номенклатура.Производитель.Наименование));
ДБФ.УстановитьЗначениеПоля("ILAND",СокрЛП(ТаблИнтернет.Страна));
...
КонецПроцедуры

ДБФОПТ=СоздатьОбъект("Xbase");
ОпределитьСтруктуруДБФ(ДБФОПТ);
ДБФОПТ.СоздатьФайл(КаталогПользователя()+СокрЛП(КлиентФайл)+".dbf");
Если ДБФОПТ.Открыта()=0 Тогда
СтрокаСообщения="> не удалось создать новый файл "+СокрЛП(КлиентФайл)+".dbf";
глЗаписатьПротокол(СтрокаСообщения,"!");
СтрокаСообщения="> устраните проблему и попытайтесь сформировать прайс заново...";
глЗаписатьПротокол(СтрокаСообщения,"!");
Возврат;
КонецЕсли;
ДБФОПТ.АвтоСохранение(1);
...
ЗаполнитьЗапись(ДБФОПТ,СписокЦенВЗапись);
9. alegator 57 06.07.06 16:56 Сейчас в теме
Написал обработку а она не работает (файлы dbf сформировались но они пустые) помогите кто может что у меня за ошибка
ДБФ=СоздатьОбъект("xBase");
ДБФ1=СоздатьОбъект("xBase");
//ДБФ1.КодоваяСтраница(1); // 0 - windows, 1 - dos
//ДБФ.КодоваяСтраница(1); // 0 - windows, 1 - dos
// Шапка
ДБФ.ДобавитьПоле("wb_ID","S",100,0); //1 идентификатор
ДБФ.ДобавитьПоле("wb_Number","S",50,0); //2 № накладной
ДБФ.ДобавитьПоле("wb_Date",,20,0); //3 Дата и время накладной
ДБФ.ДобавитьПоле("wb_OutDate",,20,0); //4 Дата и время отгрузки
ДБФ.ДобавитьПоле("Sender","S",255,0); //5 отправитель
ДБФ.ДобавитьПоле("Recepient","S",255,0); //6 получатель
ДБФ.ДобавитьПоле("Supplier","S",255,0); //7 поставщик
ДБФ.ДобавитьПоле("Paye","S",255,0); //8 плательшик
ДБФ.ДобавитьПоле("Basis","S",200,0); //9
ДБФ.ДобавитьПоле("DocType","N",2,0); //10 Тип накладной (1- приходная, 2- расходная, 3-возврат прихода, 4-возврат расхода)
ДБФ.ДобавитьПоле("Structura","S",200,0); //11
ДБФ.ДобавитьПоле("InDate",,20,0); //12 Дата и время прихода
ДБФ.ДобавитьПоле("PriceNDS","N",1,0); //13 НДС в сумме (1-в сумме, 0- невсумме)
ДБФ.ДобавитьПоле("IsIncludeNDS","N",1,0); //14
// Таблица
ДБФ1.ДобавитьПоле("wb_ID","S",38,0); //1 идентификатор
ДБФ1.ДобавитьПоле("wb_ID1","S",100,0); //1 идентификатор
ДБФ1.ДобавитьПоле("Amount","N",1,0); //2 количество
ДБФ1.ДобавитьПоле("Partyid","S",100,0); //3 номер партии
ДБФ1.ДобавитьПоле("tallProduct","S",255,0); //4 наименован продукции
ДБФ1.ДобавитьПоле("Price",,18,2); //5 цена
ДБФ1.ДобавитьПоле("RateNDS",,,); //6 ставка ндс

Попытка;
НачатьТранзакцию();
Док=СоздатьОбъект("Документ.Реализация");
Док.ВыбратьДокументы(НачДатаВыгрузки, КонДатаВыгрузки);
Фл=1;
Пока Док.ПолучитьДокумент()= 1 Цикл
Если Док.ПометкаУдаления()=0 Тогда
Сообщить("Выгружаем накладную: " + Док.НомерДок + " от: " + Док.ДатаДок);

ДБФ.Добавить();
Флаг = Строка(ТекущаяДата())+Фл;
ДБФ.wb_ID = Флаг; // идентификатор
ДБФ.wb_Number = Док.НомерДок; // номер документа
ДБФ.wb_Date = Док.ДатаДок; // дата платежа
ДБФ.wb_OutDate = Док.ДатаОплаты;// дата отгрузки;
ДБФ.Sender = Док.Фирма; // отправитель
ДБФ.Recepient = Док.Контрагент; //получатель
ДБФ.Supplier = Док.Фирма; //поставщик ----- необязательно
ДБФ.Paye = Док.Контрагент; //плательщик ----- необязательно
ДБФ.Basis = ""; // ----- необязательно
ДБФ.DocType = ТипДок; //тип накладной
ДБФ.Structura = "";
ДБФ.InDate = Док.НомерДокВходящий; // входящий номер у поступления тмц
ДБФ.PriceNDS = Док.УчитыватьНДС; //ндс в сумме (1-в сумме, 0- невсумме)
ДБФ.IsIncludeNDS = ""; // ----- необязательно

Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
ДБФ1.Добавить();
ДБФ1.wb_ID = Флаг; // идентификатор
ДБФ1.wc_ID = Флаг; //
ДБФ1.Amount = Док.Количество; // количество
ДБФ1.Partyid = ""; // номер партии ----- необязательно
ДБФ1.tallProduct = Док.Номенклатура;// товар
ДБФ1.Price = Док.Цена; //Цена
ДБФ1.RateNDS = Док.СтавкаНДС; // ----- необязательно
ДБФ1.Записать();
КонецЦикла;
Фл=Фл+1;

ДБФ.Записать();
Сообщить("Выгружена накладная: " + Док.НомерДок + " от: " + Док.ДатаДок);
КонецЕсли;
КонецЦикла;
ДБФ.ЗакрытьФайл();
ДБФ1.ЗакрытьФайл();
ЗафиксироватьТранзакцию();
Предупреждение("Выгрузка прошла успешно !");
Исключение
Предупреждение("Выгрузка не выполнена");
КонецПопытки;
10. CheBurator 3119 07.07.06 11:18 Сейчас в теме
у меня так работает
Код
Процедура ОпределитьСтруктуруДБФ(ДБФ)
   ДБФ.ДобавитьПоле("INUM","N",7,);
   ДБФ.ДобавитьПоле("INAME","S",64,);
   ДБФ.ДобавитьПоле("IPROD","S",34,);
   ДБФ.ДобавитьПоле("ILAND","S",17,);
   ДБФ.ДобавитьПоле("I1PCK","S",8,);
   ДБФ.ДобавитьПоле("IPACK","S",14,);
   ДБФ.ДобавитьПоле("IUBF","D",,);
   ДБФ.ДобавитьПоле("INDS","N",8,);
   ДБФ.ДобавитьПоле("IWHQ","N",8,);
   ДБФ.ДобавитьПоле("IPRIC0","N",8,2);
   ДБФ.ДобавитьПоле("IPRIC1","N",8,2);
   ДБФ.ДобавитьПоле("IPRIC2","N",8,2);
   ДБФ.ДобавитьПоле("IPRIC3","N",8,2);
   ДБФ.ДобавитьПоле("IPRIC4","N",8,2);
   ДБФ.ДобавитьПоле("IPRIC5","N",8,2);
   ДБФ.ДобавитьПоле("IPRICZ","N",8,2);
   ДБФ.ДобавитьПоле("IFMV","S",32,);
КонецПроцедуры //ОпределитьСтруктуруДБФ()
//***************************************

Процедура ЗаполнитьЗапись(ДБФ,Цена)
   ДБФ.Добавить();
   ДБФ.УстановитьЗначениеПоля("INUM",Число(СокрЛП(ТаблИнтернет.Номенклатура.Код)));
   ДБФ.УстановитьЗначениеПоля("INAME",СокрЛП(ТаблИнтернет.Номенклатура.Наименование));
   ДБФ.УстановитьЗначениеПоля("IPROD",СокрЛП(ТаблИнтернет.Номенклатура.Производитель.Наименование));
   ДБФ.УстановитьЗначениеПоля("ILAND",СокрЛП(ТаблИнтернет.Страна));
...
КонецПроцедуры 

ДБФОПТ=СоздатьОбъект("Xbase");
ОпределитьСтруктуруДБФ(ДБФОПТ);
ДБФОПТ.СоздатьФайл(КаталогПользователя()+СокрЛП(КлиентФайл)+".dbf");   
      Если ДБФОПТ.Открыта()=0 Тогда
         СтрокаСообщения="> не удалось создать новый файл "+СокрЛП(КлиентФайл)+".dbf";
         глЗаписатьПротокол(СтрокаСообщения,"!");
         СтрокаСообщения="> устраните проблему и попытайтесь сформировать прайс заново...";
         глЗаписатьПротокол(СтрокаСообщения,"!");
         Возврат;
      КонецЕсли;   
      ДБФОПТ.АвтоСохранение(1);
...
ЗаполнитьЗапись(ДБФОПТ,СписокЦенВЗапись);
Показать полностью


11. vasilykushnir 63 10.07.06 10:47 Сейчас в теме
Крякадил аки alegator, ты хоть бы поблагодарил человека - ведь тему Che разжевал тебе по самое не балуй.
12. 10.07.06 11:43 Сейчас в теме
А потом народ возмущается, что никто не откликается на просьбы о помощи ;-)
13. alegator 57 10.07.06 12:04 Сейчас в теме
спасибо за помощь Сhe Burashka очень помогло, тока прочитал через несколько дней у нас с инетом проблема была
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот