Запрос Преобразовать конвертировать строку в Дата "ГГГГММДД" Запросом из Строки
Источник: https://infostart.ru/1c/articles/170336/
ВЫБРАТЬ
01 КАК НомерСтроки,
"20260105170929" КАК Строка,
"20221231235959" КАК Строка1
ПОМЕСТИТЬ Дано
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
02 КАК НомерСтроки,
"20260827140942" КАК Строка,
"20221201000000" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
03 КАК НомерСтроки,
"20250626010517" КАК Строка,
"20230318122825" КАК Строка1
ОБЪЕДИНИТЬ ВСЕ
//
ВЫБРАТЬ
04 КАК НомерСтроки,
"20251105201511" КАК Строка,
"20230105155243" КАК Строка1
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
0 КАК Х,
0 КАК Д,
0 КАК М,
1000 КАК Г
ПОМЕСТИТЬ Формат
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1 КАК Х,
0 КАК Д,
0 КАК М,
100 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2 КАК Х,
0 КАК Д,
0 КАК М,
10 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3 КАК Х,
0 КАК Д,
0 КАК М,
1 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4 КАК Х,
0 КАК Д,
10 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5 КАК Х,
0 КАК Д,
1 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6 КАК Х,
10 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7 КАК Х,
1 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9 КАК Х,
0 КАК Д,
0 КАК М,
0 КАК Г
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки КАК НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ
ПОМЕСТИТЬ ВТ_Ответ
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 9
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Дано.НомерСтроки КАК НомерСтроки,
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДОБАВИТЬКДАТЕ(
ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
ДЕНЬ,
СУММА(А.Д * Б.Х) - 1
),
МЕСЯЦ,
СУММА(А.М * Б.Х) - 1
),
ГОД,
СУММА(А.Г * Б.Х) - 1
) КАК Ответ1
ПОМЕСТИТЬ ВТ_Ответ1
ИЗ
Дано КАК Дано,
Формат КАК А,
Формат КАК Б
ГДЕ ИСТИНА
И А.Х < 9
И Б.Х < 10
И ПОДСТРОКА(Дано.Строка1, А.Х + 1, 1) =
ПОДСТРОКА("0123456789", Б.Х + 1, 1)
СГРУППИРОВАТЬ ПО
Дано.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тОтвет.НомерСтроки,
тОтвет.Ответ,
тОтвет1.Ответ1
ИЗ
ВТ_Ответ КАК тОтвет
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВТ_Ответ1 КАК тОтвет1
ПО тОтвет.НомерСтроки = тОтвет1.НомерСтроки
{} Ожидается идентификатор
Строка в дату по форматной строке
Определение длины строки в запросе
Добавить к дате и разность дат
В Запросе - Преобразовать количество остатков в строки запроса
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)