PDA

Просмотр полной версии : Создание Банковской выписки



_Davidoff_
24.05.2006, 15:49
Создание Банковской выписки

Задача:

Написать обработку, которая изымая данные из дбф файла формирует банковскую выписку

Подскажите плз начинающему один момент. В дбфе есть поле "KL_OKP_K" (дбф формируется системой банк клиент Укрсоцбанка) в котором содержатся номера ЕДРПОУ(ДРФО), если я правильно понимаю, взяв за основу эти данные мы можем заполнить поле Субконто нашей Банковской выписки. Просьба дайте пожалуйста подсказку в виде куска кода как реализовать именно этот момент обработки.

Пожалуйста, очень надо, уже 1 день ломаю голову никак не найду решения
Заранее пасиб

torch
25.05.2006, 13:14
У меня один из банков тоже УкрПоц... Так что выкладываю вся процедуру. Там есть и определение клиента по ОКПО (о чем ты спрашиваешь и многое другое) Проверено работает несколько лет!!! Пользуйся, не жалко!!!

//================================================== ===========================
//

Процедура ЗалитьУкрПоц()
Перем Контрагент;
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ПрихРасх", "Число", 1, 0);
ТЗ.НоваяКолонка("Клн", "Справочник.Контрагенты");
ТЗ.НоваяКолонка("НомДок", "Строка", 30);
ТЗ.НоваяКолонка("СумСНДС", "Число", 15, 2);
ТЗ.НоваяКолонка("Содерж", "Строка", 100);

тзФайлы = создатьобъект("таблицазначений");
тзФайлы.НоваяКолонка("имя",,,,"Имя файла",45);
тзФайлы.НоваяКолонка("дата",,,,"Дата выиски",15);
тзФайлы.НоваяКолонка("Счет",,,,"Расчетный счет",15);
тзФайлы.НоваяКолонка("МФО",,,,"МФО",15);
тзФайлы.НоваяКолонка("Банк",,,,"Банк",15);
Путь=СокрЛП(Константа.ПутьКФайлуУкрСоц);

ФС.УстТекКаталог(Путь);
текИмяФ=ФС.НайтиПервыйФайл("*.dbf");
Пока пустоезначение(текИмяФ)=0 Цикл
тзФайлы.НоваяСтрока();
тзФайлы.имя = сокрлп(Путь+текИмяФ);
текИмяФ=ФС.НайтиСледующийФайл();
КонецЦикла;

ИмяФайла = "";
номСтрокиФайла = "";
Если тзФайлы.ВыбратьСтроку(номСтрокиФайла,"Выберите файл выписки для загрузки")=0 Тогда
возврат;
КонецЕсли;
ИмяФайла=тзФайлы.ПолучитьЗначение(номСтрокиФайла,1 );
Вып=СоздатьОбъект("XBase");
Вып.ОткрытьФайл(ИмяФайла);
Вып.Первая();
Пока Вып.ВКонце()=0 Цикл
Если Вып.DATA<>ДатаДок Тогда
Вып.Следующая&#40;&#41;;
Продолжить;
КонецЕсли;
Если Число&#40;Вып.KL_OKP&#41;<>Число&#40;Константа.БазФирма.ЕДРПОУ&#41; Тогда
Вып.Следующая&#40;&#41;;
Продолжить;
КонецЕсли;
ТЗ.НоваяСтрока&#40;&#41;;
Если Вып.DK=1 Тогда
ТЗ.ПрихРасх=-1;
Иначе
ТЗ.ПрихРасх=1;
КонецЕсли;
ОпределениеКонтрагента&#40;Вып.KL_OKP_K,"",Контрагент&#41;;
ТЗ.Клн=Контрагент;
ТЗ.НомДок=Вып.ND;
ТЗ.СумСНДС=Вып.S;
ТЗ.Содерж=ANSItoOEM&#40;Вып.N_P&#41;;
Вып.Следующая&#40;&#41;;
КонецЦикла;

ТЗ.Сортировать&#40;"ПрихРасх, СумСНДС"&#41;;
ТЗ.ВыбратьСтроки&#40;&#41;;
Пока ТЗ.ПолучитьСтроку&#40;&#41;=1 Цикл
НоваяСтрока&#40;&#41;;
ПриходРасход=?&#40;ТЗ.ПрихРасх=-1, Перечисление.ПлюсМинус.Минус, Перечисление.ПлюсМинус.Плюс&#41;;
ИзмПриходРасход&#40;&#41;;
НомерДокумента=ТЗ.НомДок;
ИзмСчет&#40;&#41;;
Субконто=ТЗ.Клн;
СуммаСНДС=ТЗ.СумСНДС;
ИзмСуммаСНДС&#40;&#41;;
Содержание=ТЗ.Содерж;
КонецЦикла;
КонецПроцедуры
//================================================== ===========================

torch
25.05.2006, 13:21
Забыл выложить само собсно определение клиента
//===============================================

Процедура ОпределениеКонтрагента&#40;ОКПОКор,НаимКор,Контрагент&#41;
Контр = СоздатьОбъект&#40;"Справочник.Контрагенты"&#41;;
Родитель = СоздатьОбъект&#40;"Справочник.Контрагенты"&#41;;
Если Контр.НайтиПоРеквизиту&#40;"ЕДРПОУ",ОКПОКор,1&#41; <> 1 Тогда
Если Контр.Выбрать&#40;"ОКПО&#58; "+ОКПОКор+" Контрагент&#58; "+НаимКор,"ФормаСписка"&#41; <> 1 Тогда
Контр.Новый&#40;&#41;;
Контр.ЕДРПОУ = ОКПОКор;
Контр.ВидКонтрагента = Перечисление.ВидыКонтрагентов.Организация;
Контр.Наименование = НаимКор;
Контр.ПолнНаименование = НаимКор;
Контр.ВидВзаиморасчетов = Перечисление.ВидыВзаиморасчетов.ПоСчетам;
Контр.ВидТорговли = Перечисление.ВидыТорговли.Предоплата;
Контр.Записать&#40;&#41;;
Сообщить&#40;"Добавлен новый контрагент&#58; "+НаимКор+" ОКПО&#58; "+ОКПОКор&#41;;
Иначе
Контр.ЕДРПОУ = ОКПОКор;
Контр.Записать&#40;&#41;;
КонецЕсли;
КонецЕсли;
Контрагент = Контр.ТекущийЭлемент&#40;&#41;;

КонецПроцедуры
//==================================================

boo
25.05.2006, 13:49
Процедура ЗалитьУкрПоц()

Я так понимаю это переменная?

Mulder_1
26.05.2006, 16:16
подправил немного сообщение torch,
так вроде покрасивее будет и удобнее читать ...

з.ы.
Процедура ЗалитьУкрПоц() улыбнуло :)

[LoF].Devid
09.02.2007, 08:06
Подскажите пожалуйста, для того что-бы сделать Банковскую выписку с "PrivatBank c2b" в Вашем исходнике много надо поменять?

Просто я нуб в 1с, и это мое первое знакомство с программированием 1с