К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как просклонять ФИО и другие данные в 1С

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

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

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

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

Где в 1С находится механизм склонения

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

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

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

Как просклонять ФИО в коде 1С

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

Результат = СклонениеПредставленийОбъектов.ПросклонятьФИО(

"Иванова Анна Сергеевна", 2);

// Результат: "Ивановой Анны Сергеевны"

Номера падежей: 1 — именительный, 2 — родительский, 3 — дательный, 4 — винительный, 5 — творительный, 6 — предложный. Третьим параметром можно передать пол (1 — мужской, 2 — женский); если пол не указан, механизм определит его по отчеству или окончанию фамилии.

В ЗУП удобнее использовать ФизическиеЛицаЗарплатаКадры.ПросклонятьФИО, потому что там пол физлица уже хранится в базе и подставляется автоматически. Это снижает риск ошибок с фамилиями, которые не склоняются у женщин и склоняются у мужчин (например, «Коваль», «Седых»).

Порядок действий для склонения ФИО
  1. 1
    Убедитесь, что в конфигурации есть общий модуль СклонениеПредставленийОбъектов
  2. 2
    Получите строку ФИО полностью — фамилия, имя, отчество через пробел
  3. 3
    Вызовите ПросклонятьФИО с нужным номером падежа и полом
  4. 4
    Подставьте результат в текст печатной формы или параметр макета
  5. 5
    Проверьте результат на 2–3 реальных сотрудниках с разными типами фамилий

Как просклонять должность и подразделение

Должности и подразделения склоняются отдельной функцией ПросклонятьПредставление того же модуля. Она работает с произвольной строкой, но без учёта пола, поэтому подходит для названий: «директор по производству» → «директора по производству».

ДолжностьРП = СклонениеПредставленийОбъектов.ПросклонятьПредставление(

"Главный бухгалтер", 2);

// Результат: "Главного бухгалтера"

Учитывайте, что механизм склоняет каждое слово по общим правилам. Составные должности с аббревиатурами, цифрами или иностранными словами («HR-менеджер», «инженер 1 категории») могут склоняться некорректно. В таких случаях надёжнее хранить готовые падежные формы в дополнительных реквизитах справочника «Должности» и подставлять их в шаблон.

Склонение в печатных формах и макетах

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

Типовой приём — подготовить структуру с падежными формами один раз и передавать её в область макета. Это удобно, когда одно и то же ФИО встречается в документе в нескольких падежах: в преамбуле — родительный, в подписи — именительный.

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

Перед выводом в печать проверяйте склонение на сотрудниках с фамилиями на -их, -ых (Седых, Долгих), на -о (Шевченко) и с редкими отчествами. Именно на таких данных алгоритм чаще всего даёт неверный результат, и ошибку проще поймать до подписания документа.
ПЗ
Практическое замечание

Типичные ошибки и ограничения

Самая частая проблема — неверное определение пола. Фамилии славянского типа («Ковальчук», «Гончар») у мужчин склоняются, у женщин — нет. Если пол не передан и не определяется по отчеству, результат может быть неправильным. Всегда передавайте пол явно, если он известен.

Вторая проблема — передача ФИО в неправильном формате: инициалы впереди («И.И. Иванов»), лишние пробелы, ФИО целиком в верхнем регистре. Механизм ожидает «Фамилия Имя Отчество» в обычном регистре. Перед склонением нормализуйте строку функцией ТРег и уберите лишние пробелы.

Третья группа ошибок — попытка просклонять уже просклонённую строку. Если в базе ФИО хранится в дательном падеже, повторное склонение даст искажённый результат. Исходные данные для склонения всегда должны быть в именительном падеже.

Типичные ошибки
01
Не передан пол — фамилия «Седых» склонена у женщины, хотя не должна
02
Склонение строки с инициалами вместо полного ФИО — результат обрезан или искажён
03
Повторное склонение уже просклонённой строки — двойное окончание
04
Склонение должности с аббревиатурой — «HR-менеджера» превращается в бессмыслицу
05
Отсутствие проверки результата на печатной форме до вывода в документ

Что делать, если типового механизма нет

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

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

Маршрут решения

Как выбрать способ склонения

Конфигурация на базе БСП (УТ, ERP, БП, ЗУП)Используйте СклонениеПредставленийОбъектов.ПросклонятьФИО с передачей пола
Конфигурация ЗУП и есть ссылка на физлицоВызывайте ФизическиеЛицаЗарплатаКадры.ПросклонятьФИО — пол подставится из базы
Самописная конфигурация без БСППеренесите подсистему склонения из БСП через объединение конфигураций
Нужно склонять редкие должности с аббревиатурамиХраните готовые падежные формы в дополнительных реквизитах справочника

Как проверить результат склонения

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

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

Контрольные точки

Как проверить результат

Форма родительного падежа ФИО
Норма

«Ивановой Анны Сергеевны» — окончания соответствуют полу

Тревожный признак

«Иванова Анны Сергеевны» у женщины или «Ивановой Ивана» у мужчины

Фамилия на -ко, -ых
Норма

Форма не меняется: «для Шевченко», «для Седых»

Тревожный признак

Появляется окончание: «Шевченки», «Седыха»

Должность в печатной форме
Норма

Все слова согласованы: «главного бухгалтера»

Тревожный признак

Часть слов не просклонена или аббревиатура искажена

Итог

Что важно запомнить

В типовых 1С склонение выполняет модуль СклонениеПредставленийОбъектов: ПросклонятьФИО для ФИО и ПросклонятьПредставление для должностей. Передавайте пол явно, подавайте строку в именительном падеже и полном формате, а критичные формы проверяйте на контрольном наборе фамилий перед выводом в документы.

Частые вопросы

Какие номера падежей используются в функции склонения?

Нумерация стандартная: 1 — именительный, 2 — родительный, 3 — дательный, 4 — винительный, 5 — творительный, 6 — предложный. Для большинства кадровых документов нужны падежи 2 (кому выдано) и 3 (кому поручено).

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

Чаще всего не передан пол, а механизм определил его неверно. Передайте пол явным параметром или используйте функцию ЗУП, которая берёт пол из карточки физлица. Также проверьте, нет ли в строке инициалов вместо полного имени.

Можно ли просклонять ФИО в запросе 1С?

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

Работает ли склонение на сервере Linux?

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

Как просклонять двойную фамилию, например Салтыков-Щедрин?

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