Как вывести код организации на форму в 1С:ERP и как правильно искать элемент в коде

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

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

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

Почему кода нет на форме и его нельзя вывести

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

В типовых конфигурациях, таких как 1С:ERP Управление предприятием, 1С:Комплексная автоматизация и 1С:Управление торговлей, длина реквизита Код для справочника Организации на уровне метаданных изначально установлена равной 0. Это означает следующее:

  1. Физически поля Код в таблице базы данных для организаций не существует.
  2. Попытка вывода элемента через команду Еще — Изменить форму не даст результата, так как реквизит отсутствует в составе доступных полей объекта.
  3. Программно вызывать свойство Объект.Код бессмысленно — конфигурация выдаст ошибку отсутствия реквизита.

Как правильно обращаться к организации из кода 1С

Поиск элемента справочника по наименованию (особенно если оно содержит кавычки или специальное форматирование) считается ненадежным решением. Разберем основные альтернативные способы программного получения ссылки на организацию.

Способ 1. Использование константы или настройки системы

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

Проанализируем пример получения ссылки из константы:


НашаОрганизация = Константы.ОсновнаяОрганизация.Получить();
Если ЗначениеЗаполнено(НашаОрганизация) Тогда
    // Выполняем необходимые действия с объектом
КонецЕсли;

Способ 2. Поиск организации по ИНН и КПП

Если необходимо найти конкретное юридическое лицо программно, надежнее всего ориентироваться на уникальные комбинации реквизитов ИНН и КПП.

Рассмотрим пример поиска организации с помощью языка запросов 1С:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ Первые 1
    |	Организации.Ссылка КАК Ссылка
    |ИЗ
    |	Справочник.Организации КАК Организации
    |ГДЕ
    |	Организации.ИНН = &ИНН
    |	И Организации.КПП = &КПП";

Запрос.УстановитьПараметр("ИНН", "7700000000");
Запрос.УстановитьПараметр("КПП", "770101001");

РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.Следующий();
    ОрганизацияСсылка = Выборка.Ссылка;
КонецЕсли;

Способ 3. Получение ссылки по Уникальному Идентификатору (UUID)

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

Получить UUID элемента можно в режиме «1С:Предприятие» несколькими путями:

  1. Скопировать навигационную ссылку элемента через системное меню (команда Получить ссылку) и извлечь из нее GUID.
  2. Воспользоваться обработкой Групповое изменение реквизитов или внешними консолями запросов.

Посмотрим на пример применения UUID в программном коде:


Идентификатор = Новый УникальныйИдентификатор("e1cib/data/Справочник.Организации?ref=80c100155d03010311e4f3c7d6051234");
// Или непосредственно строка GUID:
Идентификатор = Новый УникальныйИдентификатор("a3b2c1d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d");

ОрганизацияСсылка = Справочники.Организации.ПолучитьСсылку(Идентификатор);

Таким образом, отсутствие кода у организаций в 1С:ERP является штатным поведением системы, а использование ИНН/КПП, констант или UUID позволяет эффективно решать задачи отбора объектов без поиска по нестабильным строковым наименованиям.

← На главную