Axelot X5 не умеет считать производительность сотрудников. Поэтому я написал свой отчёт

от автора

Всем привет. Суть статьи в том, что ни один стандартный отчёт по производительности сотрудников в Axelot X5 не показывает нужные данных, поэтому я решил написать свой.

Для формирования нового внешнего отчёта по производительности нам понадобится Конфигуратор основной либо тестовой БД. И так , приступим

ШАГ 1 — Запускаем конфигуратор БД

Главное чтобы был доступ к конфигуратору.

Главное чтобы был доступ к конфигуратору.

ШАГ 2 — Создание нового внешнего отчёта

В основном окне конфигурации нажимаем на создание нового файла и выбираем «Внешний отчёт».

ШАГ 3 — Имя отчёта, создание новой схемы компоновки данных

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

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

ШАГ 4 — Создание нового Набора данных и использование конструктора запросов

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

ШАГ 5 — Формирование полей, определение данных запроса.

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

ШАГ 6 — Определяем из каких данных будем формировать наш отчёт.

Есть 2 регистра сведений который отвечают за отчётность по производительности.

  • Регистр Сведений — Выполненные задачи

    Из данного регистра мы сможем сформировать данные по сотрудникам, очереди задач, по какому документу(задачи) работали и какое количество упаковок, паллет обработали. Самое главное преимущество первого варианта заключается в наличии реквизита Документ, по которому мы сможем формировать диапазон даты выполнения за сутки начиная, к примеру, с 8:00 утра и до 8:00 следующего дня.

  • Регистр Сведений — Выработка исполнителей

    Из данного регистра можно сформировать данные по затрачиваемому времени на каждую операцию по сотрудникам, а так же получать данные по Срез первых, Срез последних

    Рассмотрим первый вариант. В конструкторе запроса, в левой колонке выбираем Регистры сведений, находим Выполненные задачи и двойным щелчком по регистру переносим в поле Таблицы. Должно получится как на картинке.

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

  1. Период

  2. Исполнитель

  3. Документ

  4. Очередь

  5. КоличествоМестХранения

  6. КоличествоУпаковок

  7. Количество

ШАГ 7 — Создание Вычисляемого поля, определение Ресурсов, создание Параметров, формирование структуры отчёта

Для чего же нужно вычисляемое поле? Всё дело в том, что стандартный отчёт повыполненым задачам считаем одну операцию произведённую сотрудником, как две. То есть, к примеру, нам нужно переместить один паллет из точки А в точку Б. Стандартный отчёт по производительности выдаст:

  • 1я операция — Сотрудник взял паллет из точки А

  • 2я операция — Сотрудник поставил в точку Б

Получается что было сделано две операции, а по факту переместили то один паллет. Вот поэтому нужно создать вычисляемое поле, которое будет игнорировать одну из операций. В основной схеме компоновки данных переходим на вкладку Вычисляемые поля.

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

ВЫБОР     КОГДА СОКРЛП(ВРЕГ(Строка(Очередь))) = СОКРЛП(ВРЕГ("Отбор МХ"))         И СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно"))         И КоличествоМестХранения > 0    ТОГДА 0    КОГДА СОКРЛП(ВРЕГ(Строка(Очередь))) = СОКРЛП(ВРЕГ("Отбор ОХ"))         И (СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно (по плану)"))             ИЛИ СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно (изменено место хранения)")))             ИЛИ СОКРЛП(ВРЕГ(Строка(Результат))) = СОКРЛП(ВРЕГ("Успешно (изменена зона)"))    ТОГДА 0    ИНАЧЕ КоличествоМестХраненияКОНЕЦ

Перемещаемся на вкладку Ресурсы и двойным щелчком по реквизитам в левом поле, перемещаем нужные нам поля:

Ресурсы — это числовые поля, для которых автоматически вычисляются итоги (агрегатные функции) по группировкам и по отчету в целом.

Простыми словами: Ресурсы отвечают на вопрос «Что будем считать?» (сумму, количество, среднее, максимум и т.д.) в разрезе измерений (строк, колонок).

  1. КоличествоМХИтог

  2. КоличествоМестХраненияОХ

  3. КоличествоУпаковок

В столбце выражение для каждого реквизита должно быть Сумма(название поля)

Перемещаемся на вкладку Параметры. Нам нужно будет создать 3 параметра. Нажимаем на зелёный крестик и поочерёдно создаём, определяя необходимый Тип под каждый параметр, выражение и настройки доступности:

  1. Имя — «Период» — в поле Тип — через три точки выбираем СтандартныйПериод, в поле Выражение пустое

  2. НачалоПериода — в поле Тип — через стрелочку выбираем Дата, в поле Выражение пишем &Период.ДатаНачала

  3. КонечПериода — в поле Тип — через стрелочку выбираем Дата, в поле Выражение пишем &Период.ДатаОкончания

  4. Настройки видимости выставляем как на картинке

Данными настройками мы ограничили видимость двух полей, а поле Период сделали доступным

Данными настройками мы ограничили видимость двух полей, а поле Период сделали доступным

Выражения &Период.ДатаНачала и &Период.ДатаОкончания в параметрах СКД — это механизм для создания удобного интерфейса выбора периода, который автоматически заполняет два отдельных параметра отчета (ДатаНачала и ДатаОкончания) на основе значения, выбранного пользователем в одном элементе управления.

Простыми словами: это «связка», которая позволяет пользователю выбрать период в удобном формате («Месяц», «Квартал», «С 10.01.2025 по 20.01.2025» и так далее), а СКД сама «разложит» этот выбор на две конкретные даты и передаст их в запрос.

Шаг 8

Переходим на вкладку Настройки для формирования полей и группировок отчёта.

  1. Выделяем отчёт, нажимаем правую кнопку мыши и выбирает «Новая группировка»

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

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

Нажимаем на три точки, раскрываем реквизит Исполнитель и двойным щелчком выбираем Группа. Нажимаем ОК

Нажимаем на три точки, раскрываем реквизит Исполнитель и двойным щелчком выбираем Группа. Нажимаем ОК

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

Создаём новую группировку и через три точки выбираем реквизит Очередь которая включает в себя все очереди задач с которыми работал исполнитель.

Выбираем, нажимаем ОК

Выбираем, нажимаем ОК

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

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

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

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

Далее переходим на вкладку Отбор (Филтры по Русскому))) Как и в предыдущем примере с Выбранными полями, перетаскиваем в Отбор реквизиты Очередь, Исполнитель, далее раскрываем реквизит Документ и от туда переносим два раза поле Документ.ДатаВыполнения

По каждому полю настраиваем параметры по столбцу Вид сравнения и правое значение как на картинке. Далее выделяем два поля Документ.ДатаВыполнения, нажимаем на правую кнопку мыши и выбираем Сгруппировать условия. Данным действием мы сделали группировку где условие будет работать так:

Когда

Документ.ДатаВыполнения больше или равно дате (выбираем дату в отчёте) И

Документ.ДатаВыполнения меньше или равно дате (выбираем дату в отчёте) тогда сформировать результат. Тем самым мы устанавливаем нужный нам диапазон дат.

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

На этом основное формирование отчёта закончено. Необходимо сохранить его в удобную для вас папку и запустить, нажав на кнопку F5 или Начать отладку

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

Нажимаем Да

Нажимаем Да

Отчёт в WMS

Красным выделил сформированный нами Параметр , жёлтым Отборы. В поле параметр можно сразу выбрать целый год, а уже полями Документ.ДатаВыполнения указывать диапазоны для формирования отчёта.

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

В системе имеется множество разных результатов. В зависимости от данных задачи отбора.

  • Успешно — Если не заполнена конечная зона 

  • Успешно по плану — Если конечное = текущей 

  • Успешно изменено мест хранения — Если равны зоны, но не равны остальные данные ячейка и МХ

  • Успешно изменена зона — Зоны не равны в задаче

  • Проблема — Если операция с проблемой

Проблема взять и проблема положить — считается на каких операциях возникла проблема.

Учёт операции взять и положить, считается отдельными операциями. Это можно посмотреть в регистре Выполненные задачи.
В системе задан просчёт на каждую операцию положить и взять и поэтому считается как отдельная операция.

Поэтому мы и создали Вычисляемое поле КоличествоИтогМХ которое отображает только одну операцию и выводит корректный результат.

Всем спасибо за внимание. Просьба строго не судить, это моя первая статья.

ссылка на оригинал статьи https://habr.com/ru/articles/1025076/