Как экспортировать банковские выписки из 1С 7.7 для загрузки в 1С 8.3

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет
← На главную

При переходе с платформы 1С 7.7 на 1С 8.3 или при необходимости синхронизировать данные между этими системами, одной из самых частых задач становится перенос банковских выписок. Основная сложность заключается в том, что в «семерке» выписка часто представляет собой многострочный документ, в то время как в 1С 8.3 каждое поступление или списание — это отдельный объект. В этой статье мы подробно разберем, как реализовать экспорт данных, какие штатные средства для этого существуют и как правильно подготовить файл для загрузки в современную конфигурацию.

Способ 1: Использование стандартного формата обмена «1С — Клиент-Банк»

Рассмотрим самый доступный метод, который не требует программирования. Большинство типовых конфигураций 1С 7.7 (например, «Бухгалтерский учет» или «Торговля и Склад») содержат встроенную обработку для обмена с банками. Несмотря на название, её можно использовать для формирования текстового файла, который легко «поймет» 1С 8.3.

Проанализируем шаги, которые необходимо выполнить в 1С 7.7:

  1. Откроем меню «Сервис» и выберем пункт «Обмен данными» — «Экспорт платежных документов» (название может незначительно отличаться в разных редакциях).
  2. В появившемся окне выберем расчетный счет и период, за который нам необходимы выписки.
  3. Самый важный момент: в поле выбора программы-клиента банка часто можно выбрать вариант «1С:Предприятие» или «Стандартный формат». Нам нужно добиться формирования файла с кодировкой Windows (ANSI) и именем 1C_to_KL.txt.
  4. Укажем путь к файлу на диске и нажмем кнопку «Выгрузить».

В результате мы получим текстовый файл со структурой ключей и значений. Выясним причину, почему это удобно: 1С 8.3 имеет стандартную обработку «Загрузка выписки банка», которая настроена именно на этот формат. При загрузке система автоматически создаст документы Поступление на расчетный счет и Списание с расчетного счета, пытаясь сопоставить контрагентов по ИНН и расчетным счетам.

Способ 2: Выгрузка данных через правила перехода (V77Exp.ert)

Если нам нужно не просто перекинуть «текст», а перенести документы с сохранением всей аналитики (субконто, статьи движения денежных средств), разберем использование штатной обработки перехода. Фирма 1С поставляет вместе с конфигурациями 8.3 специальные правила для переноса данных из 7.7.

Посмотрим на алгоритм действий:

  1. В каталоге установки вашей базы 1С 8.3 (или в подкаталоге tmplts) найдите папку с правилами обмена для 7.7. Там должен находиться файл V77Exp.ert.
  2. Скопируем этот файл в каталог ExtForms базы 1С 7.7 и откроем через «Файл» — «Открыть».
  3. Загрузим файл правил (обычно это ACC77_8x.xml).
  4. В дереве объектов выберем только необходимые нам документы: «Выписка» или «Строка выписки приход/расход».
  5. Нажмем «Выгрузить». Система сформирует XML-файл.

Проанализируем ситуацию: этот метод гораздо надежнее, так как он учитывает типы данных. Если в 7.7 документ был проведен, обработка постарается перенести его в 8.3 также в проведенном состоянии, заполнив счета учета в соответствии с настроенными правилами сопоставления.

Способ 3: Программный экспорт в текстовый файл (для разработчиков)

Бывают ситуации, когда типовые средства не подходят (например, сильно кастомизированная конфигурация 7.7). В этом случае мы можем написать небольшую обработку самостоятельно. Выясним, как программно перебрать строки выписки и записать их в файл.

Рассмотрим пример кода на языке 1С 7.7 для выгрузки данных в упрощенный формат CSV:


// Создание объекта для записи в файл
Текст = СоздатьОбъект("Текст");
Док = СоздатьОбъект("Документ.Выписка");

Док.ВыбратьДокументы(ДатаНачала, ДатаКонца);
Пока Док.ПолучитьДокумент() = 1 Цикл
    Если Док.Проведен() = 0 Тогда
        Продолжить;
    КонецЕсли;
    
    // Перебор строк многострочной части выписки
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() = 1 Цикл
        СтрокаВыгрузки = Строка(Док.ДатаДок) + ";" + 
                         Строка(Док.НомерДок) + ";" + 
                         Строка(Док.Субконто1.Наименование) + ";" + 
                         Строка(Док.Сумма);
        Текст.ДобавитьСтроку(СтрокаВыгрузки);
    КонецЦикла;
КонецЦикла;

Текст.Записать(ПутьКФайлу);
Предупреждение("Экспорт завершен успешно!");

В данном примере мы используем объект СоздатьОбъект("Текст") для формирования файла. Метод ВыбратьДокументы позволяет нам ограничить выборку нужным периодом, а цикл ВыбратьСтроки внутри документа Выписка позволяет добраться до каждой финансовой операции. Обратите внимание на использование Строка(Док.Субконто1.Наименование) — это позволяет выгрузить текстовое представление контрагента для последующего поиска в новой базе.

Способ 4: Прямое чтение базы через COM-соединение

Если вы хотите избежать промежуточных файлов, мы можем использовать технологию COM. В этом случае инициатором обмена выступает 1С 8.3, которая «подключается» к 1С 7.7 как к внешнему источнику данных.

Разберем, как это выглядит со стороны кода 1С 8.3:


// Код в 1С 8.3
ПутьКБазе77 = "C:\Bases\Salary77\";
Пользователь77 = "Админ";
Пароль77 = "123";

V7 = Новый COMОбъект("V77.Application");
Открыта = V7.Initialize(V7.RMTrade, "/D" + ПутьКБазе77 + " /N" + Пользователь77 + " /P" + Пароль77, "NO_SPLASH_SHOW");

Если Открыта Тогда
    Выписка77 = V7.CreateObject("Документ.Выписка");
    Выписка77.SelectDocuments(НачалоПериода, КонецПериода);
    
    Пока Выписка77.GetDocument() = 1 Цикл
        // Здесь мы читаем данные из 7.7 и создаем объекты в 8.3
        НовоеПоступление = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
        НовоеПоступление.Дата = Выписка77.DocDate;
        // ... заполнение остальных реквизитов
        НовоеПоступление.Записать();
    КонецЦикла;
КонецЕсли;

Важно помнить, что при использовании V77.Application на компьютере должна быть установлена и лицензирована версия 1С 7.7, а разрядность платформы 1С 8 (32 или 64 бита) должна соответствовать установленным COM-компонентам.

Рекомендации по проверке данных после экспорта

После того как экспорт в файл и последующая загрузка в 1С 8.3 завершены, необходимо выполнить проверку. Проанализируем основные точки контроля:

Таким образом, мы рассмотрели различные варианты выгрузки выписок: от самых простых пользовательских методов до сложных программных решений. Выбор конкретного пути зависит от объема данных и ваших навыков программирования в среде 1С.

← На главную