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

Елена, в регистре сведения о склонениях ФИО обычно мы не храним, только сложные случаи. Приложила скриншот, что при просмотре из карточки сотрудника/физлица склоняется нормально. А функция глобального контекста не справляется. Не знаю, в каком направлении думать. Сейчас буду смотреть формирование вариантов склонения из карточки
А Морфер с Анонимным входом тоже не помог… Хотя, возможно, из удаленного рабочего стола не срабатывает? Позднее посоветуюсь с системным программистом

Как в «1С:Бухгалтерии 8» редакции 3.0 настроить склонения фамилий, имен, отчеств и должностей по падежам?

Видеоролик выполнен в программе «1С:Бухгалтерия 8» версия 3.0.44.124.

Чтобы разрешить использование сервиса склонения для получения представлений объектов в падежах нужно включить флаг Склонять с помощью сервиса morpher.ru (раздел Администрирование – Общие настройки – Склонения представлений объектов). Для использования сервиса склонений требуется подключение к интернету.

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

  • 1 Как включить склонения в 1С?
  • 2 Настройка падежей ФИО в договоре
  • 3 Как получить склонения программно с помощью компоненты из БСП?

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

Как настроить склонения 1с

Настройка падежей ФИО в договоре

Теперь давайте закончим настройку функции склонений и проверим ее работу. Для этого, идем в договора и откроем любой договор с контрагентом. В карточке, раскрываем вкладку Подписи. На ней должны быть заполнены имя и фамилия, а также должность и основание действия лица, подписавшего договор. Открываем окно «Склонения по падежам». Нажмем на кнопку со стрелочкой, вверху и программа получит склонения из сервиса и заполнит их автоматически. Компьютер, при этом, должен иметь подключение к интернет. Если, по каким-то причинам, доступа в сеть нет, можно заполнить значения строки вручную. После этого можно распечатать договор и убедится в правильности падежей.

Настройка падежей в договоре

Как получить склонения программно с помощью компоненты из БСП?

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

Как получить склонения программно с помощью компоненты из БСП

Непосредственно в коде я обращаюсь к модулю «СклонениеПредставленийОбъектов», к функции «ПроскланироватьПредставление» и передаю туда параметры. Цифра «2» означает родительный падеж.

Остались вопросы? — Закажите консультацию в один клик!


Александр Трубицын

Мой телеграм https://t.me/praktikaITS

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

Содержание

  1. Внешняя компонента
  2. Веб-сервис
  3. Средства платформы

Внешняя компонента

Начнем с самого, вероятно, популярно на сегодняшний день способа — внешняя компонента «Склонение ФИО». Эта компонента существует в двух вариантах: по технологии COM и по технологии Native API. Вариант выполненный по технологии Native API современнее и предпочтительнее.

При скачивании с сайта ИТС мы получаем архив который содержит файл «NAMEDECL.DLL» и файл «NameDecl.zip». Первый файл — это компонента по технологии COM, а второй файл — это архив содержащий компоненту по технологии Native API (он так и используется в архиве).

Компоненту выполненную по технологии COM сначала нужно зарегистрировать, командой «regsvr32» от имени администратора:

Регистрация внешней компоненты

Александр Трубицын

Мой телеграм https://t.me/praktikaITS

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

Содержание

  1. Внешняя компонента
  2. Веб-сервис
  3. Средства платформы

Внешняя компонента

Начнем с самого, вероятно, популярно на сегодняшний день способа — внешняя компонента «Склонение ФИО». Эта компонента существует в двух вариантах: по технологии COM и по технологии Native API. Вариант выполненный по технологии Native API современнее и предпочтительнее.

При скачивании с сайта ИТС мы получаем архив который содержит файл «NAMEDECL.DLL» и файл «NameDecl.zip». Первый файл — это компонента по технологии COM, а второй файл — это архив содержащий компоненту по технологии Native API (он так и используется в архиве).

Компоненту выполненную по технологии COM сначала нужно зарегистрировать, командой «regsvr32» от имени администратора:

Регистрация внешней компоненты

Регистрация внешней компоненты

Пример использования:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

&НаКлиенте

Процедура КомпонентаCOM(Команда)

Компонента = «C:NameDecl.dll»;

Попытка

ЗагрузитьВнешнююКомпоненту(Компонента);

Объект = Новый(«AddIn.NameDeclension»);

Исключение

Сообщить(«Не удалось загрузить внешнюю компоненту по причине: » + ОписаниеОшибки());

КонецПопытки;

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 2, 1)); //родительный, пол мужской

Сообщить(Объект.Просклонять(«Иванова Анна Ивановна», 3, 2)); //дательный, пол женский

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 4)); //винительный, пол авто

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 5)); //творительный, пол авто

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 6)); //предложный, пол авто

КонецПроцедуры

Компоненту выполненную по технологии Native API регистрировать не нужно, ее необходимо поместить в общий макет (тип макета — «Внешняя компонента») и использовать примерно таким кодом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

&НаКлиенте

Процедура КомпонентаNative(Команда)

УстановитьВнешнююКомпоненту(«ОбщийМакет.КомпонентаСклонений»);

Попытка

ПодключитьВнешнююКомпоненту(«ОбщийМакет.КомпонентаСклонений», «NameDecl» , ТипВнешнейКомпоненты.Native);

Объект = Новый(«AddIn.NameDecl.CNameDecl»);

Исключение

Сообщить(«Не удалось подключить внешнюю компоненту по причине: » + ОписаниеОшибки());

КонецПопытки;

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 2, 1)); //родительный, пол мужской

Сообщить(Объект.Просклонять(«Иванова Анна Ивановна», 3, 2)); //дательный, пол женский

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 4)); //винительный, пол авто

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 5)); //творительный, пол авто

Сообщить(Объект.Просклонять(«Иванов Иван Иванович», 6)); //предложный, пол авто

КонецПроцедуры

Как уже говорилось выше, компонента выполненная по технологии Native API предпочтительнее, так как работает и в ОС Linux, в тоже время ее можно использовать и на клиенте и на сервере.

Веб-сервис

Еще одним способом просклонять что-либо является использование веб-сервиса «Морфер». Сервис бесплатный, хотя имеет и платный вариант, кроме этого функционал «Морфера» доступен в виде платной внешней компоненты.

Основным недостатком данного метода является его негарантированная работоспособность — нет интернета или сервис не доступен.

Использование веб-сервиса выглядит так:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

&НаКлиенте

Процедура СервисСклонения(Команда)

СклоняемыйТекст = «Пушкин Александр Сергеевич»;

АдресСервера = «ws3.morpher.ru»;

Соединение = Новый HTTPСоединение(АдресСервера,,,,,, Новый ЗащищенноеСоединениеOpenSSL());

ТекстЗапроса = «/russian/declension?s=» + СклоняемыйТекст;

Заголовки = Новый Соответствие;

Заголовки.Вставить(«User-Agent», «1C Enterprise 8.3»);

Заголовки.Вставить(«Accept», «application/json»);

Заголовки.Вставить(«charset», «UTF-8»);

Запрос = Новый HTTPЗапрос(ТекстЗапроса, Заголовки);

Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда

ЧтениеJSON = Новый ЧтениеJSON;

ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());

СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);

ЧтениеJSON.Закрыть();

Сообщить(СтруктураОтвета.Р);

Сообщить(СтруктураОтвета.Д);

Сообщить(СтруктураОтвета.В);

Сообщить(СтруктураОтвета.Т);

Сообщить(СтруктураОтвета.П);

КонецЕсли;

КонецПроцедуры

Отмечу, что приведен минимально необходимый код, для реального применения будет разумно добавить какие-то проверки и обработки возможных ошибок.

Средства платформы

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

&НаСервере

Функция СклонениеПлатформаНаСервере()

Результат = ПолучитьСклоненияСтроки(«Пушкин Александр Сергеевич», «Л=ru_RU;ПЛ=Мужской», «ПД=Родительный»);

//Результат[0] //Пушкина Александра Сергеевича

//эта функция доступна в версии платформы 8.3.14 и выше

Результат = ПолучитьСклоненияСтрокиПоЧислу(«стул», 12, «», «ЧС=Порядковое», «ПД=Родительный; ПЧ=ЧислоСОкончанием»);

//Результат[0] //12-го стула

Результат = ПолучитьСклоненияСтрокиПоЧислу(«автомобиль», 5, «», «ЧС=Количественное», «ПД=Дательный; ПЧ=ЧислоПрописью»);

//Результат[0] //пяти автомобилям

Результат = ПолучитьСклоненияСтрокиПоЧислу(«медный купорос», 3.5, «килограмм, грамм, 2», «ЧС=Количественное», «ПД=Винительный; ПЧ=ЧислоПрописью»);

//Результат[0] //три килограмма пятьдесят граммов медного купороса

КонецФункции

На этом все, надеюсь, что данная статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Загрузка…

Возвращает варианты склонения указанной строки

Синтаксис

Функция ПолучитьСклоненияСтроки() имеет следующий синтаксис:

Массив ПолучитьСклоненияСтроки(СклоняемаяСтрока, [ОписаниеСтроки], [ФорматнаяСтрока])

А также альтернативный англоязычный синтаксис:

Array GetStringDeclensions(СклоняемаяСтрока, [ОписаниеСтроки], [ФорматнаяСтрока])

Параметры

Описание параметров функции ПолучитьСклоненияСтроки():

Имя параметра* Тип Описание
СклоняемаяСтрока Строка Содержит строку, которую нужно просклонять.
ОписаниеСтроки Строка Содержит перечисление параметров, уточняющих информацию о строке, которую нужно просклонять. Каждый параметр состоит из имени параметра и значения, разделенных знаком = (равно). Параметры перечисляются через символ «;» (точка с запятой). Возможные параметры:

Параметр
(Eng)
Описание
Л
(L)
Код локализации. Если не указан, берется из настроек операционной системы. В настоящий момент поддерживается только код локализации ru_RU русский язык
ПЛ
(GN)
Пол. Если не указан, платформа пытается определить его автоматически. Возможные значения: Мужской, Женский
ФорматнаяСтрока Строка Содержит перечисление параметров форматирования. Каждый параметр состоит из имени параметра и значения, разделенных знаком = (равно). Параметры перечисляются через символ «;» (точка с запятой). Возможные параметры:

Параметр
(Eng)
Описание
ПД
(CS)
Падеж. Если не указан, то склонение не выполняется (выдается исходная строка). Возможные значения: Именительный, Родительный, Дательный, Винительный, Творительный и Предложный
*Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

Массив, содержащий возможные варианты склонения строки.

Описание

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

Внимание! Метод доступен начиная с версии 1С:Предприятие 8.3.13

Внимание!! Начиная с версии 1С:Предприятие 8.3.18 исправлена ошибка, которая приводила к самопроизвольной замене буквы ё на е

Доступность

Сервер, толстый клиент, внешнее соединение.

Пример использования

Пример кода с использованием функции ПолучитьСклоненияСтроки():

Пример использования

Пример кода с использованием функции ПолучитьСклоненияСтроки():

мРезультат = ПолучитьСклоненияСтроки("дать Иванов Иван Иванович", , "ПД=Дательный");
Сообщить(мРезультат[0]);
//дать Иванову Ивану Ивановичу
мРезультат = ПолучитьСклоненияСтроки("одна тысяча сто один", , "ПД=Предложный");
Сообщить(мРезультат[0]);
//одной тысяче ста одном
мРезультат = ПолучитьСклоненияСтроки("говорить о одна тысяча сто один", , "ПД=Предложный");
Сообщить(мРезультат[0]);
//говорить о одна тысяча сто один (Правильно будет: говорить об одной тысяче ста одном)
мРезультат = ПолучитьСклоненияСтроки("101 далматинец", , "ПД=Творительный");
Сообщить(мРезультат[0]);
//101 далматинцем
мРезультат = ПолучитьСклоненияСтроки("159 ящиков помидоров", , "ПД=Предложный");
Сообщить(мРезультат[0]);
//159 ящиках помидоров

Обратите внимание, что не все сочетания получились согласованными, поэтому следует проверять получаемый результат.

Поделиться страницей в соц.сетях

Метки: Метки 1С:Предприятие 8.3.13

Понравилась статья? Поделить с друзьями:
  • Как исправить ошибку сканера в принтере
  • Как исправить ошибку системы систем про
  • Как исправить ошибку системе не удалось найти указанный путь
  • Как исправить ошибку системе не удается найти указанный путь
  • Как исправить ошибку система защиты в варфейс