Имя: Пароль:
1C
1С v8
Запрос к ТЗ, сортировка
,
0 YF
 
03.09.12
16:48
Имеем ТЗ с типизированными колонками, выгружаем ее во временную таблицу запроса, делаем запрос на выборку, например, такой:

ВЫБРАТЬ
   зТаблицаДанных.Контрагент КАК зКонтрагент,
   зТаблицаДанных.Договор КАК зДоговор,
   зТаблицаДанных.ДокументРасчетов КАК зДокументРасчетов,
   ЕСТЬNULL(зТаблицаДанных.СНД, 0) КАК зСНД,
   ЕСТЬNULL(зТаблицаДанных.СНК, 0) КАК зСНК,
   ЕСТЬNULL(зТаблицаДанных.СКД, 0) КАК зСКД,
   ЕСТЬNULL(зТаблицаДанных.СКК, 0) КАК зСКК,
   ЕСТЬNULL(зТаблицаДанных.ПоступилоДС, 0) КАК зПоступилоДС,
   ЕСТЬNULL(зТаблицаДанных.ЗачтеноАвансов, 0) КАК зЗачтеноАвансов,
   ЕСТЬNULL(зТаблицаДанных.Реализация_Текущая, 0) КАК зРеализация_Текущая,
   ЕСТЬNULL(зТаблицаДанных.Реализация_ВАванс, 0) КАК зРеализация_ВАванс,
   ЕСТЬNULL(зТаблицаДанных.Реализация_ВДЗ, 0) КАК зРеализация_ВДЗ,
   ЕСТЬNULL(зТаблицаДанных.Реализация_Всего, 0) КАК зРеализация_Всего,
   зТаблицаДанных.ГруппаПотребителей КАК зГруппаПотребителей
ИЗ
   ВременнаяТаблицаДанных КАК зТаблицаДанных

УПОРЯДОЧИТЬ ПО
   
   зГруппаПотребителей.Наименование
ИТОГИ
   СУММА(зСНД),
   СУММА(зСНК),
   СУММА(зСКД),
   СУММА(зСКК),
   СУММА(зПоступилоДС),
   СУММА(зЗачтеноАвансов),
   СУММА(зРеализация_Текущая),
   СУММА(зРеализация_ВАванс),
   СУММА(зРеализация_ВДЗ),
   СУММА(зРеализация_Всего)
ПО
   ОБЩИЕ,
   зГруппаПотребителей ИЕРАРХИЯ

Ругается на "зГруппаПотребителей.Наименование", что поле наименование не обнаружено.

Справочник ГруппыПотребителей иерархический, хочу сортировать по наименованию с иерархией. Как сделать?
1 fisher
 
03.09.12
16:51
Соедини со справочником групп потребителей.
2 YF
 
03.09.12
16:52
(1) Пробовал, та же фигня
3 МишКа
 
03.09.12
16:52
Почему не зТаблицаДанных.Наименование?
4 YF
 
03.09.12
16:52
(3) А с чего бы? Там нету такого поля.
5 fisher
 
03.09.12
16:54
(2) А впрочем, может и не надо соединять. Попробуй просто вообще убрать УПОРЯДОЧИТЬ ПО и добавь АВТОУПОРЯДОЧИВАНИЕ
6 YF
 
03.09.12
16:55
(5) Ни разу не пробовал, как синтаксис у этого автоупорядочивания?
7 fisher
 
03.09.12
16:55
(5) + Т.к. у тебя стоят иерархические итоги по зГруппаПотребителей, автоупорядочивание должно догадаться правильно отсортировать.
8 fisher
 
03.09.12
16:56
На закладке "Порядок" в конструкторе внизу галку поставь - увидишь.
9 YF
 
03.09.12
16:59
(8) Оно!

только если я хочу упорядочивать как-то по другому, как быть?
10 fisher
 
03.09.12
17:04
(9) Голову включаешь. Правила работы автоупорядочивания подробно расписаны в справке. Можно и без него, но иногда в сложных случаях мне не удавалось без него правильно упорядочить по иерархии.
11 YF
 
03.09.12
17:18
(10) Ну не по наименованию я хочу сортировать, а, например, по реквизиту НекийСтроковыйРеквизит ...
12 fisher
 
03.09.12
17:25
(11) Ты из-за сабжевой ошибки всё волнуешься?
Замени в УПОРЯДОЧИТЬ ПО зГруппаПотребителей.Наименование на зТаблицаДанных.ГруппаПотребителей.Наименование
13 YF
 
03.09.12
17:39
(12) неа, та же ошибка, что поле не найдено
14 salvator
 
03.09.12
17:47
Покажи код формирования ТЗ
15 fisher
 
03.09.12
18:04
(13) Х.з. Я никогда к полям ТЗ через точку не стучался. Если он сам не догоняет, что нужно выполнить соединение, то сделай его явно. Присоедини таблицу групп и замени
зТаблицаДанных.ГруппаПотребителей КАК зГруппаПотребителей
на
ТаблицаГруппПотребителей.Ссылка КАК зГруппаПотребителей
16 YF
 
03.09.12
18:08
(14)
новаяСтрока_ = тз_.Добавить();
новаяСтрока_.ГрупаПотребителей = выборка_.ГруппаПотребителей;

...

Как-то так, что конкретно по заполнению интересует?