Имя: Пароль:
1C
1С v8
Убрать лидирующие нули в результате запроса.
0 Bot01
 
19.11.13
11:28
Доброго времени суток.
Мне нужно соединить результаты двух запросов по полю "Код" в третьем запросе. Первый возвращает значения этого поля в виде "123", а второй - "0000000123".
Подскажите, пожалуйста, как можно убрать лидирующие нули в результате запроса.
(Можно, конечно, выгрузить результат второго запроса в ТЗ, а потом сделать запрос к этой таблице...)
1 capitanjack1
 
19.11.13
11:29
а если использовать функцию ВЫРАЗИТЬ ?
2 Ненавижу 1С
 
гуру
19.11.13
11:30
соединяй через ПОДОБНО
3 Wobland
 
19.11.13
11:30
(1) всё умрёт на "П-123"
4 Господин ПЖ
 
19.11.13
11:30
>Первый возвращает значения этого поля в виде "123", а второй - "0000000123"

оторвать руки автору первого запроса

пришить на место руки автору второго запроса
5 Господин ПЖ
 
19.11.13
11:31
надеюсь что это хотя бы обе строки
6 МойКодУныл
 
19.11.13
11:33
Переписать один из запросов для единообразия.
7 Bot01
 
19.11.13
11:34
(4) :) Первый запрос берёт данные из файла выгрузки кассы, а второй из справочника "Номенклатура". Можно сделать строками.
8 Bot01
 
19.11.13
11:37
(6) Про это ТО я и спрашиваю. КАК?
9 zladenuw
 
19.11.13
11:38
недавно гуглил. вдруг поможет

Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ    ВЫБОР КОГДА Т1.Стр ПОДОБНО ""0%"" ТОГДА ПОДСТРОКА(Т1.Стр, 2, 1000) ИНАЧЕ Т1.Стр КОНЕЦ КАК БезНулей
                   |ИЗ (ВЫБРАТЬ    ВЫБОР КОГДА Т2.Стр ПОДОБНО ""00%"" ТОГДА ПОДСТРОКА(Т2.Стр, 3, 1000) ИНАЧЕ Т2.Стр КОНЕЦ КАК Стр
                   |ИЗ (ВЫБРАТЬ    ВЫБОР КОГДА Т3.Стр ПОДОБНО ""0000%"" ТОГДА ПОДСТРОКА(Т3.Стр, 5, 1000) ИНАЧЕ Т3.Стр КОНЕЦ КАК Стр
                   |ИЗ (ВЫБРАТЬ    ВЫБОР КОГДА Т4.Стр ПОДОБНО ""00000000%"" ТОГДА ПОДСТРОКА(Т4.Стр, 9, 1000) ИНАЧЕ Т4.Стр КОНЕЦ КАК Стр
                   |ИЗ (ВЫБРАТЬ    ВЫБОР КОГДА Т5.Стр ПОДОБНО ""0000000000000000%"" ТОГДА ПОДСТРОКА(Т5.Стр, 17, 1000) ИНАЧЕ Т5.Стр КОНЕЦ КАК Стр
                   |ИЗ (ВЫБРАТЬ    ВЫБОР КОГДА &ЕстьНули ПОДОБНО ""00000000000000000000000000000000%"" ТОГДА ПОДСТРОКА(&ЕстьНули, 33, 1000) ИНАЧЕ &ЕстьНули КОНЕЦ КАК Стр) КАК Т5) КАК Т4) КАК Т3) КАК Т2) КАК Т1";
                  
    Фигня = "0000000000000000000000000000000000000000000000000000000000000000123";
    Запрос.УстановитьПараметр("ЕстьНули", Фигня);
    Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
    Сообщить("Было : " + Фигня + ", стало : " + Выборка.БезНулей);
10 Artful Den
 
19.11.13
11:38
(7) Первый запрос берет данные из файла выгрузки кассы каким образом?
11 zakidonoff
 
19.11.13
11:39
(9) лучше уж перебор.
12 zladenuw
 
19.11.13
11:45
(11) ну не скажи. у нас перебор занимал 17 минут. запросы делают это все за 64 секунды. мержим остатки двух баз
13 Bot01
 
19.11.13
11:50
(9) Спасибо. Попробую.
Программист всегда исправляет последнюю ошибку.