@24LID

Как написать функцию которая преобразователь строку в дату?

Подскажите как написать функцию которая преобразовывает строку в дату. Вытягиваю данные из гугл таблицы по ссылке. На выводе получаю
66a0f7641df40966934349.png
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("РНС", ОбщегоНазначения.ОписаниеТипаДата(ЧастиДаты.Дата));
ТЗ.Колонки.Добавить("Старт_ПРОДАЖ", ОбщегоНазначения.ОписаниеТипаДата(ЧастиДаты.Дата));
ТЗ.Колонки.Добавить("НВВОД", ОбщегоНазначения.ОписаниеТипаДата(ЧастиДаты.Дата));
ТЗ.Колонки.Добавить("Начало_проекта", ОбщегоНазначения.ОписаниеТипаДата(ЧастиДаты.Дата));
ТЗ.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(20)));
Для Каждого Стр Из ТЗ Цикл
Стр.ДатаРНС_Google = СтрокаВДату(Стр.РНС); //НАЧА ПИСАТЬ ФУНКЦИЮ
КонецЦикла;
ТЗ.СкопироватьКолонки("РНС", "Старт_ПРОДАЖ", "НВВОД", "Начало_проекта", "Наименование");

Подскажите пожалуйста пробую так

&НаСервере
Функция СтрокаВДату (Стр)
НомерСимволаСточкой = СтрНайти(Стр,".");
ЛеваяЧ = Лев(Стр, НомерСимволаСточкой -1);
ПравЧ = Сред(Стр,НомерСимволаСточкой +1);

Лев(Стр, СтрНайти(Стр,"."));
Если ЛеваяЧ = "Янв" Тогда
Месяц = 1;
ИначеЕсли ЛеваяЧ = "Февр" Тогда
Месяц = 2;
ИначеЕсли ЛеваяЧ = "Мар" Тогда
Месяц = 3;
ИначеЕсли ЛеваяЧ = "Апр" Тогда
Месяц = 4;
ИначеЕсли ЛеваяЧ = "Май" Тогда
Месяц = 5;
ИначеЕсли ЛеваяЧ = "Июнь" Тогда
Месяц = 6;
ИначеЕсли ЛеваяЧ = "Июль" Тогда
Месяц = 7;
ИначеЕсли ЛеваяЧ = "Авг" Тогда
Месяц = 8;
ИначеЕсли ЛеваяЧ = "Сен" Тогда
Месяц = 9;
ИначеЕсли ЛеваяЧ = "Окт" Тогда
Месяц = 10;
ИначеЕсли ЛеваяЧ = "Ноя" Тогда
Месяц = 11;
ИначеЕсли ЛеваяЧ = "Дек" Тогда
Месяц = 12;
КонецЕсли;
Год = Число(ПравЧ)+ 2000;

Возврат Дата(Год,Месяц,1)

КонецФункции
не летит
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Dementor
программист, архитектор, аналитик
1) На скриншоте названия месяцев с маленькой буквы, а в вашей функции с большой. Поэтому не работает.
2) Отладка, отладка, отладка! Уже давно все сами увидели и исправили.
Ответ написан
Комментировать
@24LID Автор вопроса
Поправил функцию
&НаСервере
Функция СтрокаВДату (Стр)
Если Стр = "" Тогда
Возврат Дата(1,1,1);
КонецЕсли;
Если Стр = "2025 год" Тогда
Возврат Дата(1,1,1);
КонецЕсли;

Стр = СтрЗаменить(Стр, "мая", "мая.");
Стр = СтрЗаменить(Стр, "сент", "сен.");
НомерСимволаСточкой = СтрНайти(Стр,".");

ЛеваяЧ = Лев(Стр, НомерСимволаСточкой -1);
ПравЧ = Сред(Стр,НомерСимволаСточкой +1);

//Лев(Стр, СтрНайти(Стр,"."));
Если ЛеваяЧ = "янв" Тогда
Месяц = 1;
ИначеЕсли ЛеваяЧ = "февр" Тогда
Месяц = 2;
ИначеЕсли ЛеваяЧ = "мар" Тогда
Месяц = 3;
ИначеЕсли ЛеваяЧ = "апр" Тогда
Месяц = 4;
ИначеЕсли ЛеваяЧ = "мая" Тогда
Месяц = 5;
ИначеЕсли ЛеваяЧ = "июн" Тогда
Месяц = 6;
ИначеЕсли ЛеваяЧ = "июл" Тогда
Месяц = 7;
ИначеЕсли ЛеваяЧ = "авг" Тогда
Месяц = 8;
ИначеЕсли ЛеваяЧ = "сен" Тогда
Месяц = 9;
ИначеЕсли ЛеваяЧ = "окт" Тогда
Месяц = 10;
ИначеЕсли ЛеваяЧ = "нояб" Тогда
Месяц = 11;
ИначеЕсли ЛеваяЧ = "дек" Тогда
Месяц = 12;
КонецЕсли;
Год = Число(ПравЧ)+ 2000;

Возврат Дата(Год,Месяц,1)

КонецФункции
И все стало на свои места
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы