|
v7: Как упорядочить по двум реквизитам | ☑ | ||
---|---|---|---|---|
0
Ночной Эльф
06.08.12
✎
09:15
|
Доброго времени суток. Имеется запрос
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |НомерДок = Документ.ЗаданиеНаИзготовление.НомерДок; |Ширина = Документ.ЗаданиеНаИзготовление.Ширина; |Длина = Документ.ЗаданиеНаИзготовление.Длина; |Контрагент = Документ.ЗаданиеНаИзготовление.Контрагент; |ФактДатаВыполнения = Документ.ЗаданиеНаИзготовление.ФактДатаВыполнения; |ДатаВыполнения = Документ.ЗаданиеНаИзготовление.ДатаВыполнения; |Номенклатура = Документ.ЗаданиеНаИзготовление.Номенклатура; |ВидТипаПечати = Документ.ЗаданиеНаИзготовление.ВидТипаПечати; |ФактДатаРаботы = Документ.ЗаданиеНаИзготовление.ФактДатаРаботы; |ВремяВыполнения = Документ.ЗаданиеНаИзготовление.ВремяВыполнения; |Количество = Документ.ЗаданиеНаИзготовление.Количество; |Разрешение180 = Документ.ЗаданиеНаИзготовление.Разрешение180; |Разрешение360 = Документ.ЗаданиеНаИзготовление.Разрешение360; |Менеджер = Документ.ЗаданиеНаИзготовление.Автор; |ВидОперации = Документ.ЗаданиеНаИзготовление.ВидОперации; |ЗаданиеНаИзготовление = Документ.ЗаданиеНаИзготовление.ТекущийДокумент; |ДатаДок = Документ.ЗаданиеНаИзготовление.ДатаДок; |Группировка ЗаданиеНаИзготовление упорядочить по ЗаданиеНаИзготовление.ДатаВыполнения; |Группировка СтрокаДокумента упорядочить по СтрокаДокумента.ВидТипаПечати; |Условие(ВидОперации = Перечисление.ВидыОперацийЗаданиеНаИзготовление.ЗаданиеНаИзготовление); |"//}}ЗАПРОС ; Выдает ошибку на |Группировка СтрокаДокумента упорядочить по СтрокаДокумента.ВидТипаПечати; Как упорядочить в данном случае по реквизиту ВидТипаПечати табличной части документа ЗаданиеНаИзготовление? Пробовал и так |Группировка ЗаданиеНаИзготовление упорядочить по ЗаданиеНаИзготовление.ДатаВыполнения, ВидТипаПечати; Тоже выдает ошибку. Как это сделать? Всем заранее спасибо |
|||
1
Ночной Эльф
06.08.12
✎
09:18
|
Причем сортировка ЗаданиеНаИзготовление.ДатаВыполнения должна также остаться и должна быть главной
|
|||
2
Ночной Эльф
06.08.12
✎
09:27
|
добавил строку
|Группировка ВидТипаПечати упорядочить по ЗаданиеНаИзготовление.ВидТипаПечати; Все равно ошибку выдает как упорядочить по этому реквизиту не пойму |
|||
3
Ночной Эльф
06.08.12
✎
09:36
|
ПОднял
|
|||
4
Ёпрст
06.08.12
✎
09:38
|
(0) наслаждайся
................ |НомерСтроки= Документ.ЗаданиеНаИзготовление.НомерСтроки; |Функция ФункцияДляСортировки = Сумма(ВидТипаПечати); |Группировка ЗаданиеНаИзготовление упорядочить по ЗаданиеНаИзготовление.ДатаВыполнения; |Группировка НомерСтроки упорядочить по ФункцияДляСортировки; |"//}}ЗАПРОС |
|||
5
Ночной Эльф
06.08.12
✎
09:42
|
все равно вот такую ошибку выдает
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда {Документ.ЗаданиеНаИзготовление.Форма.Модуль(2784)}: Группировка ВидТипаПечати упорядочить по <<?>> ЗаданиеНаИзготовление.ВидТипаПечати; Запрос[22] : Ожидается конкретизация переменной 'ВидТипаПечати' |
|||
6
Ночной Эльф
06.08.12
✎
09:42
|
незнаю имеет значение нет но реквизит ВидТипаПечати это ссылка на справочник
|
|||
7
Ёпрст
06.08.12
✎
09:51
|
(5) олё.. ты (4) сделал ?
|
|||
8
Ночной Эльф
06.08.12
✎
09:54
|
да сделал выдавала ошибку которую я написал после того как сделал вот такую строку
|Функция ФункцияДляСортировки = Сумма(ВидТипаПечати.Наименование); ошибку перестало выдавать но не сортерует |
|||
9
Скользящий
06.08.12
✎
09:54
|
Если с запросом траблы, обычно проще выгрузить результаты запроса в ТЗ и там отсортировать по вкусу. )
|
|||
10
Ёпрст
06.08.12
✎
09:55
|
(8) Хватит заниматься отсебятиной.
Скопируй (4) и не ипи мозги - там всё работает. |
|||
11
Ночной Эльф
06.08.12
✎
09:55
|
(9) тут очень важный критерий время выполнения поэтому только запрос
|
|||
12
Ночной Эльф
06.08.12
✎
09:56
|
(10) вот смотри как выглядит окончательный запрос
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |НомерДок = Документ.ЗаданиеНаИзготовление.НомерДок; |Ширина = Документ.ЗаданиеНаИзготовление.Ширина; |Длина = Документ.ЗаданиеНаИзготовление.Длина; |Контрагент = Документ.ЗаданиеНаИзготовление.Контрагент; |ФактДатаВыполнения = Документ.ЗаданиеНаИзготовление.ФактДатаВыполнения; |ДатаВыполнения = Документ.ЗаданиеНаИзготовление.ДатаВыполнения; //|ПлановоеВремяВыполнения = Документ.ЗаданиеНаИзготовление.ПлановоеВремяВыполнения; |Номенклатура = Документ.ЗаданиеНаИзготовление.Номенклатура; |ВидТипаПечати = Документ.ЗаданиеНаИзготовление.ВидТипаПечати; |ФактДатаРаботы = Документ.ЗаданиеНаИзготовление.ФактДатаРаботы; |ВремяВыполнения = Документ.ЗаданиеНаИзготовление.ВремяВыполнения; |Количество = Документ.ЗаданиеНаИзготовление.Количество; |Разрешение180 = Документ.ЗаданиеНаИзготовление.Разрешение180; |Разрешение360 = Документ.ЗаданиеНаИзготовление.Разрешение360; |Менеджер = Документ.ЗаданиеНаИзготовление.Автор; |ВидОперации = Документ.ЗаданиеНаИзготовление.ВидОперации; |ЗаданиеНаИзготовление = Документ.ЗаданиеНаИзготовление.ТекущийДокумент; |ДатаДок = Документ.ЗаданиеНаИзготовление.ДатаДок; |НомерСтроки= Документ.ЗаданиеНаИзготовление.НомерСтроки; |Функция ФункцияДляСортировки = Сумма(ВидТипаПечати.Наименование); |Группировка ЗаданиеНаИзготовление упорядочить по ЗаданиеНаИзготовление.ДатаВыполнения; |Группировка НомерСтроки упорядочить по ФункцияДляСортировки; |Условие(ВидОперации = Перечисление.ВидыОперацийЗаданиеНаИзготовление.ЗаданиеНаИзготовление); |"//}}ЗАПРОС ; |
|||
13
Ёпрст
06.08.12
✎
09:57
|
(12) биомать а ?
Подарить клавиши копи-пасте ? // |Функция ФункцияДляСортировки = Сумма(ВидТипаПечати.Наименование); |Функция ФункцияДляСортировки = Сумма(ВидТипаПечати); |
|||
14
Светлый Гений
06.08.12
✎
09:59
|
(11) Если время выполнения очень важно, то лучше использовать прямые запросы.
|
|||
15
Ночной Эльф
06.08.12
✎
10:00
|
(13) хорошо поставил я строку
|Функция ФункцияДляСортировки = Сумма(ВидТипаПечати); но все равно тот же результат нет сортировки, я просто не пойму причем тут Сумма( |
|||
16
Ёпрст
06.08.12
✎
10:01
|
(15) врешь ведь.
|
|||
17
Ёпрст
06.08.12
✎
10:01
|
показывай, как результат смотришь и где ты видишь, что не упорядочивает
|
|||
18
Ночной Эльф
06.08.12
✎
10:05
|
вот как
СегодняшняяДата = ТекущаяДата(); ВыбНачПериода = СегодняшняяДата - 14; //Сообщить(ВыбНачПериода); ВыбКонПериода = СегодняшняяДата + 14; //Сообщить(ВыбКонПериода); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |НомерДок = Документ.ЗаданиеНаИзготовление.НомерДок; |Ширина = Документ.ЗаданиеНаИзготовление.Ширина; |Длина = Документ.ЗаданиеНаИзготовление.Длина; |Контрагент = Документ.ЗаданиеНаИзготовление.Контрагент; |ФактДатаВыполнения = Документ.ЗаданиеНаИзготовление.ФактДатаВыполнения; |ДатаВыполнения = Документ.ЗаданиеНаИзготовление.ДатаВыполнения; //|ПлановоеВремяВыполнения = Документ.ЗаданиеНаИзготовление.ПлановоеВремяВыполнения; |Номенклатура = Документ.ЗаданиеНаИзготовление.Номенклатура; |ВидТипаПечати = Документ.ЗаданиеНаИзготовление.ВидТипаПечати; |ФактДатаРаботы = Документ.ЗаданиеНаИзготовление.ФактДатаРаботы; |ВремяВыполнения = Документ.ЗаданиеНаИзготовление.ВремяВыполнения; |Количество = Документ.ЗаданиеНаИзготовление.Количество; |Разрешение180 = Документ.ЗаданиеНаИзготовление.Разрешение180; |Разрешение360 = Документ.ЗаданиеНаИзготовление.Разрешение360; |Менеджер = Документ.ЗаданиеНаИзготовление.Автор; |ВидОперации = Документ.ЗаданиеНаИзготовление.ВидОперации; |ЗаданиеНаИзготовление = Документ.ЗаданиеНаИзготовление.ТекущийДокумент; |ДатаДок = Документ.ЗаданиеНаИзготовление.ДатаДок; |НомерСтроки= Документ.ЗаданиеНаИзготовление.НомерСтроки; |Функция ФункцияДляСортировки = Сумма(ВидТипаПечати); |Группировка ЗаданиеНаИзготовление упорядочить по ЗаданиеНаИзготовление.ДатаВыполнения; |Группировка НомерСтроки упорядочить по ФункцияДляСортировки; //|Группировка СтрокаДокумента; //|Условие(ПустоеЗначение(ФактДатаРаботы) = 1); |Условие(ВидОперации = Перечисление.ВидыОперацийЗаданиеНаИзготовление.ЗаданиеНаИзготовление); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ГрафикПечати"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2) = 1 Цикл Таб.ВывестиСекцию("тест"); КонецЦикла; КонецЦикла; где секция "тест" Запрос.Номенклатура Запрос.ЗаданиеНаИзготовление Запрос.ДатаВыполнения Запрос.НомерСтроки Запрос.ВидТипаПечати Так вот по этому Запрос.ДатаВыполнения он отсортирован, а Запрос.ВидТипаПечати выводит также как и в документе в том же порядоке, а по идее с новой датой должены идти одни и те же значения, но они разбросаны как я уже и говорил в точности как и вдокументе |
|||
19
Ночной Эльф
06.08.12
✎
10:07
|
Может для ссылки на справочник как то по другому сортировка осуществляется
|
|||
20
Ёпрст
06.08.12
✎
10:15
|
(19) тебе же все строки нужны ?
Придется тогда свою внешнюю функцию писать, которая хеш строки сделает для правилтьной сортировки |
|||
21
Ёпрст
06.08.12
✎
10:15
|
для перечислений, код и в (4) годится, для справочников не смотрел еще
|
|||
22
Ночной Эльф
06.08.12
✎
10:22
|
Сейчас попробую за место справочник поставить перечесление посмотрим что получится, а то с перечеслением и лучше будет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |