Всем привет. Суть статьи в том, что ни один стандартный отчёт по производительности сотрудников в Axelot X5 не показывает нужные данных, поэтому я решил написать свой.
Для формирования нового внешнего отчёта по производительности нам понадобится Конфигуратор основной либо тестовой БД. И так , приступим
ШАГ 1 — Запускаем конфигуратор БД
ШАГ 2 — Создание нового внешнего отчёта
В основном окне конфигурации нажимаем на создание нового файла и выбираем «Внешний отчёт».

ШАГ 3 — Имя отчёта, создание новой схемы компоновки данных
Присваиваем отчёту Имя (Без пробелов), у меня будет ВыработкаСотрудников и нажимаем на кнопку «Открыть схему компоновки данных».

Далееу нас из предложенного будет всего один вариант — Схема компоновки данных (СКД). Выбираем и нажимаем «Готово».

ШАГ 4 — Создание нового Набора данных и использование конструктора запросов
Нажимаем на кнопку добавления новых данных, как на картинке и выбираем первую строку «Добавить набор данных — Запрос».

ШАГ 5 — Формирование полей, определение данных запроса.
Для определения данных запроса заходим в Конструктор запроса. Для автоматического формирования кода на языке 1С флаг «Автозаполнение» должен быть включён.

ШАГ 6 — Определяем из каких данных будем формировать наш отчёт.
Есть 2 регистра сведений который отвечают за отчётность по производительности.
-
Регистр Сведений — Выполненные задачи
Из данного регистра мы сможем сформировать данные по сотрудникам, очереди задач, по какому документу(задачи) работали и какое количество упаковок, паллет обработали. Самое главное преимущество первого варианта заключается в наличии реквизита Документ, по которому мы сможем формировать диапазон даты выполнения за сутки начиная, к примеру, с 8:00 утра и до 8:00 следующего дня.
-
Регистр Сведений — Выработка исполнителей
Из данного регистра можно сформировать данные по затрачиваемому времени на каждую операцию по сотрудникам, а так же получать данные по Срез первых, Срез последних
Рассмотрим первый вариант. В конструкторе запроса, в левой колонке выбираем Регистры сведений, находим Выполненные задачи и двойным щелчком по регистру переносим в поле Таблицы. Должно получится как на картинке.

Теперь нам нужно переместить нужные там реквизиты в столбец «Поля». Так же двойным щелчком перемещаем реквизиты и нажимаем ОК:
-
Период
-
Исполнитель
-
Документ
-
Очередь
-
КоличествоМестХранения
-
КоличествоУпаковок
-
Количество

ШАГ 7 — Создание Вычисляемого поля, определение Ресурсов, создание Параметров, формирование структуры отчёта
Для чего же нужно вычисляемое поле? Всё дело в том, что стандартный отчёт повыполненым задачам считаем одну операцию произведённую сотрудником, как две. То есть, к примеру, нам нужно переместить один паллет из точки А в точку Б. Стандартный отчёт по производительности выдаст:
-
1я операция — Сотрудник взял паллет из точки А
-
2я операция — Сотрудник поставил в точку Б
Получается что было сделано две операции, а по факту переместили то один паллет. Вот поэтому нужно создать вычисляемое поле, которое будет игнорировать одну из операций. В основной схеме компоновки данных переходим на вкладку Вычисляемые поля.

Нажимаем на зелёный крестик. В поле Путь к данным определяем название нашего поля(без пробелов). У меня это будет «ИтогМХ». Поле заголовок сформируемся автоматически. В поле Выражение нужно вставить код:

ВЫБОР КОГДА СОКРЛП(ВРЕГ(Строка(Очередь))) = СОКРЛП(ВРЕГ("Отбор МХ")) И СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно")) И КоличествоМестХранения > 0 ТОГДА 0 КОГДА СОКРЛП(ВРЕГ(Строка(Очередь))) = СОКРЛП(ВРЕГ("Отбор ОХ")) И (СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно (по плану)")) ИЛИ СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно (изменено место хранения)"))) ИЛИ СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно (изменена зона)")) ТОГДА 0 ИНАЧЕ КоличествоМестХраненияКОНЕЦ
Перемещаемся на вкладку Ресурсы и двойным щелчком по реквизитам в левом поле, перемещаем нужные нам поля:
Ресурсы — это числовые поля, для которых автоматически вычисляются итоги (агрегатные функции) по группировкам и по отчету в целом.
Простыми словами: Ресурсы отвечают на вопрос «Что будем считать?» (сумму, количество, среднее, максимум и т.д.) в разрезе измерений (строк, колонок).
-
КоличествоМХИтог
-
КоличествоМестХраненияОХ
-
КоличествоУпаковок
В столбце выражение для каждого реквизита должно быть Сумма(название поля)

Перемещаемся на вкладку Параметры. Нам нужно будет создать 3 параметра. Нажимаем на зелёный крестик и поочерёдно создаём, определяя необходимый Тип под каждый параметр, выражение и настройки доступности:
-
Имя — «Период» — в поле Тип — через три точки выбираем СтандартныйПериод, в поле Выражение пустое
-
НачалоПериода — в поле Тип — через стрелочку выбираем Дата, в поле Выражение пишем
&Период.ДатаНачала -
КонечПериода — в поле Тип — через стрелочку выбираем Дата, в поле Выражение пишем
&Период.ДатаОкончания -
Настройки видимости выставляем как на картинке
Выражения &Период.ДатаНачала и &Период.ДатаОкончания в параметрах СКД — это механизм для создания удобного интерфейса выбора периода, который автоматически заполняет два отдельных параметра отчета (ДатаНачала и ДатаОкончания) на основе значения, выбранного пользователем в одном элементе управления.
Простыми словами: это «связка», которая позволяет пользователю выбрать период в удобном формате («Месяц», «Квартал», «С 10.01.2025 по 20.01.2025» и так далее), а СКД сама «разложит» этот выбор на две конкретные даты и передаст их в запрос.
Шаг 8
Переходим на вкладку Настройки для формирования полей и группировок отчёта.
-
Выделяем отчёт, нажимаем правую кнопку мыши и выбирает «Новая группировка»

В открывшемся окно, в первом поле, через три точки выбираем первую группировку Исполнитель т.к нам нужно в первую очередь на верхнем уровне видеть ФИО сотрудников

Далее можно рядом с исполнителем вывести его принадлежность к Группе исполнителей (Комплектовщик, Карщик, Грузчик , Упаковщик и так далее). Для этого двойным щелчком нажмём на группировку исполнитель, далее на создание новой группировки и уже к ней добавим поле Исполнитель.Группа

Первая группировка готова. Добавим подгруппировки. Для этого выделяем первую группировку и нажимаем на кнопку создания новой.

Создаём новую группировку и через три точки выбираем реквизит Очередь которая включает в себя все очереди задач с которыми работал исполнитель.
Но нам так же интересно знать по каким задачам(документам) работал сотрудник, дата и время выполнения задачи и результат выполнения. Давайте добавим недостающие поля. Для этого двойным щелчком нажимаем на реквизит Очередь, добавить новую группировку > новое поле и как в предыдущий раз нажимаем на три точки и выбираем реквизит Документ.
По аналогичному принципу нужно так же добавить Документ.Дата выполнения (нужно раскрыть плюсик реквизита документ) и так же добавить реквизит Результат. Структура будет выглядеть следующим образом:


Продолжаем формирование нашего отчёта. Нажимаем на самое верхнее поле отчёт и на нижней вкладке параметры видим Период. Нажимаем на него правой кнопкой мыши и в контекстном меню выбираем «Свойства элемента пользовательских настроек». В открывшимся окне ставим галочку «Включать в пользовательские настройки». Данным действием мы добавили поле Период в форму нашего отчёта и сможем непосредственно в нём выбирать даты.


Переходим на вторую вкладку «Выбранные поля» и двойным щелчком добавляем поля‑Ресурсы в правое поле.

Далее переходим на вкладку Отбор (Филтры по Русскому))) Как и в предыдущем примере с Выбранными полями, перетаскиваем в Отбор реквизиты Очередь, Исполнитель, далее раскрываем реквизит Документ и от туда переносим два раза поле Документ.ДатаВыполнения
По каждому полю настраиваем параметры по столбцу Вид сравнения и правое значение как на картинке. Далее выделяем два поля Документ.ДатаВыполнения, нажимаем на правую кнопку мыши и выбираем Сгруппировать условия. Данным действием мы сделали группировку где условие будет работать так:
Когда
Документ.ДатаВыполнения больше или равно дате (выбираем дату в отчёте) И
Документ.ДатаВыполнения меньше или равно дате (выбираем дату в отчёте) тогда сформировать результат. Тем самым мы устанавливаем нужный нам диапазон дат.


На каждое добавленное поле в отборы нужно включить в Свойствах элемента пользовательских настройках «Включать в пользовательские настройки» аналогично тому как мы делали с параметром Период (см. выше)
На этом основное формирование отчёта закончено. Необходимо сохранить его в удобную для вас папку и запустить, нажав на кнопку F5 или Начать отладку

Откроется бада данных Axelot. В правом углу нажимаем на «Сервис и настройки» , выбираем Файл > Открыть и открываем наш сохранённый отчёт. Соглашаемся в окне предупреждения системы.
Отчёт в WMS
Красным выделил сформированный нами Параметр , жёлтым Отборы. В поле параметр можно сразу выбрать целый год, а уже полями Документ.ДатаВыполнения указывать диапазоны для формирования отчёта.

Сформированный отчёт:

В системе имеется множество разных результатов. В зависимости от данных задачи отбора.
-
Успешно — Если не заполнена конечная зона
-
Успешно по плану — Если конечное = текущей
-
Успешно изменено мест хранения — Если равны зоны, но не равны остальные данные ячейка и МХ
-
Успешно изменена зона — Зоны не равны в задаче
-
Проблема — Если операция с проблемой
Проблема взять и проблема положить — считается на каких операциях возникла проблема.
Учёт операции взять и положить, считается отдельными операциями. Это можно посмотреть в регистре Выполненные задачи.
В системе задан просчёт на каждую операцию положить и взять и поэтому считается как отдельная операция.
Поэтому мы и создали Вычисляемое поле КоличествоИтогМХ которое отображает только одну операцию и выводит корректный результат.
Всем спасибо за внимание. Просьба строго не судить, это моя первая статья.
ссылка на оригинал статьи https://habr.com/ru/articles/1025076/