Задача
Есть регистр сведений «Остановки по маршруту», в котором хранится информация о расстоянии от начальной до конечной остановки.

Рис. 1. Регистр сведений «Остановки по маршруту»
Требуется разработать отчет на СКД, который покажет расстояние между двумя любыми остановками по маршруту.
Решение
В любой конфигурации, поддерживающей управляемые формы, создадим непериодический регистр сведений «Остановки по маршруту». Добавим в него измерения Маршрут и Остановка с типом строка длиной, соответственно 4 и 50, а также ресурс Расстояние с типом число длиной 10.2. Сохраним изменения в новой конфигурации. Для создания внешнего отчёта в Меню—>Файл—>Новый выбираем “Внешний отчёт”, зададим его название и открываем схему компоновки данных:

Рис. 2. Создание внешего отчёта на СКД
В открывшемся окне нажимаем кнопку “Добавить набор данных” и выбираем строку “Добавить набор данных – запрос”:

Рис. 3. Добавление набора данных — запрос
Создадим новый запрос. Для решения задачи нам понадобится в запросе регистр сведений «Остановки по маршруту» и, поскольку отчёт должен наглядно показывать расстояние между любыми двумя остановками, сформируем запрос для табличного представления по осям X и Y, используя полное внешнее соединение таблицы регистра с самим собой:

Рис. 4. Текст запроса
Далее, перейдём на закладку «Ресурсы» и укажем их для СКД:

Рис. 5. Указание ресурсов для СКД
Перейдём теперь на закладку «Настройки» и с нажмём кнопку «Открыть констуктор настроек», выберем тип отчёта Таблица:

Рис. 6. Выбор типа отчёта
Далее, последовательно настроим поля отчёта, поля группировки и поля сортировки как показано на рис. 7, 8 и 9:

Рис. 7. Выбор полей отчёта

Рис.8. Выбор полей группировки

Рис. 9. Выбор полей сортировки
Осталось с помощью кнопки «Свойства элементов пользовательских настроек» создать эти настройки, а также на закладке «Другие настройки» указать, как будут располагаться ресурсы, и отказаться от итогов (здесь они не нужны):

Рис. 10 Пользовательские и другие настройки.
Отчёт готов. Теперь перейдём из конфигурации в Предприятие, и заполним регистр сведений (если он ещё не заполнен):

Рис. 11. Заполнение регистра сведений
И, наконец, из Меню—>Файл вызываем наш отчёт из места, куда мы его сохранили в конфигураторе, нажимаем кнопку «Сформировать» и видим решение задачи:

Рис. 12. Отчёт «Расстояние между остановками»
На написание статьи меня подтолкнула публикация
Спасибо авторам за интересную задачу.





+ за В&Н
О, а вот и проект доминикана… ))
Сразу видно нижегородца 🙂
Спасибо! Статью дала начинающему программисту на исполнение, потом проверю 🙂