Как выгрузить список контрагентов с ИНН, адресами и банковскими счетами из 1С 7.7 Комплексная конфигурация

Программист 1С v7.7 1С:Комплексная автоматизация Управленческий учет
← На главную

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

Способ 1: Использование стандартных инструментов интерфейса

Начнем с самого простого метода, который не требует навыков программирования. В некоторых релизах конфигураций 1С 7.7 предусмотрена возможность вывода списка справочника в таблицу. Проанализируем, как это работает.

Попробуем открыть справочник «Контрагенты». В нижней части формы списка может находиться кнопка Список. Если она есть, нажмите на нее — откроется окно настройки, где можно отметить галочками нужные реквизиты (ИНН, Телефоны и т.д.). После формирования списка его можно сохранить через меню Файл — Сохранить как, выбрав формат Таблица Excel.

Если кнопки «Список» в справочнике нет, не стоит отчаиваться. Рассмотрим альтернативный стандартный путь — отчет «Печать справочников». Обычно он находится в меню Отчеты — Прочие или в Сервис — Дополнительные возможности. Этот отчет универсален: вы выбираете справочник Контрагенты, помечаете необходимые поля и получаете готовую таблицу для экспорта.

Способ 2: Написание собственной обработки для выгрузки

Если стандартные отчеты не дают нужной детализации (например, не выводят банковские счета или КПП), нам придется написать небольшую обработку. Выясним, как программно обратиться к данным 1С 7.7.

Создадим новую внешнюю обработку в конфигураторе. В модуле формы напишем код для выборки. Важно понимать, что в «Комплексной конфигурации» многие реквизиты могут быть периодическими или храниться в подчиненных справочниках. Посмотрим на базовый пример кода для получения основных данных:


Контрагенты = СоздатьОбъект("Справочник.Контрагенты");
Контрагенты.ВыбратьЭлементы();
Пока Контрагенты.ПолучитьЭлемент() = 1 Цикл
    Если Контрагенты.ЭтоГруппа = 1 Тогда
        Продолжить;
    КонецЕсли;
    
    Имя = Контрагенты.Наименование;
    ИНН = Контрагенты.ИНН; // В 7.7 ИНН часто включает в себя и КПП через слэш
    Тел = Контрагенты.Телефоны;
    
    Сообщить("Контрагент: " + Имя + " ИНН: " + ИНН);
КонецЦикла;

Проанализируем этот код. Мы используем объект Справочник.Контрагенты и метод ВыбратьЭлементы() для начала обхода. Метод ПолучитьЭлемент() возвращает 1, пока в выборке есть данные. Обратите внимание на проверку ЭтоГруппа, чтобы исключить папки из итогового списка.

Способ 3: Работа со сложными данными (Периодические реквизиты и счета)

В «Комплексной конфигурации» 7.7 адреса и банковские счета хранятся иначе, чем в простых базах. Разберем подробнее эти нюансы.

Банковские счета: Они хранятся в подчиненном справочнике. Чтобы их достать, внутри основного цикла по контрагентам нужно создать еще один объект справочника. Рассмотрим пример:


Счета = СоздатьОбъект("Справочник.БанковскиеСчета");
Счета.ИспользоватьВладельца(Контрагенты.ТекущийЭлемент());
Счета.ВыбратьЭлементы();
Пока Счета.ПолучитьЭлемент() = 1 Цикл
    НомерСчета = Счета.НомерСчета;
    БИК = Счета.Банк.Код;
    // Здесь можно записывать данные в файл
КонецЦикла;

Периодические реквизиты: Юридический адрес или телефон в КК могут быть периодическими. Это значит, что значение реквизита зависит от даты. Чтобы получить актуальное значение, используем метод Получить(Дата). Например: Адрес = Контрагенты.ЮрАдрес.Получить(РабочаяДата());. Если вы обратитесь к реквизиту напрямую (Контрагенты.ЮрАдрес), программа может вернуть пустую строку или объект типа «Периодический».

Способ 4: Прямое чтение таблиц базы данных (DBF)

Если база данных работает в формате DBF, мы можем извлечь данные, даже не запуская 1С. Это полезно, если база повреждена или утеряны пароли. Проанализируем ситуацию: каждый справочник в 7.7 — это отдельный файл SC*.dbf в папке базы данных.

  1. Откройте файл 1Cv7.DD (Data Dictionary) в корне базы любым текстовым редактором.
  2. Найдите в тексте строку "Reference : Контрагенты". Чуть выше или ниже будет указано имя таблицы, например, SC123.
  3. Найдите файл SC123.dbf в каталоге базы и откройте его в Excel или специализированном DBF-вьюере.
  4. Поля в DBF будут иметь технические имена вроде SP125. Сопоставить их с реальными именами (ИНН, Наименование) поможет тот же файл 1Cv7.DD.

Важно: При прямом чтении DBF вы увидите только идентификаторы (ID) вместо ссылок на другие справочники. Например, вместо названия банка будет его внутренний код в системе. Для полноценной сборки данных этот метод требует сопоставления нескольких таблиц.

Способ 5: Универсальный обмен данными через XML

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

Найдите в папке ExtForms внутри каталога базы файлы с расширением .ert, в названии которых есть «Export» или «Выгрузка». Запустите их через Файл — Открыть и следуйте инструкциям помощника. Обычно достаточно выбрать справочник Контрагенты и указать путь к файлу выгрузки.

Таким образом, мы рассмотрели пять различных стратегий — от простых визуальных способов до прямого доступа к файлам базы данных. Выбор метода зависит от ваших навыков программирования и того, насколько глубоко «спрятаны» данные в вашей версии конфигурации.

← На главную