Каждый бухгалтер, работающий с конфигурацией 1С:Бухгалтерия, хотя бы раз сталкивался с ситуацией, когда при импорте файла банковской выписки программа наотрез отказывается принимать документы, выдавая предупреждение: «Пропущен документ номер... Дата исполнения документа не указана». Особенно неприятно, когда это происходит массово и блокирует разнесение выписок по счетам учета.
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем структуру файла обмена и выясним причину сбоя. Мы рассмотрим практические способы решения проблемы — от быстрого ручного исправления файла до глобальной перенастройки обмена с банком.
---
Для начала разберем по шагам, каким образом происходит обмен данными между банковским клиентом и программой 1С. В основе этого процесса лежит текстовый стандарт обмена 1CClientBankExchange. Выгружаемый из банка файл представляет собой обычный текстовый документ (обычно с расширением .txt), в котором каждый платеж оформлен в виде отдельного информационного блока.
Чтобы 1С:Бухгалтерия могла успешно создать и провести документ Списание с расчетного счета или Поступление на расчетный счет, ей недостаточно знать только сумму и получателя. Программе критически важен факт подтверждения операции банком. В формате обмена за это отвечают два ключевых параметра:
ДатаПоступило — дата, когда денежные средства фактически зачислены на счет (используется для входящих платежей/приходов).ДатаСписано — дата, когда банк фактически осуществил списание средств со счета (используется для исходящих платежей/расходов).Если банк выгружает документ, но в его блоке эти поля остаются пустыми или вовсе отсутствуют, 1С расценивает такой документ как «неисполненный» (планируемый платеж). Программа не имеет права проводить его в регламентированном учете без официальной даты совершения хозяйственной операции, поэтому она просто пропускает его, выводя ошибку пользователю.
---
Посмотрим на пример структуры проблемного документа, который предоставил пользователь на форуме. Разберем этот фрагмент файла выгрузки:
СекцияДокумент=Платежное поручение
Номер=306
Дата=02.10.2020
Сумма=1111111.00
ПлательщикСчет=1111111111111111
ПлательщикИНН=11111111
Плательщик=ООО "1111111"
ПолучательСчет=
ДатаПоступило=
ПолучательИНН=11111111
Получатель=ООО "2222222"
ВидОплаты=01
НазначениеПлатежа=Оплата по договору...
КонецДокумента
Обратим внимание на несколько важных деталей в этой структуре:
ДатаПоступило= присутствует в структуре, но оно абсолютно пустое.ДатаСписано полностью отсутствует в блоке документа.Если это расходный документ (списание средств), то 1С ищет строку ДатаСписано. Не найдя её, система выдает ту самую ошибку не указанной даты исполнения. Если же это приходный документ, пустая строка ДатаПоступило= также приводит к отказу в загрузке.
Для сравнения рассмотрим, как должен выглядеть корректно выгруженный и проведенный банком документ:
СекцияДокумент=Платежное поручение
Номер=1323
Дата=02.10.2020
Сумма=1300000.00
ПлательщикСчет=40702810...
ДатаСписано=02.10.2020
Плательщик=ООО "Наша Компания"
КонецДокумента
Как мы видим, во втором примере четко зафиксирован параметр ДатаСписано=02.10.2020. Такой документ загрузится в 1С без каких-либо предупреждений и сразу будет готов к проведению.
---
В зависимости от того, насколько срочно вам нужно провести платежи и как часто повторяется данная ошибка, выберите один из следующих вариантов решения.
Это наиболее частая и системная причина сбоя. Очень часто бухгалтеры по ошибке выгружают из банковского кабинета не фактическую «Выписку по счету» за определенный период, а реестр отправленных платежных поручений, журнал документов или файлы планового реестра. В таких реестрах содержатся лишь заготовки документов, по которым банк еще не зафиксировал движение денег.
Что необходимо сделать:
Если вам нужно срочно провести один-два документа, а разбираться с настройками банка нет времени, можно скорректировать файл выгрузки вручную. При большом количестве таких документов удобнее настроить программного робота для выполнения повторяющихся действий в интерфейсе 1С.
Рассмотрим подробнее этот процесс:
kl_to_1c.txt) с помощью любого текстового редактора (например, Блокнот).Ctrl + F и найдите проблемный документ по его номеру или сумме.СекцияДокумент ... КонецДокумента строку с датой.ДатаСписано=ДД.ММ.ГГГГ (укажите дату проведения платежа банком).ДатаПоступило= и допишите после знака равенства фактическую дату: ДатаПоступило=ДД.ММ.ГГГГ.Постоянный обмен через файлы формата .txt постепенно уходит в прошлое. Он неудобен, небезопасен и часто приводит к ошибкам кодировок или структуры файлов. Самым надежным способом навсегда избавиться от подобных проблем является настройка технологии 1С:ДиректБанк (DirectBank).
При использовании этой технологии 1С общается с сервером банка напрямую через защищенный канал API. Программа сама запрашивает выписку и получает ее в строго валидном XML-формате, где исключены любые пропуски обязательных реквизитов, таких как даты исполнения. Подключение ДиректБанка в большинстве крупных банков абсолютно бесплатно и настраивается за несколько минут прямо из карточки банковского счета в 1С. Для детального анализа и отладки взаимодействия через этот сервис подойдёт консоль обмена с банком через DirectBank.
---
Иногда отсутствие даты исполнения в файлах может быть связано со спецификой учета:
ДатаСписано заполнен, но 1С все равно выдает ошибку, обязательно обновите вашу конфигурацию до актуального релиза.Мы надеемся, что данный подробный разбор помог вам разобраться в механике работы банковского обмена в 1С и успешно решить проблему с загрузкой документов!