Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Как в запросе 1с8.2 из строки получить дату?

Как в запросе 1с8.2 из строки получить дату?
Я
   Genych76
 
07.11.18 - 10:08
Здравствуйте! Подскажите пожалуйста как в запросе в 1с8.2 получить дату из реквизита. Скажем,
 ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.СуммаДокумента,
    РеализацияТоваровУслуг.Дата,
    РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Комментарий
ИЗ .....

Надо получить дату содержащуюся в РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Комментарий..

Заранее признателен за ответ
 
 
   ДенисЧ
 
1 - 07.11.18 - 10:11
Никак
   butterbean
 
2 - 07.11.18 - 10:12
если этот изврат из-за СКД, то проще сделать общую функцию разбирающую комментарий и ее использовать в СКД
   Fragster
 
3 - 07.11.18 - 10:12
(1) прав
   rsv
 
4 - 07.11.18 - 10:22
(0) Несколько неудобно..правда?.Но к сож.Выразить() это сильно обрезаный Саst()
   zva
 
5 - 07.11.18 - 10:29
Что, программисты от 200к, сдулись?
   1Сергей
 
6 - 07.11.18 - 10:44
Есть один способ, но он вам не понравится
   Fragster
 
7 - 07.11.18 - 10:56
(5) программисты за 200к понимают, что методически неправильно хранить дату в строковом поле. Правильно добавить, например, дополнительный реквизит.
   CHerypga
 
8 - 07.11.18 - 11:00
(0) вспомнилась обратная ситуация
http://devtrainingforum.v8.1c.ru/forum/mess_files/DILBERT.jpg
   Timon1405
 
9 - 07.11.18 - 11:01
объяснение от 1с, вроде, было такое: в общем случае мы не знаем в какой локализации будет выполняться код, и поэтому дата, например, 03-09-2018 в США и в России будут отличаться. поэтому и преобразовывать автоматом никак.
   YUN1
 
10 - 07.11.18 - 11:04
(0) Зачем это делать в запросе?
 
 Рекламное место пустует
   Fragster
 
11 - 07.11.18 - 11:11
(9) и оно правильное
   МихаилМ
 
12 - 07.11.18 - 11:46
(0) соедините с заранее заполненной таблицей соответствий.
   Йохохо
 
13 - 07.11.18 - 11:47
(11) скуль умеет в дату из разных локальных форматов, так что не совсем
   elCust
 
14 - 07.11.18 - 11:51
(5) >> Что, программисты от 200к

Ооооо пригорело!
   1Сергей
 
15 - 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
   Serg_1960
 
16 - 07.11.18 - 12:14
(15) У меня нет слов... цензурных. Ну это то зачем сюда копипастить? :(
   1Сергей
 
17 - 07.11.18 - 12:15
(16) это ответ на (0)
   Serg_1960
 
18 - 07.11.18 - 12:16
Уж лучше бы промолчать :)
   1Сергей
 
19 - 07.11.18 - 12:17
Я сразу сказал, что решение есть, но оно не понравится
   Serg_1960
 
20 - 07.11.18 - 12:22
Мой скромный вклад :)
v8: Дата в строку в запросе..
   Serg_1960
 
21 - 07.11.18 - 12:23
   Fragster
 
22 - 07.11.18 - 12:24
(15) а если там дата в другом формате? а если пробел или еще какие слова перед датой?
   1Сергей
 
23 - 07.11.18 - 12:26
(22) если в другом формате, тогда вообще задница. Никак не вытащить.
остальное учтено
ПО (РеализацияТоваровУслуг.Комментарий ПОДОБНО ("%"+ТаблицаДат.ДатаС+"%"))
   АгентБезопаснойНацио
 
24 - 07.11.18 - 12:26
(8) !!!!!
   1Сергей
 
25 - 07.11.18 - 12:27
(20) если отходить от концепции "только запросом", то проще постобработкой
   arsik
 
26 - 07.11.18 - 12:29
Есть еще один вариант.
Создать большую таблицу с датами в виде строки от 1900 по 2100 и сравнивать с ней.
   arsik
 
27 - 07.11.18 - 12:30
(23) А да. Извиняюсь, не увидел
   Serg_1960
 
28 - 07.11.18 - 12:31
(25) Да вся эта тема - баян лохматый. Уже сто раз неоднократно обсуждали не только тут на форуме.
   Serg_1960
 
29 - 07.11.18 - 12:33
ЛУчше научите автора поиском пользоваться :)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует