Как вывести слово в верном склонение в зависимости от рода сотрудника

1. user2053889 25.11.24 16:31 Сейчас в теме
Делаю ВПФ из ворда и есть необходимость выводить "ый" или "ая" в зависимости от рода сотрудника. Кто может подсказать как это возможно сделать?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 25.11.24 16:39 Сейчас в теме
(1) Morpher подключить к ЗУП
5. user2053889 25.11.24 16:48 Сейчас в теме
4. user2053889 25.11.24 16:48 Сейчас в теме
(3) А как мне поможет эта обработка выводить именуемый\именуемая?
В впф надо чтобы при печати определялась, что выводить
6. RustamZz 25.11.24 16:53 Сейчас в теме
(4) А вы статью полностью прочитали? Там вообще-то написано как это работает.
7. accounting_cons 883 25.11.24 16:54 Сейчас в теме
(4) Это не обработка, а статья. Почитайте.
8. yispepotri 25.11.24 17:01 Сейчас в теме
(7) как я понял ему не ФИО склонять нужно, а чисто окончание слова определять "именуемый\именуемая" Возможно я не прав. Прошу автора подтвердить или опровергнуть мои слова.

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


был не прав)) из статьи подойдет функция ПросклонятьПредставление
9. user2053889 26.11.24 09:19 Сейчас в теме
(8) Верно. Я вытаскиваю пол, но когда начинаю делать через Если выдает ошибку на обращение к ПолучитьДанные
10. yispepotri 26.11.24 09:27 Сейчас в теме
(9) приведите пример кода, в котором возникают ошибке. А так как описано выше вам подойдет сервис Морфер. С помощью него можете просклонять свое слово в зависимости от пола ( в функцию передать пол и слово)
12. user2053889 26.11.24 10:10 Сейчас в теме
(10) Вот так пытаюсь передать, но что-то не туда как будто иду
11. user2053889 26.11.24 10:10 Сейчас в теме
Для Каждого Стр Из ДанныеПоШапке Цикл
Если Справочники.Сотрудники.ФизическоеЛицо.Пол = "Женский" Тогда
Стр.Вставить("ыйая", "ая");
Иначе
Стр.Вставить("ыйая", "ый");

КонецЕсли;
КонецЦикла;
13. RustamZz 26.11.24 10:20 Сейчас в теме
(11)
Если Справочники.Сотрудники.ФизическоеЛицо.Пол = "Женский" Тогда
Как это теперь развидеть?
Sashares; user1863362; black_ziber; +3 Ответить
14. user2053889 26.11.24 10:20 Сейчас в теме
(11)
"ыйая"
это параметр в печатной форме word, окончание только меняю, а не целиком слово
15. yispepotri 26.11.24 10:31 Сейчас в теме
(11) сервис использовать удобнее, если без него. Тогда Пол в физ. лице это перечисление соответственно его нужно сравнивать как перечисление, а не строкой как в вашем варианте. И обращаться нужно к ссылке сотрудника или сразу через физ. лицо.

Если СсылкаСотрудник.ФизическоеЛицо.Пол = Перечисления.ПолФизическогоЛица.Мужской Тогда
     нСтрока = "именуемый";
Иначе
     нСтрока = "именуемая";
КонецЕсли;
16. user1863362 26.11.24 10:37 Сейчас в теме
(15)
сервис использовать удобнее, если без него.
Золотые слова.
17. yispepotri 26.11.24 10:40 Сейчас в теме
(16) Сегодня не каждый может использовать сервис. Но каждый может сервис не использовать.
18. user1863362 26.11.24 10:47 Сейчас в теме
(17) Мало кто поймёт, но кто поймёт тот мало кто.
21. yispepotri 26.11.24 11:00 Сейчас в теме
(18) Каждая задача имеет решение, не каждое решение имеет задачу.
24. Kanigin 26.11.24 11:45 Сейчас в теме
27. Vlan 36 26.11.24 12:34 Сейчас в теме
(18) Смысл можно выразить фразой, но не во всякой фразе есть смысл.
19. user2053889 26.11.24 10:51 Сейчас в теме
(15) Сейчас ругается что поле объекта не обнаружено ФизическиеЛица
20. yispepotri 26.11.24 10:56 Сейчас в теме
(19) ФизическиеЛицо окончание возможно не правильно указано, просто без примера кода не получится подсказать в чем ошибка.
22. user2053889 26.11.24 11:06 Сейчас в теме
(20)
Если Справочники.ФизическиеЛица.Пол = Перечисления.ПолФизическогоЛица.Мужской Тогда
		УправлениеПечатью.ЗаполнитьПараметры("ыйая", "ый");
	Иначе
		УправлениеПечатью.ЗаполнитьПараметры("ыйая", "ая");
	КонецЕсли


Поле объекта не обнаружено (Пол)
{ВнешняяОбработка.Соглашение.МодульОбъекта(46)}:Если Справочники.ФизическиеЛица.Пол = Перечисления.ПолФизическогоЛица.Мужской Тогда
{ВнешняяОбработка.Соглашение.МодульОбъекта(24)}:ОфисныеДокументы = НапечататьДоговор(МассивОбъектов);
{ОбщийМодуль.УправлениеПечатью.Модуль(2053)}:ВнешняяОбработкаОбъект.Печать(
{ОбщаяФорма.ПечатьДокументов.Форма(776)}:УправлениеПечатью.ПечатьПоВнешнемуИсточнику(
{ОбщаяФорма.ПечатьДокументов.Форма(61)}:КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(310)}:ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
{ОбщийМодуль.УправлениеПечатьюГлобальный.Модуль(13)}:УправлениеПечатьюСлужебныйКлиент.ПродолжитьВыполнениеКомандыПечати();

Ошибка
23. yispepotri 26.11.24 11:24 Сейчас в теме
(22) вы не правильно обращаетесь к реквизиту ФизическиеЛица. Нужно чтобы это было значение с типом значения - Ссылка сотрудника или ссылка - ФизическоеЛицо и уже у нее определять пол.


Если СсылкаНаСотрудника.ФизическоеЛицо.Пол = Перечисления.ПолФизическогоЛица.Мужской Тогда

///// ИЛИ
Если СсылкаФизическоеЛицо.Пол = Перечисления.ПолФизическогоЛица.Мужской Тогда



а вот откуда получить ссылки на эти значение, это вы сами должны определиться, я не знаю полный контекст вашей задачи.
25. user2053889 26.11.24 12:06 Сейчас в теме
СсылкаФизическоеЛицо = ДанныеПечати.Пол;
		
		Если СсылкаФизическоеЛицо =  Перечисления.ПолФизическогоЛица.Мужской Тогда
			УправлениеПечатью.ЗаполнитьПараметры("ыйая", "ый");
		Иначе
			УправлениеПечатью.ЗаполнитьПараметры("ыйая", "ая");
		КонецЕсли;
		ОФисныеДокументы.Вставить(АдресХранилищаПечатнойФормы, ИмяДокумента);


Сейчас ругается на "Значение не является значением объектного типа(ПоследняяВыведеннаяОбласть)"
26. user1863362 26.11.24 12:11 Сейчас в теме
(25)
Сейчас ругается
Поругайся на него в ответ и иди уже на курсы.
Sashares; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот