Склонение названий Месяцев

1. serge_focus 4 16.11.16 21:41 Сейчас в теме
Необходимо для вывода в отчете (на СКД) дату представить как "[Месяце] 2016 года".
Где [Месяце] - это Январе, Феврале и т.д.
Подкиньте идею...
По теме из базы знаний
Найденные решения
8. alxarz 31 19.11.16 08:41 Сейчас в теме
месяц = месяц + "ь";
СтрЗаменить(месяц,"йь","е"); - для майь
СтрЗаменить(месяц,"ьь","е"); - для январьь, февральь, апрельь, июньь, июльь, сентябрьь, октябрьь, ноябрьь, декабрьь
СтрЗаменить(месяц,"ь","е"); - для марть,августь

итого:
месяц = месяц + "ь"; СтрЗаменить(месяц,"йь","е"); СтрЗаменить(месяц,"ьь","е"); СтрЗаменить(месяц,"ь","е");

выражение, но не очень длинное :)
VitalyKepov; additive; reneyr; iiceberg; surr; PetrPan; addict2blood; Леонидов; Dream_kz; +9 Ответить
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. alxarz 31 17.11.16 00:00 Сейчас в теме
(1) а) вызвывать из скд свою функцию б) написать свою функцию, которая будет возвращать месяц в нужном падеже
3. Denis_CFO 48 17.11.16 05:21 Сейчас в теме
(1) можно вот этим сервисом пользоваться тынц
4. serge_focus 4 17.11.16 20:39 Сейчас в теме
Обошелся без модификации типовой конфигурации.
Решил следующим образом:
В макете создал шаблон
Через параметр макета подставил длинное выражение:\
 ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="01") ТОГДА "Январе" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="02") ТОГДА "Феврале" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="03") ТОГДА "Марте" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="04") ТОГДА "Апреле" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="05") ТОГДА "Мае" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="06") ТОГДА "Июне" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="07") ТОГДА "Июле" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="08") ТОГДА "Августе" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="09") ТОГДА "Сентябре" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="10") ТОГДА "Октябре" ИНАЧЕ ВЫБОР КОГДА (Формат(ПараметрыДанных.КонецПериода, "ДФ =ММ")="11") ТОГДА "Ноябре" ИНАЧЕ "Декабре" Конец Конец Конец Конец Конец Конец Конец Конец Конец Конец Конец
9. tusv 211 19.11.16 18:06 Сейчас в теме
(4) И не жалко своих глаз? У меня в кучу, после третьего вложенного кейса.
В выражениях представления СКД можно сделать более элегантно
ВЫБОР КОГДА Месяц(Дата) = 1 ТОГДА
	"Январе"
КОГДА Месяц(Дата) = 2 ТОГДА
	"Феврале"
КОГДА Месяц(Дата) = 3 ТОГДА
	"Марте"
КОГДА Месяц(Дата) = 4 ТОГДА
	"Апреле"
КОГДА Месяц(Дата) = 5 ТОГДА
	"Мае"
КОГДА Месяц(Дата) = 6 ТОГДА
	"Июне"
КОГДА Месяц(Дата) = 7 ТОГДА
	"Июле"
КОГДА Месяц(Дата) = 8 ТОГДА
	"Августе"
КОГДА Месяц(Дата) = 9 ТОГДА
	"Сентябре"
КОГДА Месяц(Дата) = 10 ТОГДА
	"Октябре"
КОГДА Месяц(Дата) = 11 ТОГДА
	"Ноябре"
КОГДА Месяц(Дата) = 12 ТОГДА
	"Декабре"
КОНЕЦ
Показать

или еще короче
ВЫБОР КОГДА ПОДСТРОКА(Формат(Дата,"ДФ = 'MMMM'")
				,ДлинаСтроки(Формат(Дата,"ДФ = 'MMMM'"))
				,ДлинаСтроки(Формат(Дата,"ДФ = 'MMMM'"))) ="т"
	 ТОГДА
	 	Формат(Дата,"ДФ = 'MMMM'")+"е"
 ИНАЧЕ 
                ПОДСТРОКА(Формат(Дата,"ДФ = 'MMMM'")
 				,1
 				,ДлинаСтроки(Формат(Дата,"ДФ = 'MMMM'"))-1)
 		+"е"
КОНЕЦ
Показать
dynamicsystems; +1 Ответить
5. serge_focus 4 17.11.16 20:45 Сейчас в теме
В выражении : ПараметрыДанных.КонецПериода необходимый месяц...

Собственно через выражения подобную штуку можно запихнуть в любое место отчета :)
Nick_Angel; +1 Ответить
6. пользователь 18.11.16 08:39
Сообщение было скрыто модератором.
...
7. Nick_Angel 18.11.16 10:55 Сейчас в теме
Если Вы создавали внешний отчет - можно же было функцию поместить в модуль и вызвать... Хотя Ваше решение любопытное. =)
8. alxarz 31 19.11.16 08:41 Сейчас в теме
месяц = месяц + "ь";
СтрЗаменить(месяц,"йь","е"); - для майь
СтрЗаменить(месяц,"ьь","е"); - для январьь, февральь, апрельь, июньь, июльь, сентябрьь, октябрьь, ноябрьь, декабрьь
СтрЗаменить(месяц,"ь","е"); - для марть,августь

итого:
месяц = месяц + "ь"; СтрЗаменить(месяц,"йь","е"); СтрЗаменить(месяц,"ьь","е"); СтрЗаменить(месяц,"ь","е");

выражение, но не очень длинное :)
VitalyKepov; additive; reneyr; iiceberg; surr; PetrPan; addict2blood; Леонидов; Dream_kz; +9 Ответить
10. Serg2000mr 316 28.02.21 00:43 Сейчас в теме
Небольшой некропостинг )

Начиная с версии 8.3.13

Массив = ПолучитьСклоненияСтроки("Январь",, "ПД=Предложный");
Сообщить(Массив[0]); //Январе
user2023499; I_train; user1758218; user1027191; Elmax; +5 Ответить
11. ZasraneZ 21.07.21 13:36 Сейчас в теме
Позволю слегка углубить предыдущего оратора:
МизД = Формат(ТекущаяДата(),"ДФ=ММММ"); // Получаем текстовое представление текущей даты 
МесРождП = ПолучитьСклоненияСтроки(МизД,"ПЛ=Мужской","ПД=Предложный"); //создаётся Массив
Сообщить(МесРождП[0]); //выводим значение массива по 0 индексу
user2023499; Greg_nnn; I_train; user1118625; +4 Ответить
Оставьте свое сообщение

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