Harry
Модератор
Offline
|
|
« Ответ #1 : 25-09-2008 09:49 » |
|
Вот пример экспорта из дбф-файла в банковскую выписку. Не Mysql, но может пригодится хотя бы кусок непосредственного создания платежки.
Процедура Сформировать() ВыбранныйФайл=""; ФС.ВыбратьФайл(0,ВыбранныйФайл,"D:\1CBasesTemp\FolderIn\","Выберите файл загрузки", "Файлы .dbf (*.dbf) |*.dbf",".dbf",); Спр=СоздатьОбъект("Справочник.ВалДоходыРасходы"); ДБФ=СоздатьОбъект("XBase"); Опер=СоздатьОбъект("Операция"); ТабЗн=СоздатьОбъект("ТаблицаЗначений"); ТабЗн.НоваяКолонка("ДатаОст"); ТабЗн.НоваяКолонка("СуммаГрн"); ТабЗн.НоваяКолонка("Контрагент"); ТабЗн.НоваяКолонка("Примечание"); ТабЗн.НоваяКолонка("Назначение");
ДБФ.ОткрытьФайл(ВыбранныйФайл); Сообщить(ВыбранныйФайл); ДБФ.Первая(); Пока ДБФ.ВКонце()=0 Цикл Состояние("Обработка файла: "+Формат(ДБФ.НомерЗаписи()/ДБФ.КоличествоЗаписей()*100,"Ч15.2")+" %"); ТабЗн.НоваяСтрока(); ТабЗн.ДатаОст=ДБФ.DATAOPL; //ТабЗн.Направление=ДБФ.NAPRAVL; ТабЗн.СуммаГрн=ДБФ.SUMMSYS; ТабЗн.Назначение=ДБФ.NAIMOPL; ТабЗн.Контрагент=ДБФ.NAIM; ТабЗн.Примечание=ДБФ.PRIMECH; //ТабЗн.СтатьяЗатрат=ДБФ.KODOPL; ДБФ.Следующая(); КонецЦикла; ДБФ.ЗакрытьФайл(); //ТабЗн.Свернуть("1,3","2"); Если Нам=1 Тогда ДокБезнал=СоздатьОбъект("Документ.БанковскаяВыписка"); ДокБезнал.Новый(); ДокБезнал.Фирма=Константа.БазФирма; ДокБезнал.ДатаДок=ТабЗн.ДатаОст; ДокБезнал.РСчет=ВыбСчет; ДокБезнал.СчетУчета=СчетПоКоду("311"); ТабЗн.ВыбратьСтроки(); Пока ТабЗн.ПолучитьСтроку()=1 Цикл ДокБезнал.НоваяСтрока(); ДокБезнал.ПриходРасход=Перечисление.ПлюсМинус.Плюс; ДокБезнал.Счет=СчетПоКоду("361"); ДокБезнал.ВидНДС=Константа.БазНДС; ДокБезнал.СуммаСНДС=ТабЗн.СуммаГрн; ДокБезнал.НДС=ДокБезнал.СуммаСНДС/6; ДокБезнал.СуммаПлатежа=ДокБезнал.СуммаСНДС-ДокБезнал.НДС; ДокБезнал.Содержание=ТабЗн.Назначение; ДокБезнал.НазначитьТип("ВидПриходаРасхода","Перечисление.ВидыПриходаДенег"); ДокБезнал.ВидПриходаРасхода = ?(ПустоеЗначение(ДокБезнал.ВидПриходаРасхода) = 1,Перечисление.ВидыПриходаДенег.ВыручкаОтРеализации,ДокБезнал.ВидПриходаРасхода); ДокБезнал.ДоходИздержка=Перечисление.ПлюсМинусНичего.Плюс; Спр.НайтиПоКоду("1",0); ДокБезнал.СубконтоДИ=Спр.ТекущийЭлемент(); ДокБезнал.УказанаОтгрузка=Перечисление.ДаНет.Нет; ДокБезнал.НазначитьТип("Субконто",ДокБезнал.Счет.ВидСубконто(1)); //ДокБезнал.НазначитьТип("Заказ",ДокБезнал.Счет.ВидСубконто(2)); ДокБезнал.НазначитьТип("Заказ","Строка"); ДокБезнал.Заказ = ТабЗн.Контрагент; //ДокБезнал.Субконто = ДокБезнал.Счет.Субконто(2); //ДокБезнал.Заказ = ДокБезнал.Счет.Субконто(3); КонецЦикла; ДокБезнал.Записать(); Иначе ДокБезнал=СоздатьОбъект("Документ.БанковскаяВыписка"); ДокБезнал.Новый(); ДокБезнал.Фирма=Константа.БазФирма; ДокБезнал.ДатаДок=ТабЗн.ДатаОст; ДокБезнал.РСчет=ВыбСчет; ДокБезнал.СчетУчета=СчетПоКоду("311"); ТабЗн.ВыбратьСтроки(); Пока ТабЗн.ПолучитьСтроку()=1 Цикл ДокБезнал.НоваяСтрока(); ДокБезнал.ПриходРасход=Перечисление.ПлюсМинус.Минус; ДокБезнал.Счет=СчетПоКоду("631"); ДокБезнал.ВидНДС=Константа.БазНДС; ДокБезнал.СуммаСНДС=ТабЗн.СуммаГрн; ДокБезнал.НДС=ДокБезнал.СуммаСНДС/6; ДокБезнал.СуммаПлатежа=ДокБезнал.СуммаСНДС-ДокБезнал.НДС; ДокБезнал.Содержание=ТабЗн.Назначение; ДокБезнал.НазначитьТип("ВидПриходаРасхода","Перечисление.ВидыПриходаДенег"); ДокБезнал.ВидПриходаРасхода = ?(ПустоеЗначение(ДокБезнал.ВидПриходаРасхода) = 1,Перечисление.ВидыРасходаДенег.НаВедениеХозДеятельности,ДокБезнал.ВидПриходаРасхода); ДокБезнал.ДоходИздержка=Перечисление.ПлюсМинусНичего.Минус; Спр.НайтиПоКоду("1",0); ДокБезнал.СубконтоДИ=Спр.ТекущийЭлемент(); ДокБезнал.УказанаОтгрузка=Перечисление.ДаНет.Нет; ДокБезнал.НазначитьТип("Субконто",ДокБезнал.Счет.ВидСубконто(1)); //ДокБезнал.НазначитьТип("Заказ",ДокБезнал.Счет.ВидСубконто(2)); ДокБезнал.НазначитьТип("Заказ","Строка"); ДокБезнал.Заказ = ТабЗн.Контрагент; КонецЦикла; ДокБезнал.Записать(); КонецЕсли; КонецПроцедуры //*********************************************
|