|
Объектные модели запросов | ☑ | ||
---|---|---|---|---|
0
_Дайвер_
12.09.19
✎
15:29
|
Расскажите кто использовал такую модель для написания запросов с кучей алгоритмических условий.
Если по старинке то запрос становится не читабелен совсем из за конструкций ДобавитьСтрокуВЗапрос(); Если Истина Тогда Иначе КонецЕсли, Для каждого "" ИЗ "" Цикл и т.д. |
|||
1
shuhard
12.09.19
✎
15:31
|
(0) таких нет
|
|||
2
strange2007
12.09.19
✎
15:33
|
Запросы всегда стараюсь писать так, что бы можно было открыть стандартным конструктором, ибо лентяй и не сторонник разбора сложных конструкций.
А что такое "объектная модель запроса"? |
|||
3
piter3
12.09.19
✎
15:34
|
Собрать текст запроса что ли?
|
|||
4
novichok79
12.09.19
✎
15:35
|
||||
5
_Дайвер_
12.09.19
✎
15:36
|
||||
6
novichok79
12.09.19
✎
15:37
|
так обычно пишу через подстановку параметров в текст запроса, чтобы конструктор работал, затем заменяю параметры в коде через СтрЗаменить.
за рваные запросы без явной на то причины нужно кастрировать имхо. |
|||
7
novichok79
12.09.19
✎
15:37
|
есть еще построительзапроса, его можно заюзать.
|
|||
8
strange2007
12.09.19
✎
15:40
|
Так я значит объектную модель запросов использую! О как!
Тады свои "костыли" тоже вставлю. Например, ну очень долгий запрос и иногда надо в первом пакете отобрать по сотруднику. Можно СтрЗаменить, но я делаю так Выбор Когда &СотрудникЕсть Тогда Сотрудник = &Сотрудник Иначе Истина Конец Я знаю, что за такое могут побить из-за эффективности. Но оно читаемо и можно быстро в консольку перетащить |
|||
9
aleks_default
12.09.19
✎
15:44
|
В ERP вобще считай все запросы на "объектной модели"
|
|||
10
aleks_default
12.09.19
✎
15:45
|
Особенно пакетные
|
|||
11
strange2007
12.09.19
✎
15:46
|
В ЗУПе запросы, просто слёзы. Иногда что бы просто отладить запросик, приходится пол дня копаться в километровых вложенностях кода. Прям аж вообще
|
|||
12
1сник123
12.09.19
✎
15:49
|
(0) только сейчас узнал про это(( круть!
|
|||
13
_Дайвер_
12.09.19
✎
15:50
|
(10) Ну если они закоментированы и разбиты по блокам, то в итоге удобно считаю редактировать логику запроса, или есть какие-то сложности? просто мне не приходилось сталкиваться в работе с ними, но есть крутая штука при формировании запроса ПолучитьТекстЗапроса(), который уже анализировать и если что править
|
|||
14
_Дайвер_
12.09.19
✎
15:54
|
(8) Это не объектная модель запроса))) это просто удобно что конструктор хавает такой запрос, а не СтрЗаменить()
|
|||
15
singlych
12.09.19
✎
15:54
|
Объектная модель хреново подходит для собирания текста запроса с нуля. Можно, но очень нечитабельно получается. Она скорее для того, чтобы при надобности подправить то, что есть.
А еще объектная модель не всегда корректно работает с условиями компоновки и может запороть отчет. |
|||
16
aleks_default
12.09.19
✎
15:56
|
Сложность в том ты никогда не поймешь логику общего запроса, пока в отладке его не сформируешь. А потом когда получишь полный текст общего запроса и найдешь ошибку, то хрен потом разберешься как найти тот блок который нужно исправить.
|
|||
17
aleks_default
12.09.19
✎
15:57
|
Хотя бы комментарии к тексту они стали добавлять, по ним можно найти...
|
|||
18
unenu
12.09.19
✎
16:06
|
(0)
- одна из самых неудачных технологий 1С в расчете на человека - одна из самых удачных технологий 1С в расчете на бота. |
|||
19
_Дайвер_
12.09.19
✎
16:13
|
(17) ну в таком варианте считаю схема запроса адекватная и читабельная
//Создание схемы запроса СхемаЗапроса = Новый СхемаЗапроса; ЗапросВыбораИзИБ = СхемаЗапроса.ПакетЗапросов[0]; //Установка свойств запроса ЗапросВыбораИзИБ.ТаблицаДляПомещения = "ТаблицаОбороты"; ЗапросВыбораИзИБ.ВыбиратьРазрешенные = Истина; //Добавляем операторы выбора первого запроса пакета ОператорВыбораЗакупок = ЗапросВыбораИзИБ.Операторы[0]; ИсточникНоменклатура = ОператорВыбораЗакупок.Источники.Добавить("Справочник.Номенклатура","Товары"); //Добавляем запрос выбора из регистра закупок ИсточникЗакупки = ОператорВыбораЗакупок.Источники.Добавить("РегистрНакопления.Закупки.Обороты","Закупки"); ИсточникЗакупки.Источник.Параметры[0].Выражение = Новый ВыражениеСхемыЗапроса("&Начало") ; ИсточникЗакупки.Источник.Параметры[1].Выражение = Новый ВыражениеСхемыЗапроса("&Окончание") ; ИсточникЗакупки.Источник.Параметры[2].Выражение = Новый ВыражениеСхемыЗапроса("Месяц") ; //Меняем тип соединения ИсточникЗакупки.Соединения[0].ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее; //Указываем выбираемые поля ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("Товары.Ссылка"); ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("Закупки.Период"); ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("ЕСТЬNULL(Закупки.СуммаОборот, 0)"); ОператорВыбораЗакупок.ВыбираемыеПоля.Добавить("0"); //Указываем спевдонимы для выбранных полей ЗапросВыбораИзИБ.Колонки[0].Псевдоним = "Номенклатура"; ЗапросВыбораИзИБ.Колонки[1].Псевдоним = "Период"; ЗапросВыбораИзИБ.Колонки[2].Псевдоним = "СуммаЗакупок"; ЗапросВыбораИзИБ.Колонки[3].Псевдоним = "СуммаПродаж"; //Добавляем отбор ОператорВыбораЗакупок.Отбор.Добавить("НЕ Товары.ЭтоГруппа"); |
|||
20
aleks_default
12.09.19
✎
16:23
|
Ну считай... До первого сложного запроса
|
|||
21
ам794123
12.09.19
✎
16:49
|
(13) Круто если была бы обратная функция - получить из текста запроса схему запроса.
|
|||
22
Ботаник Гарден Меран
12.09.19
✎
17:39
|
(21)
СхемаЗапроса.УстановитьТекстЗапроса ? Выросло поколение, которому даже гуглить лень. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |