v7: Показать Клиента, которому принадлежит Пункт Доставки
☑
0
aleksander1sk
03.09.15
✎
12:02
Есть обработка:
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
сз = СоздатьОбъект("СписокЗначений");
спр = СоздатьОбъект("Справочник.дТовары");
спр.НайтиПоКоду("9906");
сз.ДобавитьЗначение(спр.текущийЭлемент());
сз2 = СоздатьОбъект("СписокЗначений");
спр = СоздатьОбъект("Справочник.дПунктыДоставки");
спр.НайтиПоКоду("0002927-01");
сз2.ДобавитьЗначение(спр.текущийЭлемент());
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Продажи = Регистр.Продажи.Товар;
|ТочкаДоставки = Регистр.Продажи.ТекущийДокумент.дкРасходнаяНакладная.рПунктДоставки;
|Сумма = Регистр.Продажи.Сумма;
|ТП = Регистр.Продажи.ТП;
|Товар = Регистр.Продажи.Товар;
|дкРасходнаяНакладная = Регистр.Продажи.ТекущийДокумент.дкРасходнаяНакладная.ТекущийДокумент;
|Клиент = Регистр.Продажи.ТекущийДокумент.дкРасходнаяНакладная.рКлиент;
|Функция СуммаСумма = Сумма(Сумма);
|Функция Счётчик = Счётчик();
|Группировка ТП;
// |Группировка Клиент;
|Группировка дкРасходнаяНакладная упорядочить по дкРасходнаяНакладная.рПунктДоставки;
// |Группировка Продажи1 по дкРасходнаяНакладная.рПунктДоставки;
|Условие(ТП в ВыбТП);
|Условие(Товар в сз);
|Условие(НЕ(ТочкаДоставки в сз2));
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей ТП
Таб.ВывестиСекцию("ТП");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей дкРасходнаяНакладная
Таб.ВывестиСекцию("дкРасходнаяНакладная")
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Пункты доставки - это подчиненный справочник справочника Клиенты
Нужно сделать так, чтобы в таблице отображалось не только название пунктаДоставки, но и клиента, к которому он принадлежит.
1
zenik
03.09.15
✎
13:00
В таблице в секции дкРасходнаяНакладная пропиши:
Запрос.ТочкаДоставки.Владелец - это будет твой клиент.
2
aleksander1sk
03.09.15
✎
13:19
(1) Спасибо, натолкнул на решение, добавил еще одну групировку по Клиенту, тогда отображается и Клиент, и сортируется в третьем столбце по точке доставки.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший