![]() |
|
Правильное склонение значения в наименование справочника | ☑ | ||
---|---|---|---|---|
0
falselight
22.11.19
✎
09:59
|
Подскажите как правильно просклонять значения, для занесения в наименование справочника.
Делаю функцию, поиска или создания элементов справочника ПериодичностьСобитий. В функцию передаются параметры Период, ЧислоПериодов, Уточнение. Они могут принимать значения, - Период - "Месяц" или "Год" Уточнение - "Каждые" ЧислоПериодов - любое число формировать в зависимости от этого нужно наименования справочника, такие как, - "Каждые 12 месяцев", "Каждый 1 месяц", "Каждые 5 месяцев", "Каждые 3 месяца" "Каждые 2 года", "Каждые 5 лет", "Каждые 12 лет" и тд. Как мне правильно формировать значение наименования исходя от передаваемых параметров ? |
|||
2
FIXXXL
22.11.19
✎
10:05
|
кодом сделай соответствие типа
1 - "Каждый %1 месяц" 2 - "Каждые %1 месяца" и т.д. ну и далее СтрШаблон(Соответствие.Получить(ТвоеЧисло), ТвоеЧисло); |
|||
3
falselight
22.11.19
✎
10:57
|
так сделал
Функция ВернутьПериодичностьСобытий(Период, ЧислоПериодов, Уточнение) Если Не ЗначениеЗаполнено(Период) или Не ЗначениеЗаполнено(ЧислоПериодов) или Не ЗначениеЗаполнено(Уточнение) Тогда Возврат 0; КонецЕсли; ЧислоПериодов = Число(ЧислоПериодов); Если (Период = "Месяц" и Уточнение = "Каждые") И (ЧислоПериодов = 2 или ЧислоПериодов = 3 или ЧислоПериодов = 4 или ЧислоПериодов = 22 или ЧислоПериодов = 23 или ЧислоПериодов = 24) Тогда НаименованиеПериодичности = "Каждые " + ЧислоПериодов + " месяца"; ИначеЕсли (Период = "Месяц" и Уточнение = "Каждые") И (ЧислоПериодов = 1 или ЧислоПериодов = 21) Тогда НаименованиеПериодичности = "Каждый " + ЧислоПериодов + " месяц"; ИначеЕсли (Период = "Месяц" и Уточнение = "Каждые") И (ЧислоПериодов = 5 или ЧислоПериодов = 6 или ЧислоПериодов = 7 или ЧислоПериодов = 8 или ЧислоПериодов = 9 или ЧислоПериодов = 10 или ЧислоПериодов = 11 или ЧислоПериодов = 12 или ЧислоПериодов = 13 или ЧислоПериодов = 14 или ЧислоПериодов = 15 или ЧислоПериодов = 16 или ЧислоПериодов = 17 или ЧислоПериодов = 18 или ЧислоПериодов = 19 или ЧислоПериодов = 20 или ЧислоПериодов = 25) Тогда НаименованиеПериодичности = "Каждые " + ЧислоПериодов + " месяцев"; ИначеЕсли (Период = "Год" и Уточнение = "Каждые") И (ЧислоПериодов = 2 или ЧислоПериодов = 3 или ЧислоПериодов = 4 или ЧислоПериодов = 22 или ЧислоПериодов = 23 или ЧислоПериодов = 24) Тогда НаименованиеПериодичности = "Каждые " + ЧислоПериодов + " года"; ИначеЕсли (Период = "Год" и Уточнение = "Каждые") И (ЧислоПериодов = 1 или ЧислоПериодов = 21) Тогда НаименованиеПериодичности = "Каждый " + ЧислоПериодов + " год"; ИначеЕсли (Период = "Год" и Уточнение = "Каждые") И (ЧислоПериодов = 5 или ЧислоПериодов = 6 или ЧислоПериодов = 7 или ЧислоПериодов = 8 или ЧислоПериодов = 9 или ЧислоПериодов = 10 или ЧислоПериодов = 11 или ЧислоПериодов = 12 или ЧислоПериодов = 13 или ЧислоПериодов = 14 или ЧислоПериодов = 15 или ЧислоПериодов = 16 или ЧислоПериодов = 17 или ЧислоПериодов = 18 или ЧислоПериодов = 19 или ЧислоПериодов = 20 или ЧислоПериодов = 25) Тогда НаименованиеПериодичности = "Каждые " + ЧислоПериодов + " лет"; КонецЕсли; НайденнаяПериодичность = Справочники.ПериодичностьСобытий.НайтиПоНаименованию(НаименованиеПериодичности, 1); Если НЕ НайденнаяПериодичность = Справочники.ПериодичностьСобытий.ПустаяСсылка() Тогда Возврат НайденнаяПериодичность; Иначе НоваяПериодичность = Справочники.ПериодичностьСобытий.СоздатьЭлемент(); НоваяПериодичность.Наименование = НаименованиеПериодичности; НоваяПериодичность.Уточнение = Перечисления.УточнениеПериодичности.Каждые; НоваяПериодичность.Период = Перечисления.Периодичность.Месяц; НоваяПериодичность.ЧислоПериодов = Число(ЧислоПериодов); НоваяПериодичность.Записать(); // Возврат НоваяПериодичность.Ссылка; КонецЕсли; Возврат 0; КонецФункции |
|||
4
falselight
22.11.19
✎
11:03
|
(1) как это в применении бы было ?
|
|||
5
falselight
22.11.19
✎
11:05
|
(2) что то тоже интересное
|
|||
6
Дмитрий
22.11.19
✎
11:57
|
Добавь пропись для валюты Каждый месяц. Потом разбирай и вставляй число.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |