_Davidoff_
24.05.2006, 15:49
Создание Банковской выписки
Задача:
Написать обработку, которая изымая данные из дбф файла формирует банковскую выписку
Подскажите плз начинающему один момент. В дбфе есть поле "KL_OKP_K" (дбф формируется системой банк клиент Укрсоцбанка) в котором содержатся номера ЕДРПОУ(ДРФО), если я правильно понимаю, взяв за основу эти данные мы можем заполнить поле Субконто нашей Банковской выписки. Просьба дайте пожалуйста подсказку в виде куска кода как реализовать именно этот момент обработки.
Пожалуйста, очень надо, уже 1 день ломаю голову никак не найду решения
Заранее пасиб
У меня один из банков тоже УкрПоц... Так что выкладываю вся процедуру. Там есть и определение клиента по ОКПО (о чем ты спрашиваешь и многое другое) Проверено работает несколько лет!!! Пользуйся, не жалко!!!
//================================================== ===========================
//
Процедура ЗалитьУкрПоц()
Перем Контрагент;
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ПрихРасх", "Число", 1, 0);
ТЗ.НоваяКолонка("Клн", "Справочник.Контрагенты");
ТЗ.НоваяКолонка("НомДок", "Строка", 30);
ТЗ.НоваяКолонка("СумСНДС", "Число", 15, 2);
ТЗ.НоваяКолонка("Содерж", "Строка", 100);
тзФайлы = создатьобъект("таблицазначений");
тзФайлы.НоваяКолонка("имя",,,,"Имя файла",45);
тзФайлы.НоваяКолонка("дата",,,,"Дата выиски",15);
тзФайлы.НоваяКолонка("Счет",,,,"Расчетный счет",15);
тзФайлы.НоваяКолонка("МФО",,,,"МФО",15);
тзФайлы.НоваяКолонка("Банк",,,,"Банк",15);
Путь=СокрЛП(Константа.ПутьКФайлуУкрСоц);
ФС.УстТекКаталог(Путь);
текИмяФ=ФС.НайтиПервыйФайл("*.dbf");
Пока пустоезначение(текИмяФ)=0 Цикл
тзФайлы.НоваяСтрока();
тзФайлы.имя = сокрлп(Путь+текИмяФ);
текИмяФ=ФС.НайтиСледующийФайл();
КонецЦикла;
ИмяФайла = "";
номСтрокиФайла = "";
Если тзФайлы.ВыбратьСтроку(номСтрокиФайла,"Выберите файл выписки для загрузки")=0 Тогда
возврат;
КонецЕсли;
ИмяФайла=тзФайлы.ПолучитьЗначение(номСтрокиФайла,1 );
Вып=СоздатьОбъект("XBase");
Вып.ОткрытьФайл(ИмяФайла);
Вып.Первая();
Пока Вып.ВКонце()=0 Цикл
Если Вып.DATA<>ДатаДок Тогда
Вып.Следующая();
Продолжить;
КонецЕсли;
Если Число(Вып.KL_OKP)<>Число(Константа.БазФирма.ЕДРПОУ) Тогда
Вып.Следующая();
Продолжить;
КонецЕсли;
ТЗ.НоваяСтрока();
Если Вып.DK=1 Тогда
ТЗ.ПрихРасх=-1;
Иначе
ТЗ.ПрихРасх=1;
КонецЕсли;
ОпределениеКонтрагента(Вып.KL_OKP_K,"",Контрагент);
ТЗ.Клн=Контрагент;
ТЗ.НомДок=Вып.ND;
ТЗ.СумСНДС=Вып.S;
ТЗ.Содерж=ANSItoOEM(Вып.N_P);
Вып.Следующая();
КонецЦикла;
ТЗ.Сортировать("ПрихРасх, СумСНДС");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
НоваяСтрока();
ПриходРасход=?(ТЗ.ПрихРасх=-1, Перечисление.ПлюсМинус.Минус, Перечисление.ПлюсМинус.Плюс);
ИзмПриходРасход();
НомерДокумента=ТЗ.НомДок;
ИзмСчет();
Субконто=ТЗ.Клн;
СуммаСНДС=ТЗ.СумСНДС;
ИзмСуммаСНДС();
Содержание=ТЗ.Содерж;
КонецЦикла;
КонецПроцедуры
//================================================== ===========================
Забыл выложить само собсно определение клиента
//===============================================
Процедура ОпределениеКонтрагента(ОКПОКор,НаимКор,Контрагент)
Контр = СоздатьОбъект("Справочник.Контрагенты");
Родитель = СоздатьОбъект("Справочник.Контрагенты");
Если Контр.НайтиПоРеквизиту("ЕДРПОУ",ОКПОКор,1) <> 1 Тогда
Если Контр.Выбрать("ОКПО: "+ОКПОКор+" Контрагент: "+НаимКор,"ФормаСписка") <> 1 Тогда
Контр.Новый();
Контр.ЕДРПОУ = ОКПОКор;
Контр.ВидКонтрагента = Перечисление.ВидыКонтрагентов.Организация;
Контр.Наименование = НаимКор;
Контр.ПолнНаименование = НаимКор;
Контр.ВидВзаиморасчетов = Перечисление.ВидыВзаиморасчетов.ПоСчетам;
Контр.ВидТорговли = Перечисление.ВидыТорговли.Предоплата;
Контр.Записать();
Сообщить("Добавлен новый контрагент: "+НаимКор+" ОКПО: "+ОКПОКор);
Иначе
Контр.ЕДРПОУ = ОКПОКор;
Контр.Записать();
КонецЕсли;
КонецЕсли;
Контрагент = Контр.ТекущийЭлемент();
КонецПроцедуры
//==================================================
Процедура ЗалитьУкрПоц()
Я так понимаю это переменная?
Mulder_1
26.05.2006, 16:16
подправил немного сообщение torch,
так вроде покрасивее будет и удобнее читать ...
з.ы.
Процедура ЗалитьУкрПоц() улыбнуло :)
[LoF].Devid
09.02.2007, 08:06
Подскажите пожалуйста, для того что-бы сделать Банковскую выписку с "PrivatBank c2b" в Вашем исходнике много надо поменять?
Просто я нуб в 1с, и это мое первое знакомство с программированием 1с