Парсинг выписки из Клиент-Банка по нескольким счетам #707151


#0 by CepeLLlka
Добрый день ребята... Помогите мне решить проблему с парсингом выписки из Клиент-Банка.. Итак.. Я парсю файл и заношу выписку в РС сведений... Файл выписки имеет такой вид: Кодировка=Windows Отправитель=КлиентБанк Получатель=1C ДатаСоздания=02.04.2014 ВремяСоздания=10:14:02 ДатаНачала=01.04.2014 ДатаКонца=01.04.2014 РасчСчет=00000000000000000001 НачальныйОстаток=0.00 ВсегоПоступило=0.00 ВсегоСписано=0.00 КонечныйОстаток=0.00 КонецРасчСчет СекцияРасчСчет ДатаНачала=01.04.2014 ДатаКонца=01.04.2014 РасчСчет=00000000000000000001 НачальныйОстаток=0.00 ВсегоПоступило=0.00 ВсегоСписано=0.00 КонечныйОстаток=0.00 КонецРасчСчет СекцияРасчСчет ДатаНачала=01.04.2014 ДатаКонца=01.04.2014 РасчСчет=00000000000000000001 НачальныйОстаток=0.00 ВсегоПоступило=0.00 ВсегоСписано=0.00 КонечныйОстаток=0.00 КонецРасчСчет СекцияРасчСчет ДатаНачала=01.04.2014 ДатаКонца=01.04.2014 РасчСчет=00000000000000000001 НачальныйОстаток=0.00 ВсегоПоступило=0.00 ВсегоСписано=0.00 КонечныйОстаток=0.00 КонецРасчСчет Сумма=19683 ПлательщикСчет=00000000000000000001 ДатаСписано=01.04.2014 Плательщик=ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "Ололо" ПлательщикИНН=0101047620 ПлательщикКПП=010101001 ПлательщикРасчСчет=40702810242000003846 ПлательщикБанк1=ВОЛГО-ВЯТСКИЙ БАНК СБЕРБАНКА РОССИИ ПлательщикБанк2=Г МОСКВА ПлательщикБИК=043333303 ПлательщикКорсчет=30101810900000000603 ПолучательСчет=00000000000000000001 ПолучательРасчСчет=00000000000000000001 ПолучательБанк1=ВОЛГО-ВЯТСКИЙ БАНК СБЕРБАНКА РОССИИ ПолучательБанк2=Г МОСКВА ПолучательБИК=043333303 ПолучательКорсчет=30101810900033333503 ВидПлатежа=Электронно ВидОплаты=01 СтатусСоставителя= ПоказательКБК= ОКАТО= ПоказательОснования= ПоказательПериода= ПоказательНомера= ПоказательДаты= ПоказательТипа= Очередность=5 НазначениеПлатежа=Оплата страховой премии по счету Код= КонецДокумента Мне нужно распарсить файл таким образом чтобы занести в РС все платежи в без повторений. Повторения платежек в файле бывают в том случае, когда один счет присутствующий в файле платит на другой счет так-же присутствующий в файле. А мне как я писал выше нужно заносить их только единоразово. Я сделал это проверяя уникальность по номеру... Но оказалось что некоторые платежи дробятся из-за проведения их через картотеку(частями). Таким образом получается что некоторые платежи мне нужно заносить с одинаковыми номерами, но с разными суммами, и всё это может ещё повторится в этом файле и второй раз этот платёж уже загружать не надо.. Как быть в такой ситуации? Подскажите пожалуйста..
#1 by Maxus43
на один счет приход, на другой счет расход, записи две всё равно. А что за регистр? зачем вобще?
#2 by vmv
измерения платежей в любой релегиозно правильной учетной системе 1. ДатаОплаты 2. ДатаДокумента 4. Р/С организации (наш) 5. Р/С Корреспондента (контрагента или наш при переводах) вроде все, простынь в не читал, наверняка там 90% бред
#3 by CepeLLlka
Да всё верно, но как определить что приход, что расход? В файле никаких обозначений нет по этому поводу.
#4 by CepeLLlka
Зря не читал... если бы прочитал, может быть что и понял..
#5 by vmv
+ ну и вид движения Приход/Расход, хотя даже в случае перевода, когда даты и номера документов идентичны - счета меняються местами, т.е. уникальность соблюдена и без вида движения.
#6 by CepeLLlka
Регистр - Движения по РС. Хочу выписку хранить в базе.. вот
#7 by CepeLLlka
Где счета меняются местами? :) Ты файл выписки видел вообще? :)
#8 by piter3
как может быть ВсегоСписано=0.00 если есть хоть одно списание со счета?
#9 by Maxus43
как нет то? выдерни из файла эти 2 документа и тупо визуально сравни
#10 by vmv
в файлах клиент банков обычно есть флаг Дт/Кт в файлах 1С - это вид операции/вид документа
#11 by CepeLLlka
Это пример. Выдернул, идентичны.
#12 by CepeLLlka
В я показал всё что есть в файле КБ, кроме строчки - "КонецФайла"
#13 by Maxus43
получатель-отправитель сомтри естественно. От куда куда идёт - очевидно что приход-расход это оно и есть
#14 by CepeLLlka
Там отображаются платёжки же.. Если ты делаешь платёж - Ты плательщик, он получает твой платёж там тоже ты плательщик..
#15 by Maxus43
ну дак смотри счет. загружай по каждому счету отдельно, если текущий счет отправитель - значит расход
#16 by vmv
у меня в К-Б 10+ банков, где экспорт/импорт в дбф, хмл, тхт, в том числе и дос-кодировки, наверное я ничего не пониманимаю в КБ, если технология обработки любого файла дает на входе/выходе простую и достаточную модель данных - для всех одинаковую. Причем, бюджеты, переводы, транзиты, валюты и т.д. обрабатываються как надо, а не как на это клали болт в стандотном КБ от 1С.
#17 by CepeLLlka
Ну если ты разбираешься в обменах, то наверное уже заметил что у меня тут стандартный формат обмена от 1С. Что значит загружай по каждому счету отдельно? У меня все счета сразу в одном файле..
#18 by vmv
надо ввести измерение "ПорядковыйНомерДокументаЧастичнойОплаты" для дробных платежей
#19 by CepeLLlka
И как я определю где начинается дробная часть? По какому признаку?
#20 by vmv
а для этого у тебя есть мозг и источник данных другого пути решения в контексте постановки задачи нету
#21 by ДенисЧ
У кого есть мозг??? У ТС?? Где ты его нашёл???
#22 by CepeLLlka
Денис.. ты ведь умный парень.. подскажи чё-нибудь.. Ты ведь точно знаешь.. Не будь букой..
#23 by vmv
по данным источника я бы обратил внимание на ряды НачальныйОстаток=0.00 ВсегоПоступило=0.00 ВсегоСписано=0.00 КонечныйОстаток=0.00 с целью определения цепочек дробных платежей, но также необходимо анализировать и историю платежей в интервале даты платежа по р/с платежки Стандартный механизм К-Б 1С выглядит красиво, имеет много полей в служебных таблицах, но его практическое применение ограничено элементарными банковскими операциями ларька, увы
#24 by Maxus43
короче, обработку сомтрел типовую КБ? там же нормально определяет входящий-исходящий, там допилисть надо чтоб не по одному счету, а по всем было, но всё равно основа типовая, файл проходит по счету, указанному в шапке, отсюда мы знаем направление движения денег
#25 by CepeLLlka
Дело в том, что другой счёт тоже указан в шапке.. и по нему будет ещё одна платёжка.. Это оба наших счёта.
#26 by Maxus43
в типовой обработке счет в шапке один (в шапке обработки) - по нему идёт анализ. Вместо счета в шапке обработки у тебя будет цикл по всем счетам из файла
#27 by Maxus43
я хз как ещё объяснить...
#28 by Maxus43
я переделывал типовую обработку на загрузку всех счетов одновременно из файла, получилось же... с теми же алгоритмами, их надо подрихтовать просто, в отладчике время провести, а не на форуме и т.д.
#29 by CepeLLlka
Я понимаю тебя полностью.. Полностью понимаю... Я не хочу обидеть :( Но ты не понял моей проблемы :(
#30 by Maxus43
>, я загружал из одного файла так же, всё нормально, подрихтовал типовую. Чем твой случай отличается? у меня тоже переводы между своими счетами были
#31 by CepeLLlka
Картотека была у тебя?
#32 by CepeLLlka
Чтобы за место одного платежа в файле было 10 платежей с одинаковым номером и разными суммами, и порой повторяющимися и + ещё столько же по другому счету.
#33 by CepeLLlka
Спасибо за отзывчивость в любом случае.. надеюсь что придумаю чё-нить..
#34 by Maxus43
без картотеки...
#35 by Злопчинский
выписку по движению ДС между РС обычно показывают по тому счету, который стоит в Дт. потому как операция считается проршедшей только если доеньги ПОСТПИЛИ в место назначения.
#36 by Sol78
а пример такого файла можешь куда-нибудь запилить?
#37 by Sol78
ко всему вышесказаному, есть ещё один определитель что приход, а что расход - наличие в секции либо ДатаСписано, либо Дата Поступило
#38 by CepeLLlka
Есть такое, да.. про дату.. Но в ней только дата.. как она может мне помочь?
#39 by CepeLLlka
Ааааааа точно! Либо списано, либо поступило.. Я бы мог залить но файлы по 25к строк.. мне редактировать все данные в них чтобы лишнего не показать это я с ума сойду.. :(
#40 by CepeLLlka
Посмарел на эти "ДатаСписано", "ДатаПоступило" В файле две одинаковые платёжки, так как взаиморасчеты между нашими счетами. Они полностью идентичны.. Дата=09.04.2014 Сумма=241000 ПлательщикСчет=000000000000000000 ДатаСписано=09.04.2014 Плательщик=ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "Верёвка и мыло" ПлательщикИНН=000000000000000000 ПлательщикКПП=000000000000000000 ПлательщикРасчСчет=000000000000000000 ПлательщикБанк1=ВОЛГО-ВЯТСКИЙ БАНК СБЕРБАНКА РОССИИ ПлательщикБанк2=Г МОСКВА ПлательщикБИК=000000000000000000 ПлательщикКорсчет=000000000000000000 ПолучательСчет=000000000000000000 ДатаПоступило=09.04.2014 Получатель=ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "Олололо" ПолучательИНН=000000000000000000 ПолучательКПП=000000000000000000 ПолучательРасчСчет=000000000000000000 ПолучательБанк1=ВОЛГО-ВЯТСКИЙ БАНК СБЕРБАНКА РОССИИ ПолучательБанк2=Г МОСКВА ПолучательБИК=000000000000000000 ПолучательКорсчет=000000000000000000 ВидПлатежа=Электронно ВидОплаты=01 СтатусСоставителя= ПоказательКБК= ОКАТО= ПоказательОснования= ПоказательПериода= ПоказательНомера= ПоказательДаты= ПоказательТипа= Очередность=5 НазначениеПлатежа=Оплата по договору процентного займа) Код= КонецДокумента Не копирую это, а беру из файла другую и тоже заменяю данные, чтобы наглядно увидеть если что.. Дата=09.04.2014 Сумма=241000 ПлательщикСчет=000000000000000000 ПлательщикРасчСчет=000000000000000000 ПлательщикБанк1=ВОЛГО-ВЯТСКИЙ БАНК СБЕРБАНКА РОССИИ ПлательщикБанк2=Г МОСКВА ПлательщикБИК=000000000000000000 ПлательщикКорсчет=000000000000000000 ПолучательСчет=000000000000000000 ДатаПоступило=09.04.2014 Получатель=ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "Олололо" ПолучательИНН=000000000000000000 ПолучательКПП=000000000000000000 ПолучательРасчСчет=000000000000000000 ПолучательБанк1=ВОЛГО-ВЯТСКИЙ БАНК СБЕРБАНКА РОССИИ ПолучательБанк2=Г МОСКВА ПолучательБИК=000000000000000000 ПолучательКорсчет=000000000000000000 ВидПлатежа=Электронно ВидОплаты=01 СтатусСоставителя= ПоказательКБК= ОКАТО= ПоказательОснования= ПоказательПериода= ПоказательНомера= ПоказательДаты= ПоказательТипа= Очередность=5 НазначениеПлатежа=Оплата по договору процентного займа Код= КонецДокумента
#41 by CepeLLlka
Странно.. отличаются поля - "Плательщик"
#42 by DjSpike
ты не можешь помочь вот с этой проблемой
#43 by Злопчинский
Блин, что будет если тупо сделать две выписки руками по разным РС, по операции перевода между своими же счетами. Не верю, что В БП такое не предусмотрено - должна отработать корректно. В других конфигах (а о какой конфиге идет речь у ТС?) - хз...
#44 by CepeLLlka
Изи оказалось.. Платёжки бегут в такой последовательности: По порядку счетов что перечисляются в начале выписки Затем, все списания с этого счета, потом все поступления на счет. Вот.. я что-то не заметил сначала это просто..
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С