Имя: Пароль:
1C
1С v8
Фишка в формировании текста запроса
0 Vovik
 
11.09.17
18:42
Хочу поделится фишкой в формировании текста в запросе.
Например есть:
    
|ГДЕ
+переменная+
|    И Заказы.КоличествоОстаток > 0
При правке запроса через конструктор приходится руками это добавлять - но есть удобный способ:

    |ГДЕ
    |    1 = 1
    |    И 2 = 2
    |    И 3 = 3
    |    И 4 = 4
    |    И Заказы.КоличествоОстаток > 0
Если ЗначениеЗаполнено(Контрагент) Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"1 = 1","Заказы.Контрагент В ИЕРАРХИИ(&Контрагент)");
КонецЕсли;
1 Vovik
 
11.09.17
18:43
Интересно почему нет в построителе что то такого что бы сохранялись коменты для свойств и категорий. При каждой правке приходится заново их проставлять.
2 Heckfy
 
11.09.17
18:44
А почему только до четырех? Почему не:
    |    И 4 = 4
    |    И 5 = 5
    |    И 6 = 6
    |    И 7 = 7
3 Vovik
 
11.09.17
18:44
Сколько надо предусмотреть условий столько и делай
4 vi0
 
11.09.17
18:44
(1) добро пожаловать в 1с
5 Vovik
 
11.09.17
18:45
Это ж пример
6 Fragster
 
гуру
11.09.17
18:50
автору читать про построитель запросов.
Ну и про семантику, типа не "1 = 1", а "&_УсловиеКонтрагента" для случаев, когда достаточно возможностей построителя
7 Vovik
 
11.09.17
19:01
Таких примеров в типовой масса.
Например модуль печати реализации в ут10

Запрос.Текст =
        "ВЫБРАТЬ
        |    ВложенныйЗапрос.Номенклатура                                  КАК Номенклатура,
        |    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,
        |    ВложенныйЗапрос.Номенклатура." + ТоварКод + "                 КАК ТоварКод,


- что бы быстро посмотреть конструктором сначала приходиться править " + ТоварКод + "
Править запрос, а потом возвращать " + ТоварКод + "

А если сразу сделать типа, с последующей заменой текста - то гораздо проще отлаживать

ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК ТоварНаименование,
    0 КАК ТоварКод,
8 Йохохо
 
11.09.17
19:05
(0) а теперь попади в индекс и удали свой пост
9 Vovik
 
11.09.17
19:06
(0) Какой индекс? Как можно удалить свой пост?
10 Йохохо
 
11.09.17
19:08
(9) просто попроси в своей ветке
11 Vovik
 
11.09.17
19:10
(10) Попроси сам. Не пойму что и зачем тебе надо.
Вроде что то я тебе сделал не так своим постом, но что именно не понимаю.
12 Йохохо
 
11.09.17
19:13
(11) если ни один из оптимизаторов запроса не сработает, ни 1с предприятия ни движка субд, ты получишь самый медленный запрос
13 Vovik
 
11.09.17
19:17
(12) Причем тут это? как простое условие типа "1 = 1" замедлит работу? Это чисто удобство для отладки, что бы быстро открывать конструктором.
14 bolder
 
11.09.17
20:02
(0) Не понял,всем новизна то?)1с уже давно пишет подобные запросы, которые открываются Прекрасно конструктором. СтрЗаменить  поищите в типовых на УФ.