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