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

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

Как сделать родительный падеж в 1С: склонение ФИО и должностей

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

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

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

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

Как 1С определяет родительный падеж и что нужно заполнить

Механизм склонения в 1С опирается на три обязательных данных: фамилию, имя и отчество, а также на пол физического лица. Пол критичен: «Иванова» и «Иванов» склоняются по-разному, и если пол не указан, система либо попытается определить его по окончанию фамилии, либо вернёт строку без изменений. Поэтому первое, что нужно проверить при неверном склонении, — заполненность пола «Пол» в карточке физлица.

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

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

Родительный падеж в типовых конфигурациях без программирования

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

Для доверенностей в 1С:Бухгалтерии поле «Доверенность выдана» заполняется представлением сотрудника в дательном падеже автоматически, но его можно отредактировать вручную. Если автоматическое склонение не устраивает (редкая фамилия, иностранное имя), просто впишите правильную форму в текстовое поле — оно сохранится в документе.

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

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

Программное склонение через библиотеку стандартных подсистем

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

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

bsl
ФИОРодительный = СклонениеПредставленийОбъектов.ПросклонятьФИО("Иванова Анна Сергеевна", 2, Перечисления.ПолФизическогоЛица.Женский);
// Результат: "Ивановой Анны Сергеевны"

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

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

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

Самый хрупкий момент — вывод падежа в макете печатной формы. В макете падеж нельзя «зашить» текстом: параметр вида «[ФИОРодительный]» должен заполняться в коде формирования печатной формы вызовом функции склонения. Если дорабатываете макет, найдите процедуру заполнения параметров и добавьте туда склонение, а не пытайтесь склонять средствами языка выражений макета.

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

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

Как выбрать действие

Нужен падеж в типовом приказе или доверенностиПроверьте пол и полноту ФИО в карточке физлица — склонение сработает автоматически
Нужен падеж в доработанной печатной формеДобавьте вызов СклонениеПредставленийОбъектов.ПросклонятьФИО в код заполнения параметров макета
Склоняется сложная должность с ошибкамиЗаведите отдельный реквизит «Должность в родительном падеже» и заполняйте вручную
Конфигурация старая, БСП нетПодключите внешнюю компоненту склонения и вызывайте её метод Просклонять

Проверка результата и типичные ошибки

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

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

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

ФИО женского сотрудника в приказе
Норма

«Ивановой Анны Сергеевны»

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

«Иванова Анна Сергеевна» — не заполнен пол или инициалы в ФИО

Фамилия типа Шевченко
Норма

Форма соответствует правилам (не склоняется у женщин)

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

Алгоритм просклонял несклоняемую фамилию

Должность в договоре
Норма

«в лице генерального директора»

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

«в лице генеральный директор» — поле заполнено в именительном падеже

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

Ограничения и когда нужен ручной ввод

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

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

FAQ

Почему в приказе ФИО стоит в именительном падеже, хотя всё заполнено?

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

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

Падежи нумеруются по порядку: 1 — именительный, 2 — родительный, 3 — дательный, 4 — винительный, 5 — творительный, 6 — предложный. Для родительного падежа передаётся число 2.

Можно ли просклонять должность той же функцией, что и ФИО?

Технически можно, но результат для многословных должностей часто некорректен: функция склонения ФИО рассчитана на структуру «фамилия имя отчество». Для должностей используйте функцию склонения произвольных представлений или храните падежную форму в отдельном реквизите.

Что делать, если фамилия не склоняется или склоняется неправильно?

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

Нужно ли устанавливать что-то на компьютеры пользователей для склонения?

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

Работает ли склонение в файловой базе без сервера 1С?

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

Итог

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

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