Что вы получите:
Банковские выписки – это «кровь» финансовой системы. Если их вводить вручную, растёт риск ошибок, теряется время и снижается контроль. Автоматическая загрузка + распознавание позволяют:
| Плюс | Что меняется в работе |
|---|---|
| Скорость | Одно‑разовый импорт десятков тысяч строк за секунды. |
| Точность | Система сверяет суммы, даты и коды контрагентов без вашего вмешательства. |
| Прозрачность | Каждый импорт фиксируется в журнале операций, а значит – легко отследить. |
| Аналитика | Данные сразу попадают в отчёты, бюджеты и план‑факт анализ. |
| Формат | Где обычно получают | Какой нужен в 1С |
|---|---|---|
| CSV (разделитель – точка с запятой) | Онлайн‑банк, выгрузка в Excel | Прямой импорт через обработку «Загрузка выписок» |
| XML (формат «BankStatement») | Банки, поддерживающие стандарты | Требует небольшого маппинга полей |
| PDF (табличный) | Банки без экспорта | Нужно OCR‑модуль (встроенный в 1С 8.3.21+). |
Совет: При возможности всегда выбирайте CSV – это самый простой и надёжный путь.
| Столбец | Описание | Пример |
|---|---|---|
| Дата | Дата операции в формате ДД.ММ.ГГГГ | 12.05.2026 |
| Сумма | Положительная – приход, отрицательная – расход | -12500,00 |
| Контрагент | Наименование или ИНН | ООО «Ромашка» |
| Назначение платежа | Текстовое описание | Оплата за поставку №12 |
| Номер договора | Если есть, иначе пусто | Д-2025/08 |
Важно: В 1С поле «Дата» должно быть в формате, указанном в настройках региона (обычно ДД.ММ.ГГГГ). Если ваш банк отдаёт даты в формате ГГГГ‑ММ‑ДД, откройте файл в Excel и сохраните с нужным разделителем.
ЗагрузкаВыписок. | Реквизит | Тип | Описание |
|---|---|---|
Файл |
Файл | Выбор CSV/ XML/ PDF |
Разделитель |
Строка | По умолчанию ; |
КодКонтрагента |
СправочникКонтрагенты | Сопоставление по ИНН/КПП |
Лог |
Текст | Вывод сообщений о ходе загрузки |
Процедура ЗагрузитьВыписку()
// 1. Открываем файл
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Дата", Новый ОписаниеТипов(Тип("Дата")));
Таблица.Колонки.Добавить("Сумма", Новый ОписаниеТипов(Тип("Число")));
Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов(Тип("Строка")));
Таблица.Колонки.Добавить("Назначение", Новый ОписаниеТипов(Тип("Строка")));
Таблица.Колонки.Добавить("Договор", Новый ОписаниеТипов(Тип("Строка")));
// 2. Читаем строки
Для Каждого Строка Из ЧтениеФайла(Файл, Разделитель) Цикл
НоваяСтрока = Таблица.Добавить();
НоваяСтрока.Дата = ПреобразоватьВ дату(Строка[0]);
НоваяСтрока.Сумма = Строка[1];
НоваяСтрока.Контрагент = Строка[2];
НоваяСтрока.Назначение = Строка[3];
НоваяСтрока.Договор = Строка[4];
КонецЦикла;
// 3. Сопоставление контрагентов
Для Каждого Строка Из Таблица Цикл
Справочник = НайтиКонтрагента(Строка.Контрагент);
Если Справочник = Неопределено Тогда
// Если не найдено – создаём «Контрагент
Справочник = Справочники.Контрагенты.СоздатьЭлемент();
Справочник.Наименование = Строка.Контрагент;
Справочник.ИНН = ВыделитьИНН(Строка.Контрагент);
Справочник.Записать();
КонецЕсли;
Строка.Контрагент = Справочник.Ссылка;
КонецЦикла;
// 4. Запись в регистр
Для Каждого Строка Из Таблица Цикл
Запись = РегистрыНакопления.ХозОперации.Выбрать();
Запись.Дата = Строка.Дата;
Запись.Сумма = Строка.Сумма;
Запись.Контрагент = Строка.Контрагент;
Запись.Назначение = Строка.Назначение;
Запись.Договор = Строка.Договор;
Запись.Записать();
КонецЦикла;
// 5. Вывод результата
Лог = "Загружено " + Таблица.Количество() + " строк.";
КонецПроцедуры
Пояснение: В реальном проекте вместо
ЧтениеФайлаиспользуют встроенный объектТекстовыйДокументи методыСчитатьСтроку. Код выше упрощён для восприятия.
В справочнике Контрагенты создайте дополнительный реквизит КодБанка (строка). При загрузке:
КодБанка. Наименование. Это ускоряет процесс и уменьшает количество «псевдо‑контрагентов».
Это процесс, при котором система решает, к какой аналитической группе относится строка (например, Товары, Услуги, Зарплата). В 1С это реализуется через правила классификации.
| Реквизит | Тип | Описание |
|---|---|---|
Ключ |
Строка | Фрагмент текста, который ищем |
Группа |
Строка | Наименование аналитической группы |
Приоритет |
Число | Чем больше, тем выше приоритет |
| Ключ | Группа | Приоритет |
|---|---|---|
поставка |
Товары | 10 |
аренда |
Операционные расходы | 8 |
заработная плата |
Зарплата | 9 |
комиссия |
Финансовые расходы | 7 |
Функция РаспознатьНазначение(Текст)
Правила = Справочники.КлассификаторНазначений.Выбрать();
ЛучшееСоответствие = "";
ЛучшийПриоритет = 0;
Пока Правила.Следующий() Цикл
Если Текст.РегулярноеВыражение(Правила.Ключ) Тогда
Если Правила.Приоритет > ЛучшийПриоритет Тогда
ЛучшееСоответствие = Правила.Группа;
ЛучшийПриоритет = Правила.Приоритет;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ЛучшееСоответствие;
КонецФункции
В основной цикл загрузки добавьте:
Строка.Назначение = РаспознатьНазначение(Строка.Назначение);
| Тестовая строка | Ожидаемая группа | Результат |
|---|---|---|
Оплата за поставку электроники |
Товары | Товары |
Аренда офиса за май |
Операционные расходы | Операционные расходы |
Комиссия за перевод средств |
Финансовые расходы | Финансовые расходы |
Зарплата сотрудников |
Зарплата | Зарплата |
Если результат не совпадает, отредактируйте Ключ (добавьте синонимы) и Приоритет.
| Ошибка | Причина | Как исправить |
|---|---|---|
| Не найден контрагент | ИНН/название не совпадает с записью в справочнике | Добавьте в справочник новый элемент или настройте правило поиска по части названия. |
| Неправильный формат даты | В файле используется другой разделитель дат | В обработке укажите параметр ФорматДаты (например, ГГГГ-ММ-ДД). |
| Дублирование операций | Файл уже был загружен ранее | В регистре накопления задайте уникальное сочетание Дата+Сумма+Контрагент и включите проверку Если Не Существует(Запись) Тогда …. |
| Не распознано назначение | Текст не содержит ключевых слов | Расширьте таблицу классификаторов новыми правилами. |
Все сообщения выводятся в поле Лог и сохраняются в журнале регистров (РегистрыСведений.ЖурналЗагрузок). Это упрощает аудит и позволяет быстро отследить, где возникла проблема.
Ежедневный импорт выписок. ЗагрузкаВыписок и параметр Файл = "C:\Bank\export_$(ТекущаяДата).csv".В обработке после завершения добавьте:
Если Ошибок = 0 Тогда
ОтправитьПисьмо(Получатель, "Импорт выписок завершён", "Загружено " + Количество + " строк.");
Иначе
ОтправитьПисьмо(Получатель, "Ошибка импорта", Лог);
КонецЕсли;
Таким образом, главный бухгалтер будет знать о состоянии загрузки без необходимости открывать программу.
Создайте тестовый CSV‑файл с 10 строками, включив в него разные варианты названий контрагентов и назначений (например, «поставка», «аренда», «зарплата»).
ДД.ММ.ГГГГ. Настройте справочник «Контрагенты»: добавьте два контрагента с ИНН и укажите поле КодБанка. Затем запустите обработку и убедитесь, что строки автоматически привязываются к этим контрагентам.
Сформируйте таблицу классификаторов с минимумом четырёх правил (ключ‑группа‑приоритет). Проверьте работу функции РаспознатьНазначение на следующих строках:
Смоделируйте ошибку: измените в CSV‑файле одну дату на 2026/05/12. Запустите обработку и зафиксируйте сообщение об ошибке. Затем исправьте формат и запустите снова.
Создайте задачу в Планировщ на тестовом сервере, укажите запуск раз в день в 02:00. Проверьте журнал выполнения задачи после её первого запуска.
Поздравляем! Вы освоили полный цикл: от подготовки банковской выписки до автоматического её распознавания и загрузки в 1С Бухгалтерию. Теперь вы можете сократить рутину, повысить точность учёта и освободить время для стратегических задач. 🚀