База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как преобразовать дату «1 июня 2026 г.» из Excel в дату 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 часа, 47 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
19 июня 2026 в 11:15 #37879
Как при загрузке из эксель преобразовать дату вида «1 июня 2026 г.» в дату 1с
-
19 июня 2026 в 11:15 #37880
В Excel дата в формате «1 июня 2026 г.» — это строка с русским названием месяца, а 1С не умеет напрямую преобразовывать такие строки в дату через стандартную функцию Дата() или Формат(). Нужно сделать разбор строки и преобразовать название месяца в номер месяца, а потом собрать дату.
Пример функции на 1С, которая преобразует строку вида «1 июня 2026 г.» в дату:
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041Функция ПреобразоватьРусскуюДатуВДату(СтрокаДаты)// Убираем лишние символы, например "г." и пробелыСтрокаДаты = СтрЗаменить(СтрокаДаты, " г.", "");СтрокаДаты = СтрЗаменить(СтрокаДаты, "г.", "");СтрокаДаты = СтTrim(СтрокаДаты);// Разбиваем строку на части по пробелуЧасти = СтрРазделить(СтрокаДаты, " ");Если КоличествоЭлементов(Части) <> 3 Тогда// Неожиданный форматВозврат Неопределено;КонецЕсли;День = Число(Части[0]);МесяцРус = НСтр(Части[1]);Год = Число(Части[2]);// Таблица соответствия русских месяцев и номеровМесяцы = Новый Соответствие;Месяцы.Вставить("января", 1);Месяцы.Вставить("февраля", 2);Месяцы.Вставить("марта", 3);Месяцы.Вставить("апреля", 4);Месяцы.Вставить("мая", 5);Месяцы.Вставить("июня", 6);Месяцы.Вставить("июля", 7);Месяцы.Вставить("августа", 8);Месяцы.Вставить("сентября", 9);Месяцы.Вставить("октября", 10);Месяцы.Вставить("ноября", 11);Месяцы.Вставить("декабря", 12);Если НЕ Месяцы.СодержитКлюч(МесяцРус) ТогдаВозврат Неопределено;КонецЕсли;Месяц = Месяцы[МесяцРус];Возврат Дата(Год, Месяц, День);КонецФункцииИспользование:
1С (Код)1Дата1С = ПреобразоватьРусскуюДатуВДату("1 июня 2026 г.");Если при загрузке из Excel вы получаете именно такую строку, то применяйте эту функцию к значению ячейки, чтобы получить дату 1С.
Если же Excel уже хранит дату в числовом формате, то лучше читать ее как число и преобразовывать через добавление секунд к дате 01.01.1900 (как в вашем примере с конвертером).
Рекомендую использовать именно такой разбор, потому что 1С не умеет напрямую парсить русские названия месяцев в дате.
https://helpf.pro/faq8/view/1686.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.