Разработка и Конфигурация · 10 мин
Как в 1С вывести код: инструкция для пользователя и разработчика
Как в 1С вывести код элемента справочника, документа или строки сообщения. Настройка отображения кода в списках, вывод через Сообщить и СокрЛП, типичные ошибки.
Под фразой «вывести код в 1С» обычно скрывается одна из трёх задач: показать код элемента справочника или документа в списке и на форме, вывести программный код в сообщение или отчёт при разработке, либо найти и посмотреть сам код конфигурации. Каждая задача решается своими инструментами, и путать их не стоит: пользователю достаточно настроек списка, а разработчику понадобятся методы встроенного языка.
Код в 1С — это не только текст программы. У большинства объектов (справочников, документов, планов счетов) есть реквизит «Код», который платформа заполняет автоматически при записи. Именно его чаще всего требуется увидеть: например, чтобы назвать контрагенту его код для поиска в другой базе или чтобы сопоставить элементы при обмене данными.
Ниже разобраны оба сценария: работа в режиме «Предприятие» без изменения конфигурации и программный вывод кода в режиме «Конфигуратор». Отдельно рассмотрены типичные ошибки, из-за которых код «не выводится» или выводится с лишними пробелами.
Что означает «код» в 1С и где он хранится
У каждого объекта ссылочного типа — справочника, документа, плана видов характеристик, плана счетов — есть стандартный реквизит «Код». Он заполняется автоматически при записи нового элемента, если для объекта включена автонумерация. Код может быть числовым или строковым, а его длина задаётся в конфигураторе в свойствах объекта.
Важно понимать разницу между кодом и внутренним идентификатором. Код виден пользователю и может повторяться в разных базах, а уникальный идентификатор (GUID) — это служебное значение, по которому платформа однозначно различает объекты. Для обмена между базами надёжнее использовать именно идентификатор, но для повседневной работы пользователей достаточно кода.
Как вывести код в списке справочника или документов
Самый частый пользовательский сценарий — колонка «Код» не видна в списке номенклатуры, контрагентов или другого справочника. В типовых конфигурациях на управляемых формах колонка часто скрыта настройками формы, и её можно вернуть без программирования.
Откройте нужный список, нажмите кнопку «Ещё» и выберите пункт «Изменить форму». В появившемся окне найдите в дереве элементов строку «Код» и установите рядом с ней флажок. После нажатия «ОК» колонка появится в таблице. Порядок колонок меняется перетаскиванием элементов в том же окне настройки.
- 1Откройте список справочника или документов
- 2Нажмите «Ещё» и выберите «Изменить форму»
- 3Найдите в дереве элемент «Код» и поставьте флажок
- 4Нажмите «ОК» и проверьте, что колонка появилась
- 5При необходимости настройте сортировку по коду через «Ещё → Настроить список»
Если пункта «Изменить форму» нет в меню «Ещё», значит, у вашей роли нет права на изменение форм либо форма списка жёстко задана разработчиком. В этом случае обратитесь к администратору или используйте обходной путь: откройте карточку элемента — код обычно отображается в её шапке рядом с наименованием.
Как вывести код в карточке объекта и в печатной форме
В карточке элемента код обычно присутствует по умолчанию, но может быть скрыт тем же механизмом настройки формы: «Ещё → Изменить форму» прямо из открытой карточки. Найдите поле «Код» в дереве элементов и включите его отображение.
С печатными формами сложнее: стандартная настройка формы на них не влияет. Если код номенклатуры нужен в счёте или накладной, а макет его не выводит, потребуется доработка макета печатной формы. В типовых конфигурациях часть печатных форм поддерживает выбор дополнительной колонки (код или артикул) в настройках печати — проверьте параметры перед печатью. Если такой настройки нет, задача относится к разработке: в макет добавляется параметр, а в модуль менеджера объекта — код его заполнения.
Как программно вывести код через встроенный язык
Для разработчика вывод кода — базовая операция. Получить код элемента можно через точку от ссылки или объекта: КодЭлемента = СправочникСсылка.Код;. Обращение к реквизитам через ссылку выполняется без явного получения объекта, что быстрее и безопаснее для блокировок.
Вывести значение пользователю проще всего методом Сообщить() или через объект СообщениеПользователю, который позволяет привязать сообщение к полю формы. Для вывода в отчёт на СКД код просто добавляется как поле в набор данных — платформа сама разместит его в макете.
Процедура ПоказатьКод(НоменклатураСсылка)
ТекстСообщения = СтрШаблон("Код элемента: %1", СокрЛП(НоменклатураСсылка.Код));
Сообщить(ТекстСообщения);
КонецПроцедурыОбратите внимание на функцию СокрЛП() в примере. Строковые коды хранятся в базе с дополнением пробелами до полной длины, поэтому при выводе строкового кода без обрезки пробелов вы получите значение вида «000000123 » с хвостом из пробелов. Для числовых кодов это не требуется, но и не повредит.
Вывод кода с лидирующими нулями
Если код числовой, а вам нужно вывести его в фиксированном формате с нулями слева (например, для штрихкода или выгрузки), используйте функцию Формат() с форматной строкой. Например, Формат(КодЭлемента, "ЧЦ=9; ЧВН=; ЧГ=0") выведет число длиной девять знаков с лидирующими нулями и без разделителей групп. Проверяйте результат на реальных данных: неверная длина в форматной строке обрежет старшие разряды длинных кодов.
Как открыть и посмотреть программный код конфигурации
Третья трактовка вопроса — просмотр самого кода конфигурации. Для этого нужен режим «Конфигуратор» и права на просмотр конфигурации. Откройте конфигуратор, выполните «Конфигурация → Открыть конфигурацию», затем в дереве объектов найдите нужный объект и двойным щелчком откройте его модуль: модуль объекта, модуль формы, модуль менеджера или общий модуль.
Для поиска конкретного места в коде удобна глобальная поисковая функция: «Правка → Глобальный поиск» (Ctrl+Shift+F) ищет строку по всем модулям конфигурации. Если конфигурация находится на поддержке без возможности изменения, код всё равно доступен для просмотра — ограничение касается только редактирования.
Почему код не выводится: типичные причины
Если код не отображается, причина обычно одна из немногих. В списке — скрытая настройками колонка, решается через «Изменить форму». В карточке — то же самое или нестандартная форма, где поле кода разработчик не разместил вовсе. Программно — попытка прочитать код у объекта, для которого длина кода установлена в ноль: в этом случае реквизит «Код» у объекта отсутствует как таковой.
Отдельная ситуация — дубли кодов. Если автонумерация отключена или коды вводятся вручную, в базе могут появиться элементы с одинаковыми кодами, и поиск по коду будет возвращать не тот элемент. Проверить это можно запросом с группировкой по коду и подсчётом количества ссылок.
Проверка результата и контрольные точки
После настройки отображения убедитесь, что колонка кода появилась у всех пользователей, которым она нужна: настройки формы персональные, и включённая вами колонка не появится у коллег автоматически. Для централизованной настройки формы администратор может скопировать настройки через механизм копирования настроек пользователей.
Как проверить результат
Колонка видна, значения заполнены и соответствуют карточкам элементов
Колонка пустая или исчезает после перезапуска — проверьте сохранение настроек формы
В сообщении код без лишних пробелов и в ожидаемом формате
Хвостовые пробелы или обрезанные разряды — добавьте СокрЛП или скорректируйте форматную строку
Код присутствует в нужной колонке на печати и в предпросмотре
Поле пустое — параметр не заполняется в модуле печати, требуется доработка
Если код нужен регулярно и массово — например, для сверки справочников между базами — не выводите его вручную по одному элементу. Сделайте отчёт на СКД или консольный запрос с выводом кода, наименования и идентификатора: такая выборка за секунды даст полную картину и позволит выгрузить данные в таблицу.
Что важно запомнить
Пользователю код выводится через «Ещё → Изменить форму» в списке или карточке, разработчику — через обращение к реквизиту «Код» ссылки и Сообщить с СокрЛП. Для печатных форм и массовых задач используйте макеты и отчёты, а доработки типовых конфигураций выполняйте расширениями после создания резервной копии.
Частые вопросы
Как вывести код, если в конфигураторе у объекта длина кода равна нулю?
Никак: при нулевой длине кода реквизит «Код» у объекта отсутствует, и обращение к нему вызовет ошибку. Варианты решения — увеличить длину кода в свойствах объекта (это изменение конфигурации, требует обновления структуры базы) или использовать для идентификации другой реквизит либо уникальный идентификатор.
Как найти элемент справочника, если известен только его код?
В списке справочника включите сортировку или поиск по колонке «Код». Программно используйте метод НайтиПоКоду() менеджера справочника: Справочники.Номенклатура.НайтиПоКоду("000000123"). Учитывайте, что для строковых кодов значение нужно дополнить пробелами до полной длины или искать с параметром поиска по части кода.
Почему у двух разных элементов одинаковый код и что с этим делать?
Это происходит при отключённой автонумерации, ручном вводе кодов или некорректной загрузке данных. Платформа допускает дубли кодов, если не включён контроль уникальности. Найдите дубли запросом с группировкой по коду, затем перенумеруйте элементы вручную или обработкой, предварительно проверив, не используется ли код во внешних системах и документах.
Как вывести код в отчёт на СКД?
В схеме компоновки данных добавьте поле «Код» в выбранные поля набора данных — для ссылочных объектов оно доступно по умолчанию. Затем в настройках отчёта перетащите поле в строки или колонки. Дополнительного программирования не требуется: платформа сама построит запрос и выведет значения.
Можно ли вывести код в печатную форму без доработки конфигурации?
Иногда да: часть типовых печатных форм имеет настройку дополнительной колонки, где можно выбрать вывод кода или артикула. Проверьте параметры печати в форме документа. Если настройки нет, без изменения макета не обойтись — безопасный путь это расширение конфигурации, а не прямая правка типового макета.
Чем код отличается от артикула и что выводить в документы?
Код — служебный реквизит платформы, заполняется автоматически и нужен в основном для внутреннего учёта и обменов. Артикул — прикладной реквизит, который задаёт пользователь и который понятен поставщикам и покупателям. В документы для контрагентов обычно выводят артикул, а код оставляют для внутренних нужд.