|
Как в запросе 1с8.2 из строки получить дату? | ☑ | ||
---|---|---|---|---|
0
Genych76
07.11.18
✎
10:08
|
Здравствуйте! Подскажите пожалуйста как в запросе в 1с8.2 получить дату из реквизита. Скажем,
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.СуммаДокумента, РеализацияТоваровУслуг.Дата, РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Комментарий ИЗ ..... Надо получить дату содержащуюся в РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Комментарий.. Заранее признателен за ответ |
|||
1
ДенисЧ
07.11.18
✎
10:11
|
Никак
|
|||
2
butterbean
07.11.18
✎
10:12
|
если этот изврат из-за СКД, то проще сделать общую функцию разбирающую комментарий и ее использовать в СКД
|
|||
3
Fragster
гуру
07.11.18
✎
10:12
|
(1) прав
|
|||
4
rsv
07.11.18
✎
10:22
|
(0) Несколько неудобно..правда?.Но к сож.Выразить() это сильно обрезаный Саst()
|
|||
5
zva
07.11.18
✎
10:29
|
Что, программисты от 200к, сдулись?
|
|||
6
1Сергей
07.11.18
✎
10:44
|
Есть один способ, но он вам не понравится
|
|||
7
Fragster
гуру
07.11.18
✎
10:56
|
(5) программисты за 200к понимают, что методически неправильно хранить дату в строковом поле. Правильно добавить, например, дополнительный реквизит.
|
|||
8
CHerypga
07.11.18
✎
11:00
|
(0) вспомнилась обратная ситуация
http://devtrainingforum.v8.1c.ru/forum/mess_files/DILBERT.jpg |
|||
9
Timon1405
07.11.18
✎
11:01
|
объяснение от 1с, вроде, было такое: в общем случае мы не знаем в какой локализации будет выполняться код, и поэтому дата, например, 03-09-2018 в США и в России будут отличаться. поэтому и преобразовывать автоматом никак.
|
|||
10
YUN1
07.11.18
✎
11:04
|
(0) Зачем это делать в запросе?
|
|||
11
Fragster
гуру
07.11.18
✎
11:11
|
(9) и оно правильное
|
|||
12
МихаилМ
07.11.18
✎
11:46
|
(0) соедините с заранее заполненной таблицей соответствий.
|
|||
13
Йохохо
07.11.18
✎
11:47
|
(11) скуль умеет в дату из разных локальных форматов, так что не совсем
|
|||
14
elCust
07.11.18
✎
11:51
|
(5) >> Что, программисты от 200к
Ооооо пригорело! |
|||
15
1Сергей
07.11.18
✎
12:03
|
Заранее прошу прощения за простыню.
Кароче, вот: ВЫБРАТЬ ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, ТГоды.Год - 1), МЕСЯЦ, ТМесяцы.Месяц - 1), ДЕНЬ, ТДни.День - 1) КАК ДАТА, ТДни.ДеньС + "." + ТМесяцы.МесяцС + "." + ТГоды.ГодС КАК ДатаС ПОМЕСТИТЬ ТаблицаДат ИЗ (ВЫБРАТЬ 1 КАК День, "01" КАК ДеньС ОБЪЕДИНИТЬ ВЫБРАТЬ 2, "02" ОБЪЕДИНИТЬ ВЫБРАТЬ 3, "03" ОБЪЕДИНИТЬ ВЫБРАТЬ 4, "04" ОБЪЕДИНИТЬ ВЫБРАТЬ 5, "05" ОБЪЕДИНИТЬ ВЫБРАТЬ 6, "06" ОБЪЕДИНИТЬ ВЫБРАТЬ 7, "07" ОБЪЕДИНИТЬ ВЫБРАТЬ 8, "08" ОБЪЕДИНИТЬ ВЫБРАТЬ 9, "09" ОБЪЕДИНИТЬ ВЫБРАТЬ 10, "10" ОБЪЕДИНИТЬ ВЫБРАТЬ 11, "11" ОБЪЕДИНИТЬ ВЫБРАТЬ 12, "12" ОБЪЕДИНИТЬ ВЫБРАТЬ 13, "13" ОБЪЕДИНИТЬ ВЫБРАТЬ 14, "14" ОБЪЕДИНИТЬ ВЫБРАТЬ 15, "15" ОБЪЕДИНИТЬ ВЫБРАТЬ 16, "16" ОБЪЕДИНИТЬ ВЫБРАТЬ 17, "17" ОБЪЕДИНИТЬ ВЫБРАТЬ 18, "18" ОБЪЕДИНИТЬ ВЫБРАТЬ 19, "19" ОБЪЕДИНИТЬ ВЫБРАТЬ 20, "20" ОБЪЕДИНИТЬ ВЫБРАТЬ 21, "21" ОБЪЕДИНИТЬ ВЫБРАТЬ 22, "22" ОБЪЕДИНИТЬ ВЫБРАТЬ 23, "23" ОБЪЕДИНИТЬ ВЫБРАТЬ 24, "24" ОБЪЕДИНИТЬ ВЫБРАТЬ 25, "25" ОБЪЕДИНИТЬ ВЫБРАТЬ 26, "26" ОБЪЕДИНИТЬ ВЫБРАТЬ 27, "27" ОБЪЕДИНИТЬ ВЫБРАТЬ 28, "28" ОБЪЕДИНИТЬ ВЫБРАТЬ 29, "29" ОБЪЕДИНИТЬ ВЫБРАТЬ 30, "30" ОБЪЕДИНИТЬ ВЫБРАТЬ 31, "31") КАК ТДни ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 1 КАК Месяц, "01" КАК МесяцС ОБЪЕДИНИТЬ ВЫБРАТЬ 2, "02" ОБЪЕДИНИТЬ ВЫБРАТЬ 3, "03" ОБЪЕДИНИТЬ ВЫБРАТЬ 4, "04" ОБЪЕДИНИТЬ ВЫБРАТЬ 5, "05" ОБЪЕДИНИТЬ ВЫБРАТЬ 6, "06" ОБЪЕДИНИТЬ ВЫБРАТЬ 7, "07" ОБЪЕДИНИТЬ ВЫБРАТЬ 8, "08" ОБЪЕДИНИТЬ ВЫБРАТЬ 9, "09" ОБЪЕДИНИТЬ ВЫБРАТЬ 10, "10" ОБЪЕДИНИТЬ ВЫБРАТЬ 11, "11" ОБЪЕДИНИТЬ ВЫБРАТЬ 12, "12") КАК ТМесяцы ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 2008 КАК Год, "2008" КАК ГодС ОБЪЕДИНИТЬ ВЫБРАТЬ 2009, "2009" ОБЪЕДИНИТЬ ВЫБРАТЬ 2010, "2010" ОБЪЕДИНИТЬ ВЫБРАТЬ 2011, "2011" ОБЪЕДИНИТЬ ВЫБРАТЬ 2012, "2012" ОБЪЕДИНИТЬ ВЫБРАТЬ 2013, "2013" ОБЪЕДИНИТЬ ВЫБРАТЬ 2014, "2014" ОБЪЕДИНИТЬ ВЫБРАТЬ 2015, "2015" ОБЪЕДИНИТЬ ВЫБРАТЬ 2016, "2016" ОБЪЕДИНИТЬ ВЫБРАТЬ 2017, "2017" ОБЪЕДИНИТЬ ВЫБРАТЬ 2018, "2018" ОБЪЕДИНИТЬ ВЫБРАТЬ 2019, "2019") КАК ТГоды ПО (ИСТИНА) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Комментарий, ТаблицаДат.ДатаС ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДат КАК ТаблицаДат ПО (РеализацияТоваровУслуг.Комментарий ПОДОБНО ("%"+ТаблицаДат.ДатаС+"%")) ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2 |
|||
16
Serg_1960
07.11.18
✎
12:14
|
(15) У меня нет слов... цензурных. Ну это то зачем сюда копипастить? :(
|
|||
17
1Сергей
07.11.18
✎
12:15
|
(16) это ответ на (0)
|
|||
18
Serg_1960
07.11.18
✎
12:16
|
Уж лучше бы промолчать :)
|
|||
19
1Сергей
07.11.18
✎
12:17
|
Я сразу сказал, что решение есть, но оно не понравится
|
|||
20
Serg_1960
07.11.18
✎
12:22
|
Мой скромный вклад :)
v8: Дата в строку в запросе.. |
|||
21
Serg_1960
07.11.18
✎
12:23
|
Ну и до кучи:
http://catalog.mista.ru/public/170336/ |
|||
22
Fragster
гуру
07.11.18
✎
12:24
|
(15) а если там дата в другом формате? а если пробел или еще какие слова перед датой?
|
|||
23
1Сергей
07.11.18
✎
12:26
|
(22) если в другом формате, тогда вообще задница. Никак не вытащить.
остальное учтено ПО (РеализацияТоваровУслуг.Комментарий ПОДОБНО ("%"+ТаблицаДат.ДатаС+"%")) |
|||
24
АгентБезопасной Нацио
07.11.18
✎
12:26
|
(8) !!!!!
|
|||
25
1Сергей
07.11.18
✎
12:27
|
(20) если отходить от концепции "только запросом", то проще постобработкой
|
|||
26
arsik
гуру
07.11.18
✎
12:29
|
Есть еще один вариант.
Создать большую таблицу с датами в виде строки от 1900 по 2100 и сравнивать с ней. |
|||
27
arsik
гуру
07.11.18
✎
12:30
|
(23) А да. Извиняюсь, не увидел
|
|||
28
Serg_1960
07.11.18
✎
12:31
|
(25) Да вся эта тема - баян лохматый. Уже сто раз неоднократно обсуждали не только тут на форуме.
|
|||
29
Serg_1960
07.11.18
✎
12:33
|
ЛУчше научите автора поиском пользоваться :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |