| 
    
        
     
     | 
    
  | 
Как в запросе отобрать число как строку? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Михаил Анянов    
     24.12.09 
            ✎
    09:43 
 | 
         
        Как реализовать к примеру если какое-то поле числовое, преобразовать его сразу в строку?     
         | 
|||
| 
    1
    
        Михаил Анянов    
     24.12.09 
            ✎
    09:44 
 | 
         
        В запросе, чтобы далее можно было использовать оператор ПОДОБНО     
         | 
|||
| 
    2
    
        Михаил Анянов    
     24.12.09 
            ✎
    09:45 
 | 
         
        Нужно что-то вроде Строка(Таблица.Поле1)     
         | 
|||
| 
    3
    
        mikecool    
     24.12.09 
            ✎
    09:51 
 | 
         
        (0) в запросе - никак     
         | 
|||
| 
    4
    
        mikecool    
     24.12.09 
            ✎
    09:51 
 | 
         
        +3 или извращаться с выбором, варианты уже были     
         | 
|||
| 
    5
    
        Defender aka LINN    
     24.12.09 
            ✎
    09:52 
 | 
         
        Еще один...     
         | 
|||
| 
    6
    
        mikecool    
     24.12.09 
            ✎
    09:52 
 | 
         
        (5) ты уж поконткретнее :)     
         | 
|||
| 
    7
    
        EasyRider    
     24.12.09 
            ✎
    09:54 
 | 
         
        Представление(Таблица.Поле1)     
         | 
|||
| 
    8
    
        mikecool    
     24.12.09 
            ✎
    09:58 
 | 
         
        (7) а к представлению можно функции применять?     
         | 
|||
| 
    9
    
        anatoly    
     24.12.09 
            ✎
    09:59 
 | 
         
        можно ВЫРАЗИТЬ КАК СТРОКА
  
        (синтаксис точно не помню, посмотри в помощнике)  | 
|||
| 
    10
    
        EasyRider    
     24.12.09 
            ✎
    09:59 
 | 
         
        (8)да
  
        (9)Выразить не пойдет - это для составного типа  | 
|||
| 
    11
    
        Широкий    
     24.12.09 
            ✎
    10:01 
 | 
         
        (10) Не обязательно для составного.. но согласен что не подойдет     
         | 
|||
| 
    12
    
        EasyRider    
     24.12.09 
            ✎
    10:02 
 | 
         
        (11)А для какого еще,кроме составного?     
         | 
|||
| 
    13
    
        mikecool    
     24.12.09 
            ✎
    10:03 
 | 
         
        (10) чета не работает  
        выбрать Представление(123) где Представление(123) подобно &Параметр грит неверные параметры Подобно где <<>>Представление(123) подобно &Параметр  | 
|||
| 
    14
    
        mikecool    
     24.12.09 
            ✎
    10:03 
 | 
         
        +13 научи , как     
         | 
|||
| 
    15
    
        EasyRider    
     24.12.09 
            ✎
    10:06 
 | 
         
        (13)В условия нельзя.Я думал ты имеешь ввиду под функцией например: Представление(124/2)     
         | 
|||
| 
    16
    
        mikecool    
     24.12.09 
            ✎
    10:08 
 | 
         
        (15) дык, топик читай внимательно и не сей несбыточную мечту     
         | 
|||
| 
    17
    
        EasyRider    
     24.12.09 
            ✎
    10:12 
 | 
         
        (16)Хочет числовое поле преобразовать в строку.Я так и понял     
         | 
|||
| 
    18
    
        EasyRider    
     24.12.09 
            ✎
    10:13 
 | 
         
        а...про подобно не дочитал...     
         | 
|||
| 
    19
    
        also    
     24.12.09 
            ✎
    10:15 
 | 
         
        (16)  
        Функция ВЗапросеИзЧислаСтроку(ИмяПоля,ДлинаЦел,ДлинаДробь,ЛидирующийСимвол="") Запрос = Новый Запрос("ВЫБРАТЬ ВЫРАЗИТЬ(0.5 КАК ЧИСЛО (15,0)) КАК Проверка"); РЗ = Запрос.Выполнить().Выбрать(); РЗ.Следующий(); ЗапросОкругляетПоАрифметическимПравилам = Рз.Проверка = 1; Ткст = "ВЫБОР КОГДА "+ИмяПоля+"<0 Тогда ""-"" ИНАЧЕ """" КОНЕЦ " + Символы.ПС; ИмяПоляАбс = " ВЫБОР КОГДА "+ИмяПоля+"<0 ТОГДА -"+ИмяПоля+" ИНАЧЕ "+ИмяПоля+" КОНЕЦ "; Парам = Pow(10,ДлинаЦел-1); Для Бегим = 1 По ДлинаЦел+ДлинаДробь цикл Ткст = Ткст + ?(Бегим = ДлинаЦел+1,"+"".""+","+"); Ткст = Ткст + " ВЫБОР " + Символы.ПС + ?(Бегим<ДлинаЦел," КОГДА " + ИмяПоляАбс + " < " +Формат(Парам,"ЧРД=.; ЧГ=")+" ТОГДА """+ЛидирующийСимвол+""" " + Символы.ПС,""); Для Цифирка = 0 По 9 Цикл Ткст = Ткст + " КОГДА "+ИмяПоляАбс+"-"+Формат(Парам*10,"ЧРД=.; ЧГ=")+"*ВЫРАЗИТЬ(("+ИмяПоляАбс+?(ЗапросОкругляетПоАрифметическимПравилам,"-"+Формат(Парам*5,"ЧРД=.; ЧГ="),"")+")/"+Формат(Парам*10,"ЧРД=.; ЧГ=")+" КАК ЧИСЛО(15, 0))"+" >= "+Формат((9-Цифирка)*Парам,"ЧН=0; ЧРД=.; ЧГ=")+" ТОГДА """+Формат(9-Цифирка,"ЧН=0; ЧРД=.; ЧГ=")+""" " + Символы.ПС; КонецЦикла; Ткст = Ткст + " ИНАЧЕ ""0"""+Символы.ПС+" Конец " + Символы.ПС; Парам = Парам/10; КонецЦикла; Возврат Ткст; КонецФункции Запрос = Новый Запрос(" ВЫБРАТЬ ""Полученная строка : ""+"+ВЗапросеИзЧислаСтроку(ИмяПоля2,ДлинаЦел2,ДлинаДробь2)+" КАК Стр "); РЗ = Запрос.Выполнить().Выбрать(); пока РЗ.Следующий() цикл Сообщить(РЗ.СТр); конеццикла; взято отсюда v8: Сложение в запросе ВложенныЗапрос.Цена + "*". Может я хочу невозможного?  | 
|||
| 
    20
    
        EasyRider    
     24.12.09 
            ✎
    10:17 
 | 
         
        (16)Вот так кстати работает:
  
        ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Номенклатура.Код) как код, Номенклатура.Наименование ИЗ Справочник.Номенклатура КАК Номенклатура где код подобно &Код  | 
|||
| 
    21
    
        Defender aka LINN    
     24.12.09 
            ✎
    10:23 
 | 
         
        (20) Уж сколько раз твердили дя... миру. Представление() в запросе - НЕ СТРОКА. НЕ СТРОКА, хоть как ты не пыжься и не тычь мне в результаты запроса. НЕ СТРОКА.     
         | 
|||
| 
    22
    
        EasyRider    
     24.12.09 
            ✎
    10:24 
 | 
         
        (21)Чего раскричался?А что там?     
         | 
|||
| 
    23
    
        EasyRider    
     24.12.09 
            ✎
    10:25 
 | 
         
        +(22)Запрос-то так работает?     
         | 
|||
| 
    24
    
        Defender aka LINN    
     24.12.09 
            ✎
    10:27 
 | 
         
        (22) Представление. В документации все написано, но никто ж себя не утруждает чтением.     
         | 
|||
| 
    25
    
        EasyRider    
     24.12.09 
            ✎
    10:29 
 | 
         
        (24)Но запрос из (20) работает?Сравнивать со строкой дает?     
         | 
|||
| 
    26
    
        MoneG    
     24.12.09 
            ✎
    10:31 
 | 
         
        (25) дает, дает.. РезультатЗапроса дает, а не сам запрос.     
         | 
|||
| 
    27
    
        EasyRider    
     24.12.09 
            ✎
    10:31 
 | 
         
        (24)Функция ПРЕДСТАВЛЕНИЕ 
  
        Данная функция предназначена для получения строкового представления значения произвольного типа. Параметр функции – выражение любого типа. Возвращаемое значение – представление значения, тип Строка. Результат работы функции не может быть использован внутри других функций, за исключением функции ПРЕДСТАВЛЕНИЕ.  | 
|||
| 
    28
    
        НЕА123    
     24.12.09 
            ✎
    10:34 
 | 
         
        странно, но (20) работает, и сравнивать дает... хоть и не строка.     
         | 
|||
| 
    29
    
        Рэйв    
     24.12.09 
            ✎
    10:35 
 | 
         
        (27)Последний абзац прочитай внимательно.   
        подобно- это как раз функция  | 
|||
| 
    30
    
        DUDE    
     24.12.09 
            ✎
    10:35 
 | 
         
        выдержка из описания встроенного языка, раздел выражения языка запросов:
  
        "Функция ПРЕДСТАВЛЕНИЕ Данная функция предназначена для получения строкового представления значения произвольного типа. Параметр функции – выражение любого типа. Возвращаемое значение – представление значения, тип Строка. Результат работы функции не может быть использован внутри других функций, за исключением функции ПРЕДСТАВЛЕНИЕ ".  | 
|||
| 
    31
    
        EasyRider    
     24.12.09 
            ✎
    10:36 
 | 
         
        (29)И? Функция...с типом Строка     
         | 
|||
| 
    32
    
        mikecool    
     24.12.09 
            ✎
    10:36 
 | 
         
        (28) потому что Номенклатура.Код тип строка?     
         | 
|||
| 
    33
    
        EasyRider    
     24.12.09 
            ✎
    10:36 
 | 
         
        (32)Нет     
         | 
|||
| 
    34
    
        НЕА123    
     24.12.09 
            ✎
    10:38 
 | 
         
        (29)
  
        ты спутал... это оператор.  | 
|||
| 
    35
    
        MoneG    
     24.12.09 
            ✎
    10:38 
 | 
         
        (33) что "нет"? Ты псевдоним адекватный (уникальный) задай.     
         | 
|||
| 
    36
    
        EasyRider    
     24.12.09 
            ✎
    10:39 
 | 
         
        (35)Жесть...     
         | 
|||
| 
    37
    
        mikecool    
     24.12.09 
            ✎
    10:39 
 | 
         
        (33) что "Нет"? в 20 идет в подобно не Представление, а Номенклатура.Код     
         | 
|||
| 
    38
    
        Михаил Анянов    
     24.12.09 
            ✎
    10:39 
 | 
         
        (5) кто тут?     
         | 
|||
| 
    39
    
        EasyRider    
     24.12.09 
            ✎
    10:39 
 | 
         
        (35)    ВЫБРАТЬ
  
        ПРЕДСТАВЛЕНИЕ(Номенклатура.КодЧ) как код, Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура где код подобно &Код  | 
|||
| 
    40
    
        DUDE    
     24.12.09 
            ✎
    10:40 
 | 
         
        (29) +1. Но с другой стороны и в (24) ответ не особо корректный, думаю, на вопрос "А что там?" стоило ответить не тупо "Представление", а более понятно и развернута - "само по себе это - функция, а результат ее выполнения - строка".     
         | 
|||
| 
    41
    
        MoneG    
     24.12.09 
            ✎
    10:41 
 | 
         
        (39) чтобы ты понял, запусти вот это (ведь то же самое):
  
        ВЫБРАТЬ ИСТИНА ИЗ Справочник.Номенклатура КАК Номенклатура где ПРЕДСТАВЛЕНИЕ(Номенклатура.КодЧ) подобно &Код  | 
|||
| 
    42
    
        mikecool    
     24.12.09 
            ✎
    10:41 
 | 
         
        (39) нет такого поля КодЧ     
         | 
|||
| 
    43
    
        mikecool    
     24.12.09 
            ✎
    10:42 
 | 
         
        ВЫБРАТЬ  
        ПРЕДСТАВЛЕНИЕ(Номенклатура.Код) как кодЧ, Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура где кодЧ подобно &Код и так не находит поля КодЧ  | 
|||
| 
    44
    
        EasyRider    
     24.12.09 
            ✎
    10:42 
 | 
         
        (35)Ах ты ж!Был неправ!Если псевдоним другой указаьб,то не работает...     
         | 
|||
| 
    45
    
        EasyRider    
     24.12.09 
            ✎
    10:42 
 | 
         
        (41)Да-да,понял     
         | 
|||
| 
    46
    
        MoneG    
     24.12.09 
            ✎
    10:43 
 | 
         
        (0) по теме: пока только 1 "действующий" вариант - (16)
  
        добавлю еще v8: Дата в строку в запросе..  | 
|||
| 
    47
    
        НЕА123    
     24.12.09 
            ✎
    10:44 
 | 
         
        (35)+1
  
        (37)+1  | 
|||
| 
    48
    
        Михаил Анянов    
     24.12.09 
            ✎
    10:44 
 | 
         
        Вобщем ПРЕДСТАВЛЕНИЕ - то что нужно мне было, спасибо огромное :)     
         | 
|||
| 
    49
    
        EasyRider    
     24.12.09 
            ✎
    10:45 
 | 
         
        Спорили,спорили,я наконец-то понял,что был неправ и на тебе...     
         | 
|||
| 
    50
    
        mikecool    
     24.12.09 
            ✎
    10:45 
 | 
         
        (48) и как ты решишь свою задачу?     
         | 
|||
| 
    51
    
        Рэйв    
     24.12.09 
            ✎
    10:48 
 | 
         
        (34)Почему ошибся? Функция. Возвращает значение булево     
         | 
|||
| 
    52
    
        DUDE    
     24.12.09 
            ✎
    10:51 
 | 
         
        (51) И по документации идет "Функция ПРЕДСТАВЛЕНИЕ блаблабла".     
         | 
|||
| 
    53
    
        Михаил Анянов    
     24.12.09 
            ✎
    10:54 
 | 
         
        Делаю 
  
        ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Номенклатура.Код) как кодЧ, Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура где кодЧ подобно &Код а он пишет что поле кодЧ не найдено :(  | 
|||
| 
    54
    
        mikecool    
     24.12.09 
            ✎
    10:55 
 | 
         
        (53) прочитай уже всю ветку     
         | 
|||
| 
    55
    
        Рэйв    
     24.12.09 
            ✎
    10:55 
 | 
         
        (52)Я про ПОДОБНО :-)     
         | 
|||
| 
    56
    
        DUDE    
     24.12.09 
            ✎
    10:56 
 | 
         
        (55) эээмм тада ой :) прошу прощения)     
         | 
|||
| 
    57
    
        Rebelx    
     24.12.09 
            ✎
    10:58 
 | 
||||
| 
    58
    
        Михаил Анянов    
     24.12.09 
            ✎
    11:04 
 | 
         
        ВЫБРАТЬ
  
        Обороты.Субконто1 КАК Подразделение, ВЫБОР КОГДА Обороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ТОГДА Обороты.Субконто3 ИНАЧЕ Обороты.Субконто2 КОНЕЦ КАК СтатьяЗатрат, СУММА(Обороты.СуммаОборотДт) КАК Сумма, Обороты.Период КАК Период, эсПорядокСтатейЗатрат.Порядок КАК Порядок ИЗ РегистрСведений.эсПорядокСтатейЗатрат КАК эсПорядокСтатейЗатрат ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты( , , Месяц, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщехозяйственныеРасходы), , , , ) КАК Обороты ПО (ВЫБОР КОГДА Обороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ТОГДА Обороты.Субконто3 ИНАЧЕ Обороты.Субконто2 КОНЕЦ = эсПорядокСтатейЗатрат.СЗ) СГРУППИРОВАТЬ ПО Обороты.Период, Обороты.Субконто1, эсПорядокСтатейЗатрат.Порядок, ВЫБОР КОГДА Обороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ТОГДА Обороты.Субконто3 ИНАЧЕ Обороты.Субконто2 КОНЕЦ УПОРЯДОЧИТЬ ПО Порядок, СтатьяЗатрат, Период, Подразделение  | 
|||
| 
    59
    
        НЕА123    
     24.12.09 
            ✎
    11:04 
 | 
         
        (51)
  
        (52) в (29) речь идет про ПОДОБНО. ПОДОБНО - это логический оператор.  | 
|||
| 
    60
    
        Михаил Анянов    
     24.12.09 
            ✎
    11:06 
 | 
         
        Вот мой "кривой" запрос, в справочнике просто несколько статей затрат с одним наименованием (ссылки разные), как мне отобрать (сгруппировать может) по наименованию именно     
         | 
|||
| 
    61
    
        НЕА123    
     24.12.09 
            ✎
    11:07 
 | 
         
        (59)+
  
        хотя... какая разница... один крен с ПРЕДСТАВЛЕНИЕ() не работает.  | 
|||
| 
    62
    
        Михаил Анянов    
     24.12.09 
            ✎
    11:07 
 | 
         
        Бухгалтерия кривая, подстраиваться приходится самому, бухгалтер ничего менять не хочет     
         | 
|||
| 
    63
    
        hhhh    
     24.12.09 
            ✎
    11:08 
 | 
         
        (62) а какая связь тут с числами? Наименование - это ведь строка.     
         | 
|||
| 
    64
    
        Михаил Анянов    
     24.12.09 
            ✎
    11:09 
 | 
         
        РегистрСведений.эсПорядокСтатейЗатрат - самодельный - ставлю соответствие статей затрат (реальных в базе) - их наименованию (нужно создать свою иерархию)     
         | 
|||
| 
    65
    
        Михаил Анянов    
     24.12.09 
            ✎
    11:12 
 | 
         
        Если я делаю в отборе везде субконто_.Наименование, соединение не работает :-/     
         | 
|||
| 
    66
    
        hhhh    
     24.12.09 
            ✎
    11:17 
 | 
         
        (65) но числа то там откуда взялись? Сделай везде строки.     
         | 
|||
| 
    67
    
        Михаил Анянов    
     24.12.09 
            ✎
    11:21 
 | 
         
        Простите, невыспался, сделал Наименование, вместо = в соединении прописал ПОДОБНО, запутался я уже просто     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |