Поиск номера месяца в году из его наименования средствами 1С

29.09.07

Разработка - Универсальные функции

Иногда необходимо найти из строки наименования месяца его порядковый номер в году.
Стандартной функции или процедуры в 1С нет. И по этому многие ищут разный подход...
В стандартной конфигурации ЗиК от 1С в глобальном модуле встретил вот это:
Привожу фрагмент.

 //Функция глПреобразоватьСтрокуМесяца(Месяц, ПредпочтительнаяДата) Экспорт
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//Если		ПерваяБуква="Я"	Тогда				ВведенноеЧисло = 1;
//	ИначеЕсли	ПерваяБуква="Ф"	Тогда			ВведенноеЧисло = 2;
//	ИначеЕсли	ПерваяБуква="С"	Тогда			ВведенноеЧисло = 9;
//	ИначеЕсли	ПерваяБуква="О"	Тогда			ВведенноеЧисло = 10;
//	ИначеЕсли	ПерваяБуква="Н"	Тогда			ВведенноеЧисло = 11;
//	ИначеЕсли	ПерваяБуква="Д"	Тогда			ВведенноеЧисло = 12;
//	ИначеЕсли	ПерваяБуква="М"	Тогда	
// если "М" - посмотрим Март или Май
//		Если		Лев(СтрокаМесяц,3)="МАР" Тогда	ВведенноеЧисло = 3; 
// задан март	явным образом
//		ИначеЕсли	Лев(СтрокаМесяц,3)="МАЙ" Тогда	ВведенноеЧисло = 5; 
// задан май	явным образом
//	Иначе	ВведенноеЧисло = ?((ПредпочтитМесяц>4)или(ПредпочтитМесяц<3),5,3);
//		КонецЕсли;
//	ИначеЕсли	ПерваяБуква="А"	Тогда
// если "А" - посмотрим Апрель или Август
//		Если		Лев(СтрокаМесяц,2)="АП"	 Тогда	ВведенноеЧисло = 4; 
// задан апрель	явным образом
//		ИначеЕсли	Лев(СтрокаМесяц,2)="АВ"	 Тогда	ВведенноеЧисло = 8; 
// задан август	явным образом
//		Иначе	ВведенноеЧисло= ?((ПредпочтитМесяц>7)или(ПредпочтитМесяц<4),8,4);
//		КонецЕсли;
//	ИначеЕсли	ПерваяБуква="И"	Тогда	// если "И" - посмотрим Июнь или Июль
//		Если		Лев(СтрокаМесяц,3)="ИЮН" Тогда	ВведенноеЧисло = 6; 
// задан июнь	явным образом
//		ИначеЕсли	Лев(СтрокаМесяц,3)="ИЮЛ" Тогда	ВведенноеЧисло = 7; 
// задан июль	явным образом
//		Иначе		ВведенноеЧисло = ?(ПредпочтитМесяц=6,6,7);
//		КонецЕсли;
//КонецЕсли;
//  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//КонецФункции	// глПреобразоватьСтрокуМесяца
 


Я предлагаю свой метод поиска переменной «ВведенноеЧисло». Одной строкой.

 ВведенноеЧисло  =  (Найти(\"янвфевмарапрмайиюниюлавгсеноктноядек\",Нрег(Лев(СтрокаМесяц,3)))+2)/3; 
Я не буду описывать технологии внедрения вычленения самого наименования и т.д.
Извините, со школы не люблю писать рефераты и сочинения.

Для удобства проверки выложена обработка тест.
//infostart.ru/projects/1292/

См. также

Универсальные функции Программист Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    1211    14    user706545_kseg1971    0    

4

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    2264    zhenyat    7    

6

Универсальные функции Программист Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4965    Zoltan_Black    11    

2

Универсальные функции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13798    4    alsen    3    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10613    malovandrey    6    

19

Универсальные функции Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18849    2    HAMMER_59    6    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. VUN 38 01.10.07 01:06 Сейчас в теме
А скобки после 2 не нужны? - (Найти(...)+2)/3;
2. Mordens 90 01.10.07 07:00 Сейчас в теме
Нужны, спасибо за внимательность
3. stpd 01.10.07 08:32 Сейчас в теме
Изящно. :) Молоток. Я обычно массив названий делал.
4. BabySG 01.10.07 11:19 Сейчас в теме
Хорошее решение, особенно на фоне верхнего :)
5. NickDem 01.10.07 14:46 Сейчас в теме
Сразу видно что автор не по наслышке знаком с математикой )))
6. astonvilla 234 02.10.07 09:19 Сейчас в теме
А чего? Прикольно. Правда такой задачи никогда не возникало - но буду иметь в виду :)
7. svsrus 179 02.10.07 10:08 Сейчас в теме
Краткость - сестра таланта. Здорово!
8. ivisor_fil 10 02.10.07 13:13 Сейчас в теме
9. Mordens 90 10.12.07 15:20 Сейчас в теме
Спасибо кто оставил свои высказывания...но вот только непойму одного...можно ли выкладывать статьи без согласия автора?
я выкладывал на _www.infostart.ru_, а нашел
10. пользователь 03.08.11 07:44
Сообщение было скрыто модератором.
...
11. пользователь 14.12.11 20:31
Сообщение было скрыто модератором.
...
Оставьте свое сообщение