|
Предельная длина запроса, когда уже черт ногу сломит? | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
karabas11
04.09.16
✎
16:00
|
от какой длины запроса у вас волосы дыбом встают?
|
||||||||||||||||
1
Джинн
04.09.16
✎
16:02
|
Проблема не в длине, проблема в структуре.
|
||||||||||||||||
2
mkalimulin
04.09.16
✎
16:04
|
(0) Ты их читаешь что-ли?
|
||||||||||||||||
3
Горогуля
04.09.16
✎
16:05
|
мне двух строк хватит. семёрочного запроса
|
||||||||||||||||
4
shuhard
04.09.16
✎
16:07
|
(0) ты ещё зарплату себе по строчками потребуй
5000 строк |
||||||||||||||||
5
DDwe
04.09.16
✎
16:21
|
5000 строк фигня...
6. Свой вариант |
||||||||||||||||
6
Pahomich
04.09.16
✎
16:24
|
Краткость - сестра таланта
|
||||||||||||||||
7
karabas11
04.09.16
✎
16:38
|
(4) хорошая идея. как я не догадался.
|
||||||||||||||||
8
Бородатый Админ
04.09.16
✎
16:42
|
Если умные люди разбивают запрос на части и хотя бы где-то помечают, что и где они делали, то основная длина запроса не так уж и важна. А если в запросе однобуквенные переменные и непонятные условия, то и десять строк будет будут более чем достаточны.
|
||||||||||||||||
9
DailyLookingOnA Sunse
04.09.16
✎
16:44
|
Ну, длина. Программное формирование хуже.
А вот из типовой новые веяния: СхемаЗапроса = Новый СхемаЗапроса; СхемаЗапроса.УстановитьТекстЗапроса(Форма.Список.ТекстЗапроса); Источники = СхемаЗапроса.ПакетЗапросов[0].Операторы[0].Источники; Для Индекс = 0 По Источники.Количество() - 1 Цикл Если Источники[Индекс].Источник.ИмяТаблицы = "Справочник.ВнешниеПользователи" Тогда Источники.Удалить(Индекс); КонецЕсли; КонецЦикла; Форма.Список.ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); |
||||||||||||||||
10
Горогуля
04.09.16
✎
16:46
|
(9) ух ты! они удаляют элементы коллекции прямым обходом
|
||||||||||||||||
11
Горогуля
04.09.16
✎
16:47
|
(8) конструктор пожирает полезные комментарии
|
||||||||||||||||
12
DailyLookingOnA Sunse
04.09.16
✎
16:48
|
Вот еще красиво:
ОписаниеТекстаЗапроса = Новый Структура("Текст, КоличествоВременныхТаблиц"); ОбъединяемыеЗапросы = Новый Массив; ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_83_1_1()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_83_1_2_б()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_83_1_2_в()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_83_1_2_г()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_83_1_2_е()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_83_1_2_з()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_84_2()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_84_10()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_85_1_1()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_85_1_3()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_85_2_1()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел1_275_85_2_2()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел2_3729У_2_1()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел2_3729У_2_2()); ОбъединяемыеЗапросы.Добавить(ТекстЗапросаРезультатКонтроля_Раздел2_3729У_2_3()); СхемаЗапроса = Новый СхемаЗапроса; ВременныеТаблицы = Новый Массив; РезультирующиеВыборки = Новый Массив; УничтожениеОбщихВременныхТаблиц = Новый Массив; ШаблонПрефиксаТаблиц = "ЗапросКонтроля%1_"; ИндексОбъединяемогоЗапроса = 0; Для Каждого ОбъединяемыйЗапрос Из ОбъединяемыеЗапросы Цикл ПрефиксТаблиц = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонПрефиксаТаблиц, ИндексОбъединяемогоЗапроса); СхемаЗапроса.УстановитьТекстЗапроса(ОбъединяемыйЗапрос); ИменаВременныхТаблиц = Новый Соответствие; Для Каждого ПодзапросОбъединяемогоЗапроса Из СхемаЗапроса.ПакетЗапросов Цикл Если Не ПустаяСтрока(ПодзапросОбъединяемогоЗапроса.ТаблицаДляПомещения) Тогда // Временная таблица подзапроса УточнитьИменаВременныхТаблицВЗапросе(ПодзапросОбъединяемогоЗапроса, ИменаВременныхТаблиц, ПрефиксТаблиц); ИменаВременныхТаблиц.Вставить(ПодзапросОбъединяемогоЗапроса.ТаблицаДляПомещения, ПрефиксТаблиц + ПодзапросОбъединяемогоЗапроса.ТаблицаДляПомещения); ПодзапросОбъединяемогоЗапроса.ТаблицаДляПомещения = ИменаВременныхТаблиц[ПодзапросОбъединяемогоЗапроса.ТаблицаДляПомещения]; ВременныеТаблицы.Добавить(ПодзапросОбъединяемогоЗапроса.ПолучитьТекстЗапроса()); Иначе // Результирующая таблица подзапроса УточнитьИменаВременныхТаблицВЗапросе(ПодзапросОбъединяемогоЗапроса, ИменаВременныхТаблиц, ПрефиксТаблиц); РезультирующиеВыборки.Добавить(ПодзапросОбъединяемогоЗапроса.ПолучитьТекстЗапроса()); КонецЕсли; КонецЦикла; ИндексОбъединяемогоЗапроса = ИндексОбъединяемогоЗапроса + 1; КонецЦикла; РазделительЗапросов = " |; | |////////////////////////////////////////////////////////////////////////////////" + Символы.ПС; ТекстЗапросаВременныеТаблицы = СтрСоединить(ВременныеТаблицы, РазделительЗапросов); ТекстЗапросаРезультирующиеВыборки = СтрСоединить(РезультирующиеВыборки, РазделительЗапросов); ОписаниеТекстаЗапроса.Вставить("Текст", ТекстЗапросаВременныеТаблицы + РазделительЗапросов + ТекстЗапросаРезультирующиеВыборки); ОписаниеТекстаЗапроса.Вставить("КоличествоВременныхТаблиц", ВременныеТаблицы.Количество()); Возврат ОписаниеТекстаЗапроса; |
||||||||||||||||
13
DailyLookingOnA Sunse
04.09.16
✎
16:53
|
(10)
Чего "ух", там по смыслу один элемент, можно было бы и Прервать в цикл добавить. |
||||||||||||||||
14
Горогуля
04.09.16
✎
16:54
|
(13) СхемаЗапроса.ПакетЗапросов[0].Операторы[0].Источники - это тут один элемент?
|
||||||||||||||||
15
Горогуля
04.09.16
✎
16:55
|
(12) гы. это работает?
{ВнешняяОбработка.фирменнаяНакладная.Форма.Форма.Форма(3,6)}: Пропущен символ '"' (двойная кавычка) |<<?>> (Проверка: Сервер) |
||||||||||||||||
16
mkalimulin
04.09.16
✎
17:34
|
(14) Элементов может быть много, но они не повторяются.
|
||||||||||||||||
17
xReason
04.09.16
✎
18:36
|
(16) ну сколько там элементов и как сильно упала производительность из-за отсутствие прервать?
А если это будет последний элемент, то что будет быстрее прервать или завершение цикла? |
||||||||||||||||
18
xReason
04.09.16
✎
18:37
|
(10) А как надо?
|
||||||||||||||||
19
romix
04.09.16
✎
20:04
|
(11) Кстати да, их же можно сохранять. Например, в начале и конце, для каждого пакета запросов. Думаю может в 1С написать запрос в поддержку...
|
||||||||||||||||
20
romix
04.09.16
✎
20:19
|
Сожно было бы также сохранять комментарии для уникальных строк запроса.
|
||||||||||||||||
21
kumena
04.09.16
✎
20:28
|
я писал запросы, которые в конструкторе семь тысяч строчек. могу сказать, что надо структурировать запросы, тогда в них сложно будет заблудиться.
|
||||||||||||||||
22
Бородатый Админ
04.09.16
✎
20:31
|
(19) Тогда лучше пусть вообще "жрут" комментарии вместе с текстом запроса и соотносят с полями.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |