Загрузка выписок из клиент-банка в 1С — это стандартная задача, которая автоматизирует работу бухгалтера. Однако часто возникают ситуации, когда файл, сформированный банковской системой, не распознается программой. Давайте разберем, как устроен этот файл, какие требования предъявляет 1С и как самостоятельно решить проблему несовместимости форматов.
В Российской Федерации де-факто стандартом является формат текстового обмена, который понимает любая типовая конфигурация 1С. Этот формат строго регламентирован. Файл должен начинаться с заголовка 1CClientBankExchange и заканчиваться строкой КонецФайла.
Структура строится на секциях. Основными являются секция РасчСчет, описывающая реквизиты счета организации, и секция Документ, содержащая детализацию каждой операции. Все параметры записываются в виде Ключ=Значение.
Для того чтобы 1С корректно считала данные, файл должен иметь следующую структуру. Рассмотрим пример того, как должен выглядеть корректный файл:
1CClientBankExchange
ВерсияФормата=1.03
Кодировка=Windows
Отправитель=БАНК
Получатель=
ДатаСоздания=17.11.2020
ВремяСоздания=10:55:25
ДатаНачала=16.11.2020
ДатаКонца=16.11.2020
РасчСчет=40702800000000000000
СекцияРасчСчет
ДатаНачала=16.11.2020
ДатаКонца=16.11.2020
НачальныйОстаток=0.00
РасчСчет=40702800000000000000
ВсегоСписано=0
ВсегоПоступило=0
КонечныйОстаток=0.00
КонецРасчСчет
СекцияДокумент=Платежное поручение
Номер=001
Дата=16.11.2020
Сумма=0
ПлательщикСчет=40702800000000000000
Плательщик=ООО РОГА И КОПЫТА
ПлательщикИНН=0000000001
ПлательщикКПП=000001001
ПлательщикРасчСчет=40702810000000000000
ПлательщикБанк1=ПАО БАНК
ПлательщикБИК=040000000
ПолучательСчет=40702800000000000000
ДатаПоступило=16.11.2020
Получатель=НАША ФИРМА
ПолучательИНН=0000000002
ПолучательКПП=000001001
ПолучательРасчСчет=40702800000000000000
ПолучательБанк1=ПАО БАНК
ПолучательБИК=046000000
НазначениеПлатежа=ОПЛАТА ЗА ТОВАРЫ
КонецДокумента
КонецФайла
Если вы видите ошибку при загрузке, рекомендуем обратить внимание на следующие аспекты:
Windows-1251. Если файл сохранен в UTF-8, программа может выдавать ошибки чтения символов.РасчСчет и БИК, указанные в файле, были корректно заведены в справочниках 1С.Если банк не предоставляет файл в стандартном формате 1С, есть несколько способов выхода из ситуации:
Вместо того чтобы изменять типовой код конфигурации, что может усложнить обновление системы в будущем, мы рекомендуем использовать внешнюю обработку. Вы можете написать алгоритм, который будет:
ПоступлениеНаРасчетныйСчет или СписаниеСРасчетногоСчета на основании полученных данных.ИНН и КПП для автоматического заполнения реквизитов.Выясним причину: если банк отдает данные в структуре, отличной от стандарта, можно создать промежуточный скрипт (например, на языке Python или макрос в Excel). Задача скрипта — считать «непонятный» файл и преобразовать его в структуру 1CClientBankExchange. После этого вы сможете загрузить полученный файл штатным механизмом 1С без написания сложного кода внутри программы.
Проанализируем современный подход. В актуальных версиях 1С активно применяется технология DirectBank. Она позволяет настроить прямое взаимодействие с банком через API. В этом случае промежуточные текстовые файлы вообще не используются, что исключает любые ошибки формата. Узнайте у своего банка, поддерживает ли он прямое подключение к вашей версии 1С.
Работая вместе над автоматизацией, помните: самый надежный способ — привести входящий файл к требуемому стандарту либо использовать механизмы прямого обмена. Выбирайте вариант, который меньше всего затрагивает типовой код вашей конфигурации.