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