Преобразование отбора компоновки данных к линейному условию для запроса
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Заморочился, я значит, создать некий мэппинг для получения результата из вспомогательного справочника по определенному условию значения(читай значений) для добавленного реквизита в регистр бухгалтерии "Хозрасчетный".
Решил использовать отбор самого регистра бухгалтерии на форме элемента справочника, реквизит регистра бухгалтерии "Хозрасчетный" (дополнительная аналитика для финансистов) является ссылкой на сам этот справочник.
Опишу сам механизм разработки:
1. Создал справочник с реквизитом хранилища значения, в котором буду хранить сам отбор компоновки данных, реквизит назвал "УсловияОтбора"
2. В форму добавил Динамический список (имя "Список") с основной таблицей "РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто" (можно было написать запрос но в перспективе можно использовать любой источник и к нему получать отбор). Для чего добавил? Чтобы в Динамическом списке использовать "Отбор" этого динамического списка, который и вынес на форму (на скриншоте видно какая получилась форма)
3. При записи элемента справочника записываю отбор в реквизит "Условия отбора", при открытии формы считываю отбор в элемент "СписокОтбор", Все красиво.
4. В менеджере справочника написал функцию преобразования красивого иерархического дерева отбора в строку условий для запроса (видно на скриншоте в области сообщений) для контроля вывожу на экран через кнопку "Проверка признака". Функция возвращает Структуру со строкой условия запроса и соответствия с параметрами для запроса.
Как использую функцию (можно по всякому ее использовать):
Перед записью движения Регистра бухгалтерии, отправляю набор записей на анализ, проверяю каждую запись на соответствие условий отбора и при совпадении результатов отбора, в дополнительный реквизит проставляю соответствующий "признак", по остальным признакам проверка дальше не идет (можно проставить при необходимости приоритет прохождения справочника признаков)
Результат работы, в проводки проставилась аналитика в соответствии с отбором, в данном случае ссылка на сам справочник признака, но можно цеплять любую аналитику и разные типы

Механизм получился достаточно трудоемким, но перспективным, поэтому продаю. Подробное описание со скриншотами и текстами во вложении формат Word
Вступайте в нашу телеграмм-группу Инфостарт