Разработка и Конфигурация · 10 мин
Что такое листинг программы 1С и как его получить
Листинг программы 1С — это текстовая распечатка программного кода модулей конфигурации. Разбираем, зачем он нужен, как получить и сохранить листинг из конфигуратора.
Листинг программы 1С — это текстовое представление программного кода конфигурации, выведенное в печатном или файловом виде. По сути, это распечатка содержимого модулей: общих модулей, модулей объектов, форм, модулей менеджеров и других программных блоков, написанных на встроенном языке 1С. Листинг позволяет увидеть код целиком, без необходимости открывать каждый модуль в конфигураторе по отдельности.
Термин пришёл из классического программирования, где листингом называли распечатку исходного кода на бумаге для анализа и проверки. В экосистеме 1С понятие сохранило тот же смысл: это полный текст программы, пригодный для чтения, поиска, архивирования и передачи третьим лицам — например, аудиторам или экспертам, у которых нет доступа к самой базе.
Листинг не является исполняемым файлом и не заменяет конфигурацию: по нему нельзя восстановить базу или запустить программу. Это именно документ — слепок кода на определённый момент времени.
Зачем нужен листинг конфигурации
Основное назначение листинга — дать возможность читать и анализировать код вне среды разработки. Это востребовано в нескольких практических ситуациях: передача кода на независимую экспертизу, документирование доработок для заказчика, архивирование состояния конфигурации перед крупным обновлением, обучение и разбор чужих решений.
Листинг удобен и при внутренней работе команды. По текстовому файлу проще выполнять глобальный поиск по всем модулям сразу, чем открывая каждый объект в конфигураторе. Разработчик может быстро найти, где используется конкретная процедура или запрос, и оценить последствия её изменения.
Ещё один сценарий — фиксация авторства и контроль изменений. Сохранённый листинг с датой позволяет доказать, какой код существовал на конкретный момент, что бывает важно при спорах с подрядчиком или при приёмке доработок.
Эксперт без доступа к базе анализирует качество и безопасность кода
Заказчик фиксирует, какой код был передан подрядчиком
Сохранение состояния конфигурации до установки релиза
Глобальный поиск вызовов процедур по всем модулям сразу
Какие модули входят в листинг
Конфигурация 1С состоит из множества программных модулей, и листинг может включать любые из них. Обычно в распечатку попадают общие модули, модуль приложения (или обычного приложения), модуль управляемого приложения, модули объектов (справочников, документов), модули менеджеров, модули форм, модули команд и модули подписок на события.
Важно понимать, что листинг отражает только код на встроенном языке. Макеты, схемы компоновки данных, настройки прав, интерфейсные элементы и данные самой базы в листинг не входят. Если для анализа нужны и эти артефакты, их выгружают отдельно.
Как получить листинг отдельного модуля
Самый простой способ — распечатать или сохранить в файл один конкретный модуль. Откройте нужный модуль в конфигураторе, затем в главном меню выберите «Файл» → «Печать». В диалоге печати можно вывести текст на принтер либо сохранить его как документ.
Альтернативный путь — выделить весь текст модуля (Ctrl+A), скопировать его и вставить в текстовый редактор, после чего сохранить в файл с расширением .txt или .bsl. Такой файл удобно пересылать и открывать в любом редакторе с подсветкой синтаксиса.
Для единичных модулей этого достаточно, но при необходимости получить листинг всей конфигурации ручное копирование непрактично — модулей могут быть сотни.
- 1Откройте конфигуратор и перейдите к нужному объекту конфигурации
- 2Откройте модуль объекта, формы или общий модуль
- 3В меню выберите «Файл» → «Печать» и настройте параметры вывода
- 4Выведите на принтер или сохраните результат в файл
- 5Проверьте, что в листинг попал весь текст, включая область переменных и все процедуры
Как получить листинг всей конфигурации
Массовую выгрузку кода выполняют через пакетные средства. Наиболее технологичный способ — выгрузка конфигурации в файлы: в конфигураторе выберите «Конфигурация» → «Выгрузить конфигурацию в файлы». В результате в указанном каталоге появится структура папок, где каждый модуль сохранён отдельным файлом формата .bsl (или .txt в зависимости от версии платформы) — по сути, это и есть полный листинг конфигурации в файловом виде.
Тот же результат доступен из командной строки: конфигуратор поддерживает пакетный режим с параметром выгрузки конфигурации в файлы, что позволяет автоматизировать получение листинга, например по расписанию или перед каждым обновлением.
"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).
Вторая ошибка — выгружать листинг нерегулярно и без версионирования. Одиночный файл без даты быстро теряет ценность: через месяц невозможно понять, какому состоянию конфигурации он соответствует. Всегда включайте в имя файла или каталога дату и версию релиза.
Чем листинг отличается от выгрузки конфигурации
Листинг и файлы конфигурации решают разные задачи, и их не стоит путать. Листинг — это человекочитаемый текст кода для чтения и анализа. Файл конфигурации (.cf) и выгрузка базы (.dt) — машинные форматы для переноса и восстановления системы.
| Критерий | Листинг | Выгрузка .cf / .dt |
|---|---|---|
| Назначение | Чтение, анализ, документирование кода | Резервное копирование и перенос конфигурации |
| Содержимое | Только программный код модулей | Метаданные, формы, макеты, код (и данные в .dt) |
| Восстановление базы | Невозможно | Возможно через загрузку |
| Читаемость человеком | Высокая | Низкая, бинарный формат |
Что выбрать под задачу
Подходит для аудита, документирования и поиска по коду; не подходит для восстановления базы
Даёт полный набор артефактов для контроля версий и сборки; требует инструментов разработчика для чтения
Нужен для резервного копирования и переноса; для анализа кода неудобен
Как проверить полноту листинга
После получения листинга убедитесь, что он полный. Сравните количество выгруженных файлов модулей с числом объектов, имеющих модули, в дереве конфигурации. Точное совпадение не всегда обязательно (у части объектов модули пусты), но крупные расхождения — повод перепроверить выгрузку.
Откройте несколько ключевых модулей — общие модули, модуль документа, модуль формы — и убедитесь, что текст совпадает с тем, что видно в конфигураторе, включая последние процедуры в конце модуля. Обрезанный файл — признак сбоя выгрузки.
Как проверить результат
Папки соответствуют объектам конфигурации, файлы модулей на месте
Часть объектов отсутствует или каталоги пусты
Код полный, читаем, совпадает с конфигуратором
Файлы пустые, обрезаны или содержат ошибки кодировки
В имени или рядом указаны дата и версия релиза
Невозможно определить, какому состоянию базы соответствует листинг
Удобно настроить автоматическую выгрузку конфигурации в файлы по расписанию и складывать результат в репозиторий. Тогда листинг любого прошлого состояния доступен в пару кликов, а история изменений кода видна через сравнение версий.
Что важно запомнить
Листинг программы 1С — это текст кода модулей конфигурации в печатном или файловом виде. Он нужен для анализа, аудита и документирования, но не заменяет резервную копию. Полный листинг удобнее всего получать выгрузкой конфигурации в файлы, с фиксацией даты и версии.
Частые вопросы
Можно ли восстановить конфигурацию из листинга?
Нет. Листинг содержит только текст кода и не включает метаданные, формы, макеты и данные. Для восстановления нужны файл конфигурации (.cf) или выгрузка информационной базы (.dt).
Чем листинг отличается от выгрузки конфигурации в файлы?
Выгрузка в файлы сохраняет всю структуру конфигурации, включая XML-описания объектов, а модули в ней хранятся отдельными файлами кода. Эти файлы кода фактически и являются листингом в файловом виде, но понятие «листинг» шире — это может быть и единый печатный документ.
Можно ли получить листинг без доступа к конфигуратору?
Если конфигурация закрыта паролем на модули или поставляется без исходных текстов, получить листинг штатными средствами нельзя. Понадобится пароль поставщика или доступ к исходной выгрузке от разработчика.
В каком формате лучше передавать листинг на экспертизу?
Обычно используют единый PDF или текстовый файл с оглавлением по объектам — так эксперту проще ориентироваться. Если эксперт работает с инструментами анализа кода, лучше передать исходную файловую структуру выгрузки.
Нужно ли чистить листинг перед передачей третьим лицам?
Да. В коде и комментариях нередко встречаются пароли, ключи доступа, адреса серверов и персональные данные. Перед отправкой такие фрагменты следует удалить или заменить заглушками.
Как автоматизировать получение листинга?
Используйте пакетный режим конфигуратора с командой выгрузки конфигурации в файлы, запуская её по расписанию через планировщик задач. Результат удобно складывать в систему контроля версий для отслеживания изменений.