- Иванов, Иванова, Иванову… Использование подсистемы «Склонение представлений объектов»
- Проверка подключенности справочника к подсистеме «Склонение представлений объектов».
- Использование подсистемы «Склонение представлений объектов».
- Библиотека стандартных подсистем 1С 8.3. Склонение представлений объектов
- В пользовательском режиме
- В конфигураторе
- Добавление автоматического склонения для нового объекта
- Склонение в 1С
- 1. Библиотека стандартных подсистем
- 2. Внутренние механизмы платформы
- 2.1 Склонение в 1С
- 2.2 Склонение количественных и порядковых числительных
- 2.3 Представление числа в 1С
- 2.4 Склонение единиц измерения
- 2.5 Сложные словосочетания примеры
- Склонение представлений объектов в ЗУП 3.1 — как это работает?
- Что склоняется?
- Как просклонять имя?
- Как это работает?
- Программный вызов функции склонения объектов
- Несколько слов в заключение
Иванов, Иванова, Иванову… Использование подсистемы «Склонение представлений объектов»
Основы русского языка закладывали наши далекие предки: поэты и крестьяне, купцы и воины, ремесленники, дворяне и прочая интеллигенция. Одна беда – программистов среди них было маловато, представителей, так сказать, информационного фронта.
Поэтому в русском языке активно используются склонения, спряжения, изменения по временам и родам. Это прекрасно с точки зрения однозначности толкования каждой фразы, когда сразу видно: кто, что и с кем сделал, и к чему это привело. Но это же и вызывает определенные трудности при автоматизации и создании универсальных форм документооборота и отчетности.
Сравните два фрагмента печатных форм расходных кассовых ордеров на картинках ниже.
На первой деньги выдаются юридическому лицу.
А на второй – физическому лицу:
Из этих форм понятно, что 50 000 рублей досталось ЗАО «Торговый дом Комплексный», а счастливый обладатель 5 000 рублей – Ковальков Николай Федорович.
Но как-то не по-русски достались эти деньги нашему физическому лицу. Вот если бы в документе было написано «Выдать Ковалькову Николаю Федоровичу&ra quo;, то и Пушкин с Горьким ничего против такого документа не имели бы.
Знающий пользователь 1С наверняка уже сообразил, в чем дело. Да, при оформлении документа второпях не обратили внимания на то, как заполнен реквизит «Выдано».
А ведь именно для возможности указания получателя в дательном падеже хитрые программисты и сделали этот явно избыточный реквизит в документе. Логика их была проста: чтобы не мучиться с автоматическим склонением в программе – нужно переложить ответственность на пользователя. Почему – мучиться? А вспомните: Ковалькову, но Ковальковой; Белыху, но Татьяне Белых; и апофеоз: если именительный падеж «Валериу Сикнану», то — каким будет дательный?
Вот и стонут тысячи не очерствевших душою бухгалтеров, оформляя документы кассовые, да и прочие договора с доверенностями. Звонят в особо сложных случаях (Ойра-Ойра Роман Петрович) по коллегам, да знакомым филологам. Спорят, ссорятся, поминая Ожегова.
Да даже и в простых случаях – склонение требует секунд на внесение изменений в реквизит, автоматически заполняемый именительным падежом из наименования справочника физлиц.
А о секундах, как известно, свысока думать не стоит. Тем более что в Библиотеке Стандартных Подсистем, на основе которой строятся все современные типовые решения, появилась очень интересная подсистема «Склонение представлений объектов».
Попробуем ее использовать.
А что для этого надо?
Во-первых, убедиться, что наш справочник «Физические лица» подключен к подсистеме.
Во-вторых, заставить программу ее использовать в нужный нам момент.
Проверка подключенности справочника к подсистеме «Склонение представлений объектов».
Зайдите в пользовательском режиме в форму любого элемента справочника «Физические лица».
Обратите внимание – возле реквизита ФИО (а на самом деле – это Наименование элемента) есть гиперссылка «Склонение»:
Нажмем ее – открывается форма автоматического склонения нашего ФИО по падежам.
Открывается эта форма для того, что бы в сложной ситуации мы могли подправить программу и потом сохранить правильный вариант. В большинстве же случаев варианты, формируемые «на лету» вполне соответствуют правилам литературного русского языка (все-таки Ойре-Ойре Роману Петровичу).
Кстати, подсистема устроена так, что даже если бы мы не вошли в эту форму – склонения по падежам системой для наименования уже были бы произведены. Достаточно того, что справочник «Физические лица» к подсистеме подключен.
Мы приходили сюда – просто, чтобы в этом убедиться.
Использование подсистемы «Склонение представлений объектов».
Вершиной и целью существования подсистемы являются две функции общего модуля «СклонениеПредставленийОбъектов». Они расположены в самом верху общего модуля и называются «ПросклонятьФИО» и «ПросклонятьПредставление».
Вчитавшись в описание функций в самом общем модуле – легко понять, как именно к ним обращаться.
Ну и в качестве примера использования подсистемы – давайте все же решим задачу, с которой начиналась наша статья.
Сам процесс решения подробно демонстрируется в следующем ролике:
Источник
Библиотека стандартных подсистем 1С 8.3. Склонение представлений объектов
Рассмотрена подсистема Склонение представлений объектов из библиотеки стандартных подсистем (БСП) 3.1.3.
Примеры приведены на конфигурации Зарплата и управление персоналом 3.1.17.
В пользовательском режиме
Из карточки объекта склонения, например физического лица, по кнопке Склонения можно открыть форму с результатами склонения:
При необходимости можно изменить результат склонения вручную. Результат склонения сохраняется в регистре сведений Склонения представлений объектов.
Склонение выполняется с помощью метода платформы ПолучитьСклоненияСтроки (в старых версиях выполнялось с помощью внешней компоненты). Если результат склонения не устраивает, то в разделе Администрирование -> Интернет-поддержка и сервисы -> Склонения представлений объектов можно включить использование сервиса Морфер:
В конфигураторе
Добавление автоматического склонения для нового объекта
На примере справочника Контрагенты:
- В определяемый тип ОбъектСклонения добавить тип справочник Контрагенты
- В форме элемента в обработчик ПриСозданииНаСервере добавить код:
Источник
Склонение в 1С
1. Библиотека стандартных подсистем
В состав актуальных типовых конфигураций входит подсистема «Склонение представлений объектов» Библиотеки стандартных подсистем в 1С (БСП), основное назначение: склонение ФИО в 1С, должностей и прочих наименований (например, номенклатуры).
Состав объектов подсистемы представлен на рисунке:
Рисунок 1. Состав объектов подсистемы (БСП v3.1)
Рассмотрим подробнее, как устроен данный механизм.
Объекты метаданных, для которых доступен механизм склонения, перечислены в свойстве Тип определяемого типа ОбъектСклонения. В демонстрационной конфигурации БСП 8.3 определены следующие типы:
Рисунок 2. Типы объектов склонения
1) Во всех формах элементов, для которых встраивается склонение, в обработчике ПриСозданииНаСервере добавлен фрагмент кода:
Рисунок 3. Фрагмент кода в обработчике ПриСозданииНаСервере
В параметре Представление указывается реквизит, который должен склоняться.
2) Во всех формах элементов, для которых встраивается склонение, в обработчике ПриЗаписиНаСервере добавлен фрагмент кода:
Рисунок 4. Фрагмент кода в обработчике ПриЗаписиНаСервере
В параметре Представление указывается реквизит, который должен склоняться.
В параметре ПараметрыСклонения необязательно передается структура дополнительных параметров склонения. Для конструирования структуры используется функция ПараметрыСклонения общего модуля СклонениеПредставленийОбъектовКлиентСервер.
3) Во всех формах элементов, для которых встраивается склонение, рядом с реквизитом, который необходимо просклонять, добавлена команда в виде гиперссылки с названием Склонения. Обработчик команды:
Рисунок 5. Фрагмент кода команды Склонения
В параметре Представление указывается реквизит, который должен склоняться.
В параметре ПараметрыСклонения не обязательно передается структура дополнительных параметров склонения. Для конструирования структуры используется функция ПараметрыСклонения общего модуля СклонениеПредставленийОбъектовКлиентСервер.
4) Во всех формах элементов, для которых встраивается склонение, в обработчике ПриИзменении реквизита, который должен склоняться, добавлен фрагмент кода:
Рисунок 6. Фрагмент кода в обработчике ПриИзменении
В параметре Представление указывается реквизит, который должен склоняться.
В параметре ПараметрыСклонения не обязательно передается структура дополнительных параметров склонения. Для конструирования структуры используется функция ПараметрыСклонения общего модуля СклонениеПредставленийОбъектовКлиентСервер.
Результат склонения записывается в регистр сведений «Склонения представлений объектов». Состав регистра представлен на рисунке:
Рисунок 7. Состав регистра «Склонения представлений объектов»
Измерение ХешПредставления содержит строковый результат вычисления переданного значения Представление по алгоритму MD5, а измерение Объект – значение определяемого типа ОбъектСклонения.
При обращении к методу склонения в 1С первым делом проверяется наличие результата в регистре сведений «Склонения представлений объектов». А склонение выполняется только при отсутствии записи или при вызове специального метода повторного заполнения.
Само же склонение в 1С 8.3 выполняется одним из способов, указанным в настройках подсистемы: через сторонний сервис «Морфер» или внутренний механизм платформы. Метод ПолучитьСклоненияСтроки() — доступен, начиная с версии платформы 8.3.13.
Настройка сервиса «Морфер» осуществляется в разделе «Администрирование – Интернет-поддержка и сервисы – Склонения представлений объектов»:
Рисунок 8. Настройка сервиса «Морфер»
При использовании сервиса рекомендуется выполнить регистрацию и в параметрах указать Токен, генерируемый в личном кабинете. Но стоит иметь в виду, что бесплатный вариант использования сервиса ограничен максимум 100 запросами в сутки.
Внутренний механизм платформы также выполняет склонение в 1С достаточно хорошо и может быть достойной альтернативой платному сервису.
2. Внутренние механизмы платформы
Начиная с версии платформы 8.3.13 был реализован метод ПолучитьСклоненияСтроки().
Указанный метод позволяет правильно «склонять» несклоняемые фамилии. Также он отлично справляется со сложными и иностранными именами. В особо сложных случаях есть возможность дополнительно указать, какой род следует использовать. Метод без ошибок обрабатывает следующие грамматические правила:
· склонение мужских имен, оканчивающихся на гласную;
· склонение женские имен, оканчивающихся на некоторые гласные;
· склонение только второй компоненты в двойных именах;
· склонение фамилий, оканчивающихся на согласный.
Начиная с версии платформы 8.3.14.1565 был добавлен новый метод ПолучитьСклоненияСтрокиПоЧислу(), позволяющий выводить согласованные с числительными и имеющие определенную падежную форму словосочетания. Рассмотрим основные варианты использования данного метода.
2.1 Склонение в 1С
В самом простом случае используется только возможность склонения, а числовое значение выводится одними цифрами:
2.2 Склонение количественных и порядковых числительных
Для «придания красоты» итоговому словосочетанию можно в явном виде указать разряд числительного, используемого в предложении: порядковое или количественное. В этом случае платформа самостоятельно добавит к порядковым числительным буквенное падежное окончание:
2.3 Представление числа в 1С
Поддерживается возможность самостоятельно задать то, как в итоговом словосочетании будет представлено число: как число, как число прописью или как число с окончанием. Единственное о чем следует не забывать: окончания не используются с количественными числительными и в некоторых других случаях:
2.4 Склонение единиц измерения
Нередко требуется просклонять совместно с цифровым значением также и указанные единицы измерения. Причем для дробных значений целая и дробная части могут измеряться в разных единицах. В подобной ситуации есть возможность указать как сами единицы, так и используемое количество разрядов дробной части:
2.5 Сложные словосочетания примеры
На уровне платформы поддерживается склонение в 1С достаточно сложных синтаксических конструкций: автоматически определяются подлежащие склонению слова и, например, игнорируются фрагменты текста, заключенные в кавычки:
Источник
Склонение представлений объектов в ЗУП 3.1 — как это работает?
Для вывода на печать многочисленных печатных форм в ЗУП 3.1 часто бывает необходимо использовать различные падежи имен существительных – фамилий, имен, отчеств, должностей, подразделений. Я расскажу о том, как склоняются представления объектов в ЗУП 3.1.
Что склоняется?
Есть 2 типа объектов, наименования которых склоняются различными механизмами в ЗУП 3.1:
- ФИО физических лиц;
- остальные объекты.
ФИО физических лиц склоняются самой программой. В ЗУП 3.1 существует собственный алгоритм, который превращает фамилии, имена и отчества из именительного падежа в любой другой падеж русского языка. При этом используется пол физического лица (мужской или женский).
Все остальные имена существительные (в частности, наименования должностей и подразделений) склоняются с помощью внешнего сервиса «Морфер».
Подключение сервиса находится в разделе «Администрирование – Интернет-поддержка и сервисы – Склонения представлений объектов».
Рис. 1. Подключение сервиса «Морфер»
Анонимного входа на сервис вполне достаточно для работы.
Как просклонять имя?
В карточке нового сотрудника после ввода фамилии, имени и отчества нажмите гиперссылку «Склонения» (см. рис. 2).
Рис. 2. Склонение фамилий, имен и отчеств сотрудников
Откроется окно с уже заполненными значениями по всем падежам. Останется только записать их, нажав кнопку «ОК».
ФИО физических лиц в падежных формах хранится в регистре сведений «Склонения представлений объектов».
Как это работает?
Работает это следующим образом: если склонения ФИО был сохранены в регистре, то при любом обращении к функции склонения программа будет читать данные из регистра. Это дает максимальную скорость работы, кроме того, в регистре можно отредактировать значения – бывают сложные случаи, ФИО иностранцев, например, которые могут иметь отличия от предложенных программой вариантов.
Если в регистре нет записи по искомому ФИО, то программа просклоняет его «на лету».
Рис. 3. Регистр сведений «Склонения представлений объектов»
Посмотрим на регистр сведений изнутри – из Конфигуратора.
Рис. 4. Регистр сведений «Склонения представлений объектов» — тип измерения «Объект»
Измерение «Объект» имеет тип «ОбъектСклонения» – это определяемый тип (см. рис. 5), в состав которого входят:
- Физические лица
- Должности
- Подразделения
- Позиции штатного расписания
Рис. 5. Состав определяемого типа «ОбъектСклонения»
Именно эти объекты конфигурации могут склоняться. В карточке каждого из них есть гиперссылка «Склонения», по нажатию на которую открывается форма со всеми падежами.
На рис. 6 видно, как просклонялось наименование должности «Ведущий инженер» при включенном сервисе «Морфер».
Рис. 6. Склонения элемента справочника «Должности»
Если же выключить сервис «Морфер» и перезаполнить склонения (кнопка со стрелкой вниз), а затем записать полученное состояние в регистр, то потом, даже при включенном сервисе «Морфер», в документы будут подставляться значения без склонения. Эта проблема может быть решена повторным заполнением склонений объекта при включенном сервисе «Морфер» или же удалением записи по этому объекту в регистре сведений.
Программный вызов функции склонения объектов
Функции склонения представлений объектов находятся в общем модуле «СклонениеПредставленийОбъектов».
- Функция ПросклонятьФИО(ФИО, Падеж, Объект = Неопределено, Пол = Неопределено) Экспорт
Описание:
– Склоняет ФИО.
– Только для работы на ОС Windows..
.
Параметры:
ФИО — Строка — Строка, в которой содержится ФИО для склонения.
Падеж — Число — падеж, в который необходимо просклонять представление объекта.
1 — Именительный.
2 — Родительный.
3 — Дательный.
4 — Винительный.
5 — Творительный.
6 — Предложный.
Объект — ОбъектСклонения — Ссылка на объект, реквизит которого склоняется.
Пол — Число — Число — пол физического лица,
1 — мужской,
2 — женский.
Возвращаемое значение:
Строка — Результат склонения ФИО в падеже.
Пример вызова функции склонения ФИО сотрудника
ФИОПолноеРодПадеж = СклонениеПредставленийОбъектов.ПросклонятьФИО(ФИОПолное, 2, Сотрудник, ПолСотрудника);
Функция ПросклонятьПредставление(Представление, Падеж, Объект = Неопределено) Экспорт
Описание:
– Склоняет представление объекта.
– Только для работы на ОС Windows.
Параметры:
Представление — Строка — Строка, в которой содержится ФИО для склонения.
Падеж — Число — падеж, в который необходимо просклонять представление объекта.
1 — Именительный.
2 — Родительный.
3 — Дательный.
4 — Винительный.
5 — Творительный.
6 — Предложный.
Объект — ОбъектСклонения — Ссылка на объект, реквизит которого склоняется.
Строка — Результат склонения представления объекта в падеже.
Обе функции после успешного выполнения и при заполненном параметре «Объект» записывают полученное значение в регистр сведений «СклоненияПредставленийОбъектов».
Несколько слов в заключение
Склонение представлений объектов – это часть БСП. Данный механизм встроен также и в другие типовые конфигурации, построенные на основе БСП – БП, КА, ERP и т.д.
Картинки и примеры взяты из демо-базы конфигурации «Зарплата и управление персоналом», редакция 3.1 (3.1.7.87). Платформа: 1С:Предприятие 8.3 (8.3.10.2699)
Источник