Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 22:40

Номер месяца по названию

Автор shams, 23 мая 2023, 12:10

0 Пользователей и 1 гость просматривают эту тему.

LexaK

Цитата: Erjoma от 23 мая 2023, 16:32&НаКлиенте
Функция НомерМесяцаПоНаименованию( Знач НазваниеМесяца)
    Возврат ( СтрНайти( "янвфевмарапрмайиюниюлавгсеноктноядек", Нрег( Лев( НазваниеМесяца, 3))) + 2) / 3;
КонецФункции

&НаКлиенте
Функция НаименованиеПоНомеруМесяца( Знач НомерМесяца)
    Возврат Формат( Дата(1,НомерМесяца,1), "ДФ=ММММ");
КонецФункции

Почти зачет!  :D
если помогло нажмите: Спасибо!

LexaK

еще такой вариант можно попробовать


лкМ = СтрРазделить("январь,февраль,март,апрель,...",",");
лкПоз = лкМ.Найти(нрег(Месяц)); 
Возврат ?(лкПоз = Неопределено,"Неправильное имя: " + Месяц, лкПоз + 1);

если помогло нажмите: Спасибо!

antoneus

Можно еще сократить :)

&НаКлиенте
Функция НомерМесяца(НаименованиеМесяца)

    Месяцы = СтрРазделить("январь,февраль,март,апрель,май,июнь,июль,август,сентябрь,октябрь,ноябрь,декабрь", ",");
    Индекс = Месяцы.Найти(НРег(НаименованиеМесяца));
Если Индекс = Неопределено Тогда
Сообщить("Это не месяц!")
Иначе
        Возврат Индекс + 1
    КонецЕсли;

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

shams

LexaK, здраствуйте почему такой ошибка дает ?

Функция ПолучитьМесяцСтрокой(НомерМесяца)
   
   лкМ = СтрРазделить("январь,февраль,март,апрель,...",",");
   лкПоз = лкМ.Найти(нрег(Месяц));
   Возврат ?(лкПоз = Неопределено, "Неправильное имя:" + Месяц,ЛкПоз + 1);

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

ПолучитьМесяцСтрокой(1);


вот ошибка

{МодульУправляемогоПриложения(5,58)}: Переменная не определена (Месяц)
   Возврат ?(лкПоз = Неопределено, "Неправильное имя:" + <<?>>Месяц,ЛкПоз + 1); (Проверка: Тонкий клиент)



shams

Erjoma, ничего не показывает в результате

 
&НаКлиенте
Функция НаименованиеПоНомеруМесяца( Знач НомерМесяца)
    Возврат Формат( Дата(1,НомерМесяца,1), "ДФ=ММММ");
КонецФункции 
НаименованиеПоНомеруМесяца(3);

LexaK

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

1. по номеру возвращать наименование месяца

Результат = ОбработатьМесяц(2);
Сообщить(Результат);
"Февраль"

2. по имени месяца возвращать его номер

Результат = ОбработатьМесяц("Март");
Сообщить(Результат);
3
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск