Содержание
В ERP есть обработка по формированию заказов по потребностям, она регулярно используется для:
- Формирования заказов на перемещение в соответствии со схемами обеспечения
- Формирования заказов поставщику для пополнения ЦМС по поддержанию нормативных запасов.
Находится здесь.
Ввиду особенности учета и схем обеспечения часто приходится накладывать отборы перед формированием исходных данных.
Рис. 1
Часто бывает, что текущих отборов недостаточно. Предлагаю добавить свой.
Постановка задачи
Дана база ERP (на момент написания статьи версия - 2.5.17.155). Необходимо добавить новый отбор по дополнительным сведениям заказов на внутреннее потребление. Назовем его “Хороший заказ”. Зайдем в конфигуратор.
Обработка.
Рис. 2
Все, что нам потребуется:
- поправить макет МакетКомпоновкиДляСерверныхОтборов
- поправить модуль менеджера обработки
Править будем в расширении.
Макет МакетКомпоновкиДляСерверныхОтборов
Макет СКД. Отвечает за вывод всех доступных полей отборов Собственно поля отборов на рис. 1 – это отборы из компоновщика настроек этого макета.
//Вставка
//КонецВставки
Во вкладке настройки добавляем новое поле в выбранные поля и в отбор (рис. 3)
В отборе ставим быстрый выбор (рис. 4).
Модуль менеджера обработки
В модуле менеджера правим всего 3 функции.
- ВременнаяТаблицаОтборПоЗаказам()
- ВременнаяТаблицаТоваровДляПоддержанияЗапаса()
- ПолучитьЗапросСОтборамиКомпоновкиДанных()
Правки выделены комментарием
//Вставка
//КонецВставки.
ВременнаяТаблицаОтборПоЗаказам()
ВременнаяТаблицаТоваровДляПоддержанияЗапаса()
ПолучитьЗапросСОтборамиКомпоновкиДанных()
Готово. Теперь в поле отборов появится новый отбор, работающий аналогично типовым.
Резюме
Аналогичным образом можно ставить и другие отборы. Пропишем плюсы и минусы фичи.
Достоинства:
- Способ не требует вмешательства в основную конфигурацию и подходит для расширений
- Гибкий отбор по механизму СКД. Вариативность по видам сравнения, вложенным полям
- Простая и быстрая реализация
Недостатки:
- В расширении в функциях используются директивы &Вместо
Автор: Иван К., разработчик 1С.