Как вывести краткое наименование организации вместо полного в печатных формах 1С

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

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

В этой статье мы подробно разберем, как работает механизм формирования сведений об организации на примере конфигураций на обычных формах (таких как УПП 1.3, КА 1.1 или БП 2.0) и выясним, какой параметр нужно передать системе, чтобы получить желаемый результат.

Анализируем исходный код и проблему

Рассмотрим типовую ситуацию. Для получения данных об организации в коде часто используется функция СведенияОЮрФизЛице (или ее аналоги в общих модулях УправлениеКонтактнойИнформацией или ОбщегоНазначения). Эта функция принимает на вход ссылку на организацию, дату и строку с перечислением необходимых полей.

Проанализируем пример кода, вызывающий затруднения у разработчиков:


СведенияОГрузоотправителе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(
    Шапка.ЮрФизЛицо, 
    Шапка.ДатаДокумента, 
    "НаименованиеДляПечатныхФорм,ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"
);

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

Разбираем работу функции СведенияОЮрФизЛице

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

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

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

Решение проблемы: использование параметра Представление

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


// Вместо ПолноеНаименование используем Представление
СведенияОГрузоотправителе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(
    Шапка.ЮрФизЛицо, 
    Шапка.ДатаДокумента, 
    "НаименованиеДляПечатныхФорм,Представление,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"
);

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

Пошаговая инструкция по внедрению изменений

Рассмотрим процесс внесения изменений в печатную форму по шагам, чтобы ничего не упустить:

  1. Найдите место формирования структуры сведений. Обычно это происходит в модуле менеджера документа или в модуле объекта в процедуре Печать.
  2. Проверьте вызов функции. Убедитесь, что вы используете СведенияОЮрФизЛице или ОписаниеОрганизации.
  3. Замените параметры. В строке, где перечислены поля через запятую, удалите ПолноеНаименование и добавьте Представление.
  4. Скорректируйте заполнение макета. Если в коде далее идет обращение к результату функции, например:
    
    ОбластьМакета.Параметры.Грузоотправитель = СведенияОГрузоотправителе.ПолноеНаименование;
    
    его также нужно заменить на:
    
    ОбластьМакета.Параметры.Грузоотправитель = СведенияОГрузоотправителе.Представление;
    
  5. Протестируйте результат. Сформируйте печатную форму и убедитесь, что название выводится в кратком виде.

Дополнительные возможности: функция ОписаниеОрганизации

Проанализируем еще один способ, характерный для конфигураций типа УПП 1.3. Часто программисты используют «обертку» над сведениями — функцию ОписаниеОрганизации. Она удобна тем, что позволяет одной строкой получить готовое текстовое описание (Наименование + ИНН + Адрес + Телефон).

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


// Пример получения краткого описания через обертку
ТекстГрузоотправителя = ОбщегоНазначения.ОписаниеОрганизации(СведенияОГрузоотправителе, , Ложь);

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

Что делать, если Представление все равно выводит не то?

Выясним причины, по которым решение может не сработать с первого раза, и как их устранить:

Совет эксперта: Чтобы точно узнать, какие поля доступны в вашей версии конфигурации, используйте клавишу F12 (Перейти к определению), установив курсор на названии функции СведенияОЮрФизЛице. В открывшемся программном коде вы увидите текст запроса, где перечислены все допустимые псевдонимы полей.

← На главную