Групповая обработка справочника

  • Автор темы Kiddy
  • Дата начала
K

Kiddy

#1
Доброе время суток. Народ нужна консультация - помощь.
Формирую Список скидок по всем клиентам из таблицы скидок

Текстзапроса="
|ТоварнаяГруппа=Справочник.СкидкиКлиента.ТоварнаяГруппа;
|Группировка ТоварнаяГруппа Упорядочить По ТоварнаяГруппа.Наименование;
|";

Запрос=СоздатьОбъект("Запрос");
Если Запрос.Выполнить(Текстзапроса)=0 Тогда
возврат;
КонецЕсли;

Запрос.ВНачалоВыборки();
НомерСтроки=1;
Пока Запрос.Группировка("ТоварнаяГруппа")>0 Цикл
Если Запрос.ТоварнаяГруппа.Выбран()=1 Тогда
ТаблицаСкидок.НоваяСтрока(НомерСтроки);
ТаблицаСкидок.ПолучитьСтрокуПоНомеру(НомерСтроки);
ТаблицаСкидок.Номенклатура=Запрос.ТоварнаяГруппа.Наименование;
НомерСтроки=НомерСтроки+1;
КонецЕсли;
КонецЦикла;

Результат отработаного запроса впечатляет
Есть повторяющиеся сточки !!!!!!!! и не отсортировано !!!!

Я так понимаю проблема в запросе, или....

Буду очень благодарен за совет и помощь
Валера
 

Вложения

puh14

Well-known member
11.07.2008
1 412
0
#2
у тебя идет группировка по элементам, а не по наименованию. По наименованию выглядит так
Текстзапроса="
|ТоварнаяГруппа=Справочник.СкидкиКлиента.ТоварнаяГруппа.Наименование;
|Группировка ТоварнаяГруппа Упорядочить По ТоварнаяГруппа;
|";

А ещё проще
Текстзапроса="
|Без итогов;
|Номенклатура=Справочник.СкидкиКлиента.ТоварнаяГруппа.Наименование;
|Группировка Номенклатура;
|";
Запрос=СоздатьОбъект("Запрос");
Если Запрос.Выполнить(Текстзапроса)=0 Тогда
возврат;
КонецЕсли;

Запрос.Выгрузить(ТаблицаСкидок);
ТаблицаСкидок.Свернуть(Номенклатура);// сворачиваешь по имени
ТаблицаСкидок.Сортировать("+Номенклатура");// сортируешь

а потом добавляешь новые колонки и заполняешь как надо. Можно и скидки запросом вытащить ( если они забиты)
 
K

Kiddy

#3
puh14 , сенкс за помощь. Запрос заработал. Правильно. Счас похимичу с отображением колонок и полный порядок.
Есчё раз, большое спасибо.