Имя: Пароль:
1C
1С v8
Построитель+ИсточникДанных+Сортировка
0 Ivan093
 
17.08.12
12:44
Пишу отчет на основе универсального в УТ 10.3
Построителю подсовываю уже готовый результат запроса:

ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатЗапроса);    
     ИсточникДанных.Колонки.Контрагент.Измерение = Истина;
   ИсточникДанных.Колонки.Менеджер.Измерение = Истина;
   ИсточникДанных.Колонки.ДокументОтгрузки.Измерение = Истина;

Проблема в том, что чтобы я ни добавлял в настройку сортировки универсального отчета -- сортировка не работает.
Он выводит в каком-то своем порядке.
Мне же надо отсортировать по представлению Менеджер,Контрагент.
Что я забыл сделать?
1 ptiz
 
17.08.12
12:47
1) Можно добавить колонки "МенеджерНаименование" и пр.
2) Сделать запрос и выкинуть построитель
2 Ivan093
 
17.08.12
13:02
забыл написать колонки МенеджерНаименование и КонтрагентНаименование добавлял -- эффект тот же.
3 0Mint
 
17.08.12
13:06
А текст запроса можно глянуть?
4 Ivan093
 
17.08.12
13:11
По полям ресурсов сортирует, а по измерениям нет
5 Ivan093
 
17.08.12
13:14
Вот текст запроса:

ВЫБРАТЬ
   ТабОстатки.ДокументРасчетовСКонтрагентом.Контрагент.Наименование КАК КонтрагентНаименование,
   ТабОстатки.ДокументРасчетовСКонтрагентом.Контрагент.ОсновнойМенеджерПокупателя.Наименование КАК МенеджерНаименование,
   ТабОстатки.ДокументРасчетовСКонтрагентом.Дата КАК ДатаДокумента,
   ТабОстатки.ДокументРасчетовСКонтрагентом.Контрагент.ОсновнойМенеджерПокупателя КАК Менеджер,
   ТабОстатки.ДокументРасчетовСКонтрагентом.Контрагент КАК Контрагент,
   ТабОстатки.ДокументРасчетовСКонтрагентом КАК ДокументОтгрузки,
   ДОБАВИТЬКДАТЕ(ТабОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ТабОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ДатаОплаты,
   ТабОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДнейОтсрочки,
   ВЫБОР
       КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ТабОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ТабОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаОтчета, ДЕНЬ) < 0 ТОГДА 0
       ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ТабОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ТабОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаОтчета, ДЕНЬ)
   КОНЕЦ КАК ДнейПросрочки,
   ТабОстатки.ДокументРасчетовСКонтрагентом.СуммаДокумента КАК СуммаОтгрузки,
   ТабОстатки.СуммаВзаиморасчетовОстаток КАК СуммаДолга,
   ВЫБОР
       КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ТабОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ТабОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &ДатаОтчета, ДЕНЬ) < 0
           ТОГДА 0
       ИНАЧЕ ТабОстатки.СуммаВзаиморасчетовОстаток
   КОНЕЦ КАК СуммаПросрочки

ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&ДатаОтчета, ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг {(ДоговорКонтрагента).*, (Сделка).*, (Контрагент).*, (Организация).*}) КАК ТабОстатки
ГДЕ
   ТабОстатки.СуммаВзаиморасчетовОстаток > 0

УПОРЯДОЧИТЬ ПО
   МенеджерНаименование,    
   КонтрагентНаименование,
   ДатаДокумента
6 ptiz
 
17.08.12
13:23
(4) А ты сделай ресурсом МАКСИМУМ(МенеджерНаименование) и т.п.
7 acsent
 
17.08.12
13:25
зачем в построитель передавать результат запроса?
8 Ivan093
 
17.08.12
13:27
(7) Мне нужно промежуточный результат обработать через код. В запрос построителю не подсунешь конструкцию вида "ВЫБРАТЬ * ИЗ &Таблица". Приходится так извращаться.
9 0Mint
 
17.08.12
13:28
(7) Верно говорит.
В самом тексте запроса надо определить поля сортировки для построителя непосредственно, и добавить поля с функцией ПРЕДСТАВЛЕНИЕ().
10 0Mint
 
17.08.12
13:29
УПОРЯДОЧИТЬ ПО
   МенеджерНаименование,
   КонтрагентНаименование,
   ДатаДокумента
{УПОРЯДОЧИТЬ ПО
   КонтрагентНаименование,
   МенеджерНаименование}
11 0Mint
 
17.08.12
13:30
(8) СКД?
12 Ivan093
 
17.08.12
13:32
(10) Это бесполезно, т.к. в построитель передается источник данных, а не текст запроса.
(11) Универсальный отчет
13 0Mint
 
17.08.12
13:35
(12) Предлагаю использовать СКД вместо универсального.
14 Ivan093
 
17.08.12
13:41
Дак вот хотелось бы, чтобы отчет "вписался" в УТ 10.3, а там все на универсальном.
15 Ivan093
 
17.08.12
13:42
Тем более все работает кроме сортировки...
16 Ivan093
 
17.08.12
13:47
Он сортирует только по тем полям, которые на экране. Вывел МенеджерНаименование -- тогда сортирует, но это все равно не дело, мне эти поля не нужны видимые...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший