Как изменить синоним стандартного реквизита (Наименование, Номер, Дата) в 1С:Предприятие 8?

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

При разработке конфигураций на платформе «1С:Предприятие 8» часто возникает задача изменить стандартные названия полей, которые платформа создает автоматически. Например, вместо стандартного Наименование в справочнике «Товары» может потребоваться отображать «Артикул и название», а в документах заменить Номер на «Внутренний ID». Ситуация усложняется, если необходимо задать эти значения для языка, который изначально не представлен в платформе. В данной статье мы подробно разберем, как управлять синонимами стандартных реквизитов на уровне метаданных, программно и в рамках системы компоновки данных.

Способ 1. Редактирование стандартных реквизитов в метаданных

Многие начинающие разработчики ищут стандартные реквизиты (такие как Дата, Номер, Наименование, Код, Проведен, ПометкаУдаления) в общем списке реквизитов объекта, но не находят их там. Это происходит потому, что данные поля встроены в ядро платформы. Однако доступ к их свойствам, включая синонимы, все же существует.

Проанализируем шаги для изменения синонима в конфигураторе (для глубокого изучения структуры полезен анализ структуры метаданных):

  1. Откроем окно редактирования нужного объекта (например, Справочника или Документа).
  2. Перейдем на вкладку Данные.
  3. В нижней части окна найдем кнопку Стандартные реквизиты.
  4. В открывшемся списке выберем интересующий нас реквизит (например, Наименование).
  5. Нажмем правую кнопку мыши и выберем «Свойства» или просто обратим внимание на поле Синоним в правой части экрана.

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

Способ 2. Работа с языками, отсутствующими в платформе

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

Разберем последовательность действий по добавлению нового языка:

  1. В дереве метаданных перейдем в раздел Общие -> Языки.
  2. Добавим новый объект типа Язык. В поле «Имя» укажем краткий код (например, en_custom или suah), а в поле «Синоним» — понятное название.
  3. Теперь вернемся к редактированию стандартных реквизитов (как описано в Способе 1).
  4. Нажав на кнопку выбора (три точки) в поле Синоним, мы увидим таблицу со списком всех языков, добавленных в конфигурацию. Здесь можно прописать перевод для каждого языка отдельно.

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

Способ 3. Программное изменение заголовка на форме

Иногда изменение синонима в метаданных является избыточным или невозможным (например, если в разных формах одного и того же справочника поле Наименование должно называться по-разному). В этом случае мы можем прибегнуть к программному управлению элементами формы.

Рассмотрим пример кода, который изменяет заголовок поля при создании формы на сервере. Выясним причину использования именно этого метода: он позволяет динамически подставлять значения из констант, параметров сеанса или внешних словарей (также доступно добавление реквизитов и элементов формы без кодирования).


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Изменяем заголовок стандартного реквизита "Наименование"
    Элементы.Наименование.Заголовок = "Специальное название для этой формы";
    
    // Если нужно учесть язык пользователя программно
    Если ПараметрыСеанса.ТекущийЯзык = "Английский" Тогда
        Элементы.Номер.Заголовок = "Serial Number";
    КонецЕсли;
КонецПроцедуры

Использование свойства Заголовок у элемента формы Элементы — это самый гибкий способ визуальной подстройки интерфейса «на лету» (похожие задачи решает редактор форм в режиме предприятия).

Способ 4. Использование функции НСтр() для мультиязычности

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

Проанализируем структуру строки в НСтр():


// Пример использования в коде
ТекстЗаголовка = НСтр("ru='Наименование'; en='Description'; custom='MyLabel'");
Элементы.Наименование.Заголовок = ТекстЗаголовка;

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

Способ 5. Переопределение заголовков в СКД (Отчеты)

Часто вопрос о синонимах стандартных реквизитов возникает при построении отчетов. Если в метаданных реквизит называется Дата, а в конкретном отчете его нужно вывести как «Дата совершения операции», менять синоним во всей конфигурации не стоит.

Посмотрим, как это решается в Системе компоновки данных (СКД):

  1. Откроем схему компоновки данных.
  2. На закладке Наборы данных выделим наше поле (например, Ссылка.Код).
  3. В колонке Заголовок введем нужное нам название.

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

Важные ограничения и технические нюансы

При работе с синонимами стандартных реквизитов важно помнить о следующих правилах:

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

← На главную