Запрос с количетсвом колонок в зависимости от записей справочника

1. MolodoyV1C 24.01.20 20:33 Сейчас в теме
Добрый день
Подскажите пожалуйста с запросом.
Курьеры доставляют заказы. Есть время доставки план и факт. Если курьер опаздывает на определенное кол-во минут его штрафуют.
Минуты и размер штрафов задается в Справочнике.Штрафы с 2 реквизитами: ОпозданиеС, ОпозданиеПо и Штраф. Естественно список штрафов может меняться.
ОпозданиеС ОпозданиеПо Штраф
0 __________ 3 ___________300 (от 0 до 3х)
3 __________ 15 __________ 600 (от 3х до 15ти)
15__________30 __________1000 (от 15ти до 30ти)
30__________9999_________3000 >30мин)

У документа заказ есть колонки Курьер, ВремяПлан и ВремяФакт (тип Дата со временем).
ОпозданиеМин = ВремяФакт - ВремяПлан / 60;

Нужно получить таблицу-отчет в которой будет список курьеров, а колонками будут штрафы

Не хочется хранить таблицу штрафов объектом в базе, думаю хранить в
ХранилищеОбщихНастроек в виде ТЗ.
так Вот передаю это ТЗ в Набор данных объект но получается что соединить с запросом не получается т.к. нет общего поля.
ума не приложу как это сделать можно.

Не знаю как в скд так прикрутить колонки из таблицы штрафы :(
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. dhurricane 26.01.20 13:24 Сейчас в теме
(1) Если отчет не на СКД, то рекомендую книгу "Язык запросов 1С:Предприятия 8" (Е.Ю. Хрусталева), где во второй главе есть часть "Создание кросс-отчета" (стр. 194) с примером и его разбором.
2. HAMAZ 7 25.01.20 07:23 Сейчас в теме
три левых соединения не предлагать?
3. MolodoyV1C 25.01.20 14:53 Сейчас в теме
(2)предложи конечно:) можно пример? не понимаю как:(
4. viplelik 34 25.01.20 19:50 Сейчас в теме
Без БД будет трудновато сделать.
5. starjevschik 25.01.20 19:58 Сейчас в теме
Можно, наверное, и запрос. Сначала получить таблицу вида такого:
Мин опоздание - Макс опоздание - Имя колонки в отчете - Штраф сумма
Как именно ее получить, это отдельная история...
Потом уже можно реальный график соединять с этой таблицей по условиям попадания времени в интервал и получить на выходе таблицу, в которой будет и имя колонки и сумма и время и все что надо. Потом в отчете развернуть ее в колонки, опять же реализация может быть разной, СКД или нет...
8. MolodoyV1C 26.01.20 17:28 Сейчас в теме
(5)в скд же колонки можно только задать заранее а тут сколько их будет не понятно. может 5 а может 100 :(
по идее вроде как надо транспонировать таблицу штрафов но все примеры транспонирования что я нашел предпологали статичное кол-во строк/столбцов
9. starjevschik 26.01.20 17:30 Сейчас в теме
(8) в СКД это называется "таблица". Все можно.
6. Xershi 1484 25.01.20 20:18 Сейчас в теме
Рекомендую курсы по запросам пройти, чтобы более предметные вопросы задавать.
А так тут вопрос как связи настроить не более.
10. viplelik 34 26.01.20 17:49 Сейчас в теме
тут задача сводится не к колонкам, а к формировании таблицы со значениями
Курьер, ОпозданиеМин, Штраф.
Получив эту таблицу, можно построить требуемый отчет на СКД.
11. MolodoyV1C 27.01.20 16:19 Сейчас в теме
Не хочется хранить таблицу штрафов объектом в базе, думаю хранить в
ХранилищеОбщихНастроек в виде ТЗ.
так Вот передаю это ТЗ в Набор данных объект но получается что соединить с запросом не получается т.к. нет общего поля.
ума не приложу как это сделать можно.
как можно соединением подцепить в основной Запрос Таблицу штрафов?
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот