При разработке внешних печатных форм (ВПФ) для конфигураций на базе «1С:Предприятие 8.3» разработчики часто сталкиваются с необходимостью выводить фамилию, имя, отчество ответственных лиц или наименования должностей в косвенных падежах (например, в дательном или родительном падеже для договоров, приказов и актов). Писать собственный алгоритм склонения с нуля не требуется: в состав «Библиотеки стандартных подсистем» (БСП) входит готовый механизм склонения представлений объектов.
Рассмотрим по шагам, как использовать встроенные функции БСП для склонения ФИО и произвольных словосочетаний во внешних печатных формах, какие параметры необходимо передавать и на какие нюансы безопасного режима следует обратить внимание.
В типовых конфигурациях (таких как «1С:Бухгалтерия предприятия 3.0», «1С:Зарплата и управление персоналом», «1С:ERP», «1С:Управление торговлей») присутствует общий модуль СклонениеПредставленийОбъектов. Разберем базовый вариант вызова функции Просклонять:
РезультатСклонения = "";
Успешно = СклонениеПредставленийОбъектов.Просклонять(
"Иванов Иван Иванович",
2, // 2 - Родительный падеж
РезультатСклонения,
1 // 1 - Мужской пол
);
Если Успешно Тогда
ФИОВПадеже = РезультатСклонения;
Иначе
ФИОВПадеже = "Иванов Иван Иванович";
КонецЕсли;
Проанализируем параметры, которые принимает функция СклонениеПредставленийОбъектов.Просклонять:
В современных версиях БСП функционал разделен на специализированные методы. Для повышения надежности кода рекомендуется использовать профильные функции в зависимости от типа данных:
1. Склонение ФИО физических лиц:
Для склонения ФИО используется функция СклонениеПредставленийОбъектов.ПросклонятьФИО. Она возвращает строку с готовым результатом и может принимать ссылку на объект физического лица:
// Склонение ФИО в дательный падеж (кому?)
ФИОВДательном = СклонениеПредставленийОбъектов.ПросклонятьФИО(
"Петрова Анна Сергеевна",
3,
СсылкаНаФизЛицо,
2 // Женский пол
);
2. Склонение должностей и произвольных фраз:
Для наименований должностей, подразделений или названий контрагентов предназначена функция СклонениеПредставленийОбъектов.ПросклонятьПредставление:
// Склонение должности в родительный падеж (кого?)
ДолжностьВРодительном = СклонениеПредставленийОбъектов.ПросклонятьПредставление(
"Генеральный директор",
2
);
Выясним причину, почему при склонении сложных фамилий важно передавать ссылку на справочник ФизическиеЛица или Должности. В типовых решениях пользователи могут вручную скорректировать падежные формы непосредственно в карточке сотрудника или должности. Эти исправления записываются в регистр сведений СклоненияПредставленийОбъектов.
Если передать в метод только текстовую строку, система будет выполнять расчет по общим правилам языка и проигнорирует ручные правки пользователя. При передаче ссылки на объект алгоритм сначала проверяет наличие сохраненной формы в регистре и возвращает именно ее.
При интеграции склонения во внешние обработки и печатные формы необходимо учитывать технические особенности платформы 1С:
Клиент (например, СклонениеПредставленийОбъектовКлиент) на сервере недоступны. Всегда вызывайте методы серверного модуля СклонениеПредставленийОбъектов.СклонениеПредставленийОбъектов.ПодключитьИсточникДанныхПечатиСклоненияСтрок(ИсточникиДанныхПечати).