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

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

Как в 1С вывести код: инструкция для пользователя и разработчика

Как в 1С вывести код элемента справочника, документа или строки сообщения. Настройка отображения кода в списках, вывод через Сообщить и СокрЛП, типичные ошибки.

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

Код в 1С — это не только текст программы. У большинства объектов (справочников, документов, планов счетов) есть реквизит «Код», который платформа заполняет автоматически при записи. Именно его чаще всего требуется увидеть: например, чтобы назвать контрагенту его код для поиска в другой базе или чтобы сопоставить элементы при обмене данными.

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

Что означает «код» в 1С и где он хранится

У каждого объекта ссылочного типа — справочника, документа, плана видов характеристик, плана счетов — есть стандартный реквизит «Код». Он заполняется автоматически при записи нового элемента, если для объекта включена автонумерация. Код может быть числовым или строковым, а его длина задаётся в конфигураторе в свойствах объекта.

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

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

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

Откройте нужный список, нажмите кнопку «Ещё» и выберите пункт «Изменить форму». В появившемся окне найдите в дереве элементов строку «Код» и установите рядом с ней флажок. После нажатия «ОК» колонка появится в таблице. Порядок колонок меняется перетаскиванием элементов в том же окне настройки.

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

Если пункта «Изменить форму» нет в меню «Ещё», значит, у вашей роли нет права на изменение форм либо форма списка жёстко задана разработчиком. В этом случае обратитесь к администратору или используйте обходной путь: откройте карточку элемента — код обычно отображается в её шапке рядом с наименованием.

Как вывести код в карточке объекта и в печатной форме

В карточке элемента код обычно присутствует по умолчанию, но может быть скрыт тем же механизмом настройки формы: «Ещё → Изменить форму» прямо из открытой карточки. Найдите поле «Код» в дереве элементов и включите его отображение.

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

Как программно вывести код через встроенный язык

Для разработчика вывод кода — базовая операция. Получить код элемента можно через точку от ссылки или объекта: КодЭлемента = СправочникСсылка.Код;. Обращение к реквизитам через ссылку выполняется без явного получения объекта, что быстрее и безопаснее для блокировок.

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

bsl
Процедура ПоказатьКод(НоменклатураСсылка)
	ТекстСообщения = СтрШаблон("Код элемента: %1", СокрЛП(НоменклатураСсылка.Код));
	Сообщить(ТекстСообщения);
КонецПроцедуры

Обратите внимание на функцию СокрЛП() в примере. Строковые коды хранятся в базе с дополнением пробелами до полной длины, поэтому при выводе строкового кода без обрезки пробелов вы получите значение вида «000000123 » с хвостом из пробелов. Для числовых кодов это не требуется, но и не повредит.

Вывод кода с лидирующими нулями

Если код числовой, а вам нужно вывести его в фиксированном формате с нулями слева (например, для штрихкода или выгрузки), используйте функцию Формат() с форматной строкой. Например, Формат(КодЭлемента, "ЧЦ=9; ЧВН=; ЧГ=0") выведет число длиной девять знаков с лидирующими нулями и без разделителей групп. Проверяйте результат на реальных данных: неверная длина в форматной строке обрежет старшие разряды длинных кодов.

Как открыть и посмотреть программный код конфигурации

Третья трактовка вопроса — просмотр самого кода конфигурации. Для этого нужен режим «Конфигуратор» и права на просмотр конфигурации. Откройте конфигуратор, выполните «Конфигурация → Открыть конфигурацию», затем в дереве объектов найдите нужный объект и двойным щелчком откройте его модуль: модуль объекта, модуль формы, модуль менеджера или общий модуль.

Для поиска конкретного места в коде удобна глобальная поисковая функция: «Правка → Глобальный поиск» (Ctrl+Shift+F) ищет строку по всем модулям конфигурации. Если конфигурация находится на поддержке без возможности изменения, код всё равно доступен для просмотра — ограничение касается только редактирования.

Почему код не выводится: типичные причины

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

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

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

Проверка результата и контрольные точки

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

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

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

Колонка «Код» в списке
Норма

Колонка видна, значения заполнены и соответствуют карточкам элементов

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

Колонка пустая или исчезает после перезапуска — проверьте сохранение настроек формы

Программный вывод кода
Норма

В сообщении код без лишних пробелов и в ожидаемом формате

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

Хвостовые пробелы или обрезанные разряды — добавьте СокрЛП или скорректируйте форматную строку

Код в печатной форме
Норма

Код присутствует в нужной колонке на печати и в предпросмотре

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

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

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

Итог

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

Пользователю код выводится через «Ещё → Изменить форму» в списке или карточке, разработчику — через обращение к реквизиту «Код» ссылки и Сообщить с СокрЛП. Для печатных форм и массовых задач используйте макеты и отчёты, а доработки типовых конфигураций выполняйте расширениями после создания резервной копии.

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

Как вывести код, если в конфигураторе у объекта длина кода равна нулю?

Никак: при нулевой длине кода реквизит «Код» у объекта отсутствует, и обращение к нему вызовет ошибку. Варианты решения — увеличить длину кода в свойствах объекта (это изменение конфигурации, требует обновления структуры базы) или использовать для идентификации другой реквизит либо уникальный идентификатор.

Как найти элемент справочника, если известен только его код?

В списке справочника включите сортировку или поиск по колонке «Код». Программно используйте метод НайтиПоКоду() менеджера справочника: Справочники.Номенклатура.НайтиПоКоду("000000123"). Учитывайте, что для строковых кодов значение нужно дополнить пробелами до полной длины или искать с параметром поиска по части кода.

Почему у двух разных элементов одинаковый код и что с этим делать?

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

Как вывести код в отчёт на СКД?

В схеме компоновки данных добавьте поле «Код» в выбранные поля набора данных — для ссылочных объектов оно доступно по умолчанию. Затем в настройках отчёта перетащите поле в строки или колонки. Дополнительного программирования не требуется: платформа сама построит запрос и выведет значения.

Можно ли вывести код в печатную форму без доработки конфигурации?

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

Чем код отличается от артикула и что выводить в документы?

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