К статье
Практический материал

Разработка и Конфигурация · 10 мин

Что такое листинг программы 1С и как его получить

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

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

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

Листинг не является исполняемым файлом и не заменяет конфигурацию: по нему нельзя восстановить базу или запустить программу. Это именно документ — слепок кода на определённый момент времени.

Зачем нужен листинг конфигурации

Основное назначение листинга — дать возможность читать и анализировать код вне среды разработки. Это востребовано в нескольких практических ситуациях: передача кода на независимую экспертизу, документирование доработок для заказчика, архивирование состояния конфигурации перед крупным обновлением, обучение и разбор чужих решений.

Листинг удобен и при внутренней работе команды. По текстовому файлу проще выполнять глобальный поиск по всем модулям сразу, чем открывая каждый объект в конфигураторе. Разработчик может быстро найти, где используется конкретная процедура или запрос, и оценить последствия её изменения.

Ещё один сценарий — фиксация авторства и контроль изменений. Сохранённый листинг с датой позволяет доказать, какой код существовал на конкретный момент, что бывает важно при спорах с подрядчиком или при приёмке доработок.

Аудит кодаПередача на проверку

Эксперт без доступа к базе анализирует качество и безопасность кода

ДокументированиеПриёмка доработок

Заказчик фиксирует, какой код был передан подрядчиком

АрхивСлепок перед обновлением

Сохранение состояния конфигурации до установки релиза

ПоискАнализ зависимостей

Глобальный поиск вызовов процедур по всем модулям сразу

Какие модули входят в листинг

Конфигурация 1С состоит из множества программных модулей, и листинг может включать любые из них. Обычно в распечатку попадают общие модули, модуль приложения (или обычного приложения), модуль управляемого приложения, модули объектов (справочников, документов), модули менеджеров, модули форм, модули команд и модули подписок на события.

Важно понимать, что листинг отражает только код на встроенном языке. Макеты, схемы компоновки данных, настройки прав, интерфейсные элементы и данные самой базы в листинг не входят. Если для анализа нужны и эти артефакты, их выгружают отдельно.

Как получить листинг отдельного модуля

Самый простой способ — распечатать или сохранить в файл один конкретный модуль. Откройте нужный модуль в конфигураторе, затем в главном меню выберите «Файл» → «Печать». В диалоге печати можно вывести текст на принтер либо сохранить его как документ.

Альтернативный путь — выделить весь текст модуля (Ctrl+A), скопировать его и вставить в текстовый редактор, после чего сохранить в файл с расширением .txt или .bsl. Такой файл удобно пересылать и открывать в любом редакторе с подсветкой синтаксиса.

Для единичных модулей этого достаточно, но при необходимости получить листинг всей конфигурации ручное копирование непрактично — модулей могут быть сотни.

Как распечатать один модуль
  1. 1
    Откройте конфигуратор и перейдите к нужному объекту конфигурации
  2. 2
    Откройте модуль объекта, формы или общий модуль
  3. 3
    В меню выберите «Файл» → «Печать» и настройте параметры вывода
  4. 4
    Выведите на принтер или сохраните результат в файл
  5. 5
    Проверьте, что в листинг попал весь текст, включая область переменных и все процедуры

Как получить листинг всей конфигурации

Массовую выгрузку кода выполняют через пакетные средства. Наиболее технологичный способ — выгрузка конфигурации в файлы: в конфигураторе выберите «Конфигурация» → «Выгрузить конфигурацию в файлы». В результате в указанном каталоге появится структура папок, где каждый модуль сохранён отдельным файлом формата .bsl (или .txt в зависимости от версии платформы) — по сути, это и есть полный листинг конфигурации в файловом виде.

Тот же результат доступен из командной строки: конфигуратор поддерживает пакетный режим с параметром выгрузки конфигурации в файлы, что позволяет автоматизировать получение листинга, например по расписанию или перед каждым обновлением.

batch
"C:\Program Files\1cv8\bin\1cv8.exe" DESIGNER /F"C:\Bases\MyBase" /N"Администратор" /DumpConfigToFiles "C:\Listing\src" /Out "C:\Listing\log.txt"

После выгрузки проверьте результат: в каталоге должна появиться иерархия папок с именами объектов конфигурации, а внутри — файлы модулей. Откройте несколько файлов и убедитесь, что код читаем и не обрезан.

В каком виде хранить и передавать листинг

Формат хранения зависит от цели. Для передачи на экспертизу или для архива удобен единый документ: файлы модулей объединяют в один текстовый файл или PDF с оглавлением по объектам. Для работы команды разработки лучше оставить файловую структуру как есть — её можно поместить в систему контроля версий (например, Git) и отслеживать изменения кода между релизами.

При передаче листинга третьим лицам учитывайте, что код может содержать чувствительные сведения: пароли, ключи API, адреса серверов, персональные данные в комментариях. Перед отправкой просмотрите листинг и удалите или замаскируйте такие фрагменты.

Частые ошибки и ограничения

Распространённая ошибка — считать листинг резервной копией. Восстановить конфигурацию из распечатанного кода нельзя: в нём нет структуры метаданных, форм, макетов и данных. Для резервного копирования используйте выгрузку информационной базы (.dt) или файла конфигурации (.cf).

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

Типичные ошибки
01
Использовать листинг как резервную копию — код без метаданных не восстановит конфигурацию
02
Хранить листинг без даты и версии — невозможно определить, какому релизу он соответствует
03
Передавать файл с паролями и ключами в комментариях — риск утечки доступов
04
Копировать модули вручную по одному — высок риск пропустить часть кода и получить неполный слепок

Чем листинг отличается от выгрузки конфигурации

Листинг и файлы конфигурации решают разные задачи, и их не стоит путать. Листинг — это человекочитаемый текст кода для чтения и анализа. Файл конфигурации (.cf) и выгрузка базы (.dt) — машинные форматы для переноса и восстановления системы.

КритерийЛистингВыгрузка .cf / .dt
НазначениеЧтение, анализ, документирование кодаРезервное копирование и перенос конфигурации
СодержимоеТолько программный код модулейМетаданные, формы, макеты, код (и данные в .dt)
Восстановление базыНевозможноВозможно через загрузку
Читаемость человекомВысокаяНизкая, бинарный формат

Что выбрать под задачу

Листинг (текстовые файлы кода)

Подходит для аудита, документирования и поиска по коду; не подходит для восстановления базы

Выгрузка в файлы конфигурации

Даёт полный набор артефактов для контроля версий и сборки; требует инструментов разработчика для чтения

Файл .cf или .dt

Нужен для резервного копирования и переноса; для анализа кода неудобен

Как проверить полноту листинга

После получения листинга убедитесь, что он полный. Сравните количество выгруженных файлов модулей с числом объектов, имеющих модули, в дереве конфигурации. Точное совпадение не всегда обязательно (у части объектов модули пусты), но крупные расхождения — повод перепроверить выгрузку.

Откройте несколько ключевых модулей — общие модули, модуль документа, модуль формы — и убедитесь, что текст совпадает с тем, что видно в конфигураторе, включая последние процедуры в конце модуля. Обрезанный файл — признак сбоя выгрузки.

Контрольные точки

Как проверить результат

Структура каталога выгрузки
Норма

Папки соответствуют объектам конфигурации, файлы модулей на месте

Тревожный признак

Часть объектов отсутствует или каталоги пусты

Содержимое файлов
Норма

Код полный, читаем, совпадает с конфигуратором

Тревожный признак

Файлы пустые, обрезаны или содержат ошибки кодировки

Актуальность
Норма

В имени или рядом указаны дата и версия релиза

Тревожный признак

Невозможно определить, какому состоянию базы соответствует листинг

Удобно настроить автоматическую выгрузку конфигурации в файлы по расписанию и складывать результат в репозиторий. Тогда листинг любого прошлого состояния доступен в пару кликов, а история изменений кода видна через сравнение версий.
ПЗ
Практическое замечание
Итог

Что важно запомнить

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

Частые вопросы

Можно ли восстановить конфигурацию из листинга?

Нет. Листинг содержит только текст кода и не включает метаданные, формы, макеты и данные. Для восстановления нужны файл конфигурации (.cf) или выгрузка информационной базы (.dt).

Чем листинг отличается от выгрузки конфигурации в файлы?

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

Можно ли получить листинг без доступа к конфигуратору?

Если конфигурация закрыта паролем на модули или поставляется без исходных текстов, получить листинг штатными средствами нельзя. Понадобится пароль поставщика или доступ к исходной выгрузке от разработчика.

В каком формате лучше передавать листинг на экспертизу?

Обычно используют единый PDF или текстовый файл с оглавлением по объектам — так эксперту проще ориентироваться. Если эксперт работает с инструментами анализа кода, лучше передать исходную файловую структуру выгрузки.

Нужно ли чистить листинг перед передачей третьим лицам?

Да. В коде и комментариях нередко встречаются пароли, ключи доступа, адреса серверов и персональные данные. Перед отправкой такие фрагменты следует удалить или заменить заглушками.

Как автоматизировать получение листинга?

Используйте пакетный режим конфигуратора с командой выгрузки конфигурации в файлы, запуская её по расписанию через планировщик задач. Результат удобно складывать в систему контроля версий для отслеживания изменений.