Как правильно просклонять ФИО и должность во внешней печатной форме 1С?

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

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

Рассмотрим по шагам, как использовать встроенные функции БСП для склонения ФИО и произвольных словосочетаний во внешних печатных формах, какие параметры необходимо передавать и на какие нюансы безопасного режима следует обратить внимание.

Универсальная функция склонения через общий модуль БСП

В типовых конфигурациях (таких как «1С:Бухгалтерия предприятия 3.0», «1С:Зарплата и управление персоналом», «1С:ERP», «1С:Управление торговлей») присутствует общий модуль СклонениеПредставленийОбъектов. Разберем базовый вариант вызова функции Просклонять:


РезультатСклонения = "";
Успешно = СклонениеПредставленийОбъектов.Просклонять(
    "Иванов Иван Иванович", 
    2, // 2 - Родительный падеж
    РезультатСклонения, 
    1  // 1 - Мужской пол
);

Если Успешно Тогда
    ФИОВПадеже = РезультатСклонения;
Иначе
    ФИОВПадеже = "Иванов Иван Иванович";
КонецЕсли;

Проанализируем параметры, которые принимает функция СклонениеПредставленийОбъектов.Просклонять:

  1. Фраза (Строка) — исходный текст в именительном падеже, который требуется просклонять (например, ФИО сотрудника).
  2. Падеж (Число) — числовой код падежа:
    1. 1 — Именительный (кто? что?)
    2. 2 — Родительный (кого? чего?)
    3. 3 — Дательный (кому? чему?)
    4. 4 — Винительный (кого? что?)
    5. 5 — Творительный (кем? чем?)
    6. 6 — Предложный (о ком? о чем?)
  3. Результат (Строка) — выходной параметр, в который функция помещает преобразованную строку. Если просклонять не удалось, возвращается исходная строка.
  4. Пол (Число, необязательный) — числовой код пола: 1 — мужской, 2 — женский. Указание пола критически важно для корректного склонения нетипичных фамилий (например, женские фамилии, оканчивающиеся на согласный звук, не склоняются, в отличие от мужских).

Разделение склонения для ФИО и должностей

В современных версиях БСП функционал разделен на специализированные методы. Для повышения надежности кода рекомендуется использовать профильные функции в зависимости от типа данных:

1. Склонение ФИО физических лиц:

Для склонения ФИО используется функция СклонениеПредставленийОбъектов.ПросклонятьФИО. Она возвращает строку с готовым результатом и может принимать ссылку на объект физического лица:


// Склонение ФИО в дательный падеж (кому?)
ФИОВДательном = СклонениеПредставленийОбъектов.ПросклонятьФИО(
    "Петрова Анна Сергеевна", 
    3, 
    СсылкаНаФизЛицо, 
    2 // Женский пол
);

2. Склонение должностей и произвольных фраз:

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


// Склонение должности в родительный падеж (кого?)
ДолжностьВРодительном = СклонениеПредставленийОбъектов.ПросклонятьПредставление(
    "Генеральный директор", 
    2
);

Учет пользовательских правок и регистр склонений

Выясним причину, почему при склонении сложных фамилий важно передавать ссылку на справочник ФизическиеЛица или Должности. В типовых решениях пользователи могут вручную скорректировать падежные формы непосредственно в карточке сотрудника или должности. Эти исправления записываются в регистр сведений СклоненияПредставленийОбъектов.

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

Особенности работы механизмов во внешних печатных формах

При интеграции склонения во внешние обработки и печатные формы необходимо учитывать технические особенности платформы 1С:

  1. Серверный контекст формирования печати: Все процедуры формирования табличных документов во внешних печатных формах выполняются на стороне сервера. Модули с постфиксом Клиент (например, СклонениеПредставленийОбъектовКлиент) на сервере недоступны. Всегда вызывайте методы серверного модуля СклонениеПредставленийОбъектов.
  2. Безопасный режим ВПФ: По умолчанию внешние печатные формы подключаются в безопасном режиме. Если в информационной базе включено склонение через внешний веб-сервис, безопасный режим заблокирует исходящий сетевой запрос, из-за чего строка останется в именительном падеже без вызова исключения. Для решения этой проблемы в справочнике «Дополнительные отчеты и обработки» для данной ВПФ следует отключить безопасный режим или настроить соответствующие разрешения в профиле безопасности.
  3. Использование в офисных шаблонах (DOCX/ODT): Если печатная форма строится на основе шаблонов Microsoft Word или OpenOffice с использованием механизма «Управление печатью», можно подключить автосклонение для всех полей макета вызовом метода СклонениеПредставленийОбъектов.ПодключитьИсточникДанныхПечатиСклоненияСтрок(ИсточникиДанныхПечати).
← На главную