Фильтр в родительском объекте через дочерний объект

Ирина

Модератор
Здравствуйте, уважаемые разработчики!
Ситуация такая.
Есть форма связи с родительским объектом "Разъяснения", в которой изначально использовалось поле "Комбинация" для отображения разъяснений от уполномоченных органов по разделам (тематике).
Например, Минфин в одном письме разъяснил применение Налогового кодекса в части НДС, налога на прибыль и акцизов. Через поле комбинация выбраны все эти 3 раздела. Все отлично работает.
Создан дочерний объект "Тематика", где также фиксируются разделы, по которым даны разъяснения. Получается в дочернем объекте дублирование по разделам. Но такое дублирование нужно для формы итогов для суммирования по каждому отдельному разделу. Тоже все прекрасно работает!
Но столкнулась с тем, что при большом объеме работы иногда в дочернем объекте пропускаю раздел... Найти, где пропущено занимает много времени, т.к. разъяснения выходят не в хронологии по датам (тем более разделам), а часто разными "старыми" датами (иногда и прошлогодними) и т.п.
После ввода каждой записи сверять количество записей по разделу в родительском объекте с формой итогов довольно проблематично.

Поэтому решила в родительском объекте "Разъяснения" заменить поле комбинация "Раздел" на составное поле "Раздел", которое заполняется из поля дочернего объекта "Раздел".
Все отлично работает! А время на создание записи в родительском объекте сократилось в разы!
Но вылезло маленькое но…..
По запросу клиента или другим нуждам, нужно выбрать все разъяснения, например, по НДС. Как озвучила выше одно разъяснение может содержать несколько разделов (бывает до 8 разделов), поэтому чтобы отфильтровать разъяснение по нужному разделу, в фильтре составного поля поиск задается вручную (пишется почти вся фраза). В принципе не так и сложно, но есть нюансы.
Например, раздел "Страховые взносы" разделен на 2:
- страховые взносы,
- страховые взносы пониженные тарифы.
Аналогично налог на прибыль:
- налог на прибыль,
- налог на прибыль пониженные тарифы.
Получается при поиске в фильтре через составное поле нужно полностью написать всю фразу, что не совсем удобно, в отличии от поля "Комбинация".
Правда, в составном поле невозможно сделать выбор из разделов НДФЛ. Их несколько – 2-НДФЛ, 3-НДФЛ, 6-НДФЛ и НДФЛ. Если нужно выбрать только раздел НДФЛ, то выбирается всё.....

P.S. Поле комбинация "Раздел" в родительском объекте изначально создавалось для фильтра. Хотя была задумка использовать поле объект, но т.к. разъяснение может содержать несколько разделов, то создавать несколько полей (соответственно фильтров) нет смысла, да и угадывать в каком поле что заполнено не вариант!
А если поле строка заполнять по принципу поле комбинация (разделы через запятую), то дочерний объект также придется заполнять и очередная "потеряшка" не исключена)))

P.P.S. Решила в родительском объекте добавить поле строка с подтипом "метки" для удобной фильтрации, которое по задумке должно заполниться копией из составного поля. Но поле строка не заполняется, т.к. составное поле заполнено из дочернего объекта.
Правда через метку также невозможно будет выбрать только раздел НДФЛ, т.к. подтягиваются и другие разделы с этим словом.... Да и шаблон с реестром разъяснений нужно формировать только по конкретному разделу.
Можете что-нибудь посоветовать?
Спасибо
 

Вложения

  • Фильтр в родительском объекте.rbase
    1.6 KB · Просмотры: 8

Ирина

Модератор
В принципе получилось сделать что хотела)
Для заполнения поля "Строка" нужно использовать поле "Условие" с условием [Раздел]!= , а составное поле "Раздел" (заполненное из дочернего объекта) размещается на вкладке 8.
Также, чтобы была возможность фильтровать только по нужному разделу, в поле объект "Раздел" для повторяющихся слов в нескольких разделах, добавлена точка.
Например, НДФЛ. (с точкой в конце). Тогда фильтр через метку выбирает разъяснения, где есть только раздел НДФЛ (без цифр в начале слова).
Единственное, поле "Строка" заполняется только после открытия родительского объекта и сохранения его заново, что конечно не совсем удобно. Получается поле "Строка" не "видит", что поле "Раздел" заполнилось через дочерний объект, поэтому заполняется автоматически после открытия формы. Ещё странно, что заполняется поле "Строка" только через поле "Условие", копия из или операция присвоить полю значение не "видят" составное поле "Раздел".

Но даже через повторное сохранение записи в родительском объекте, исключены ошибки в пропуске раздела в дочернем объекте, т.к. дочерний объект сразу заполняется (не дублируя). И если всё-таки забыл сохранить заново родительский объект (для заполнения поля "Строка") или даже забыл заполнить дочерний объект, то через фильтрацию по пустому значению в строке при помощи ключевого слова [empty], можно найти пустые строки, тем более, что в основном проекте поле "Строка" не отображается в списке!
Фильтр через поле "Строка" с использованием метки хорош тем, что видишь весь список разделов, что невозможно сделать в составном поле. Разделов в основном проекте много, поэтому все названия сложно вспомнить, чтобы правильно задать фильтр в составном поле для формирования шаблона с реестром и т.д.
 

Вложения

  • Фильтр в родительском объекте1.rbase
    1.9 KB · Просмотры: 6

Anti

Администратор
Команда форума
Здравствуйте, Ирина!
Извините за задержку с ответом - решили подумать, насколько возможно сделать копирование составного поля, которое формируется на базе дочернего списка, в другую строку, для которой задан подтип "Метки", фильтр по которой даст возможность отбирать данные по принципу ИЛИ.
Сложность заключалась, как Вы правильно заметили, в том, что составное поле собирается из данных формы связи, а настройка копирования производится в объекте. Задача оказалась не самая простая, и для её реализации потребуется некоторое время. Как только мы её закончим - сразу предоставим Вам тестовую версию для проверки.
Насколько поняли - это решение поможет в реализации поставленной задачи и не придётся выдумывать обходные пути?
 

Vladimir

Администратор
Команда форума
Ирина, Ваши посты, как всегда, заставляют нас задуматься гораздо больше, чем просто "как ответить на вопрос"! ?
Я подготовил другое решение Вашей задачи, но обнаружил необходимость одной доработки для этого - мы реализуем её в этом-же обновлении. Когда выложим его - тут опубликую пример проекта. Думаю, Вам понравится.
Но кроме того, возникла идея нового типа поля, с помощью которого подобные решения будут реализовываться гораздо проще, а также могут быть применены для множества задач. Но так как предметно объяснить пока не могу, мне остаётся только поблагодарить Вас за такое активное использование конструктора - без Вас мы бы не придумали настолько красивую идею, которая в будущем увидит свет. ?
 

Ирина

Модератор
Здравствуйте, Наталья!
Главное, что Вы всегда отвечаете и делаете своевременно все исправления. Время ответа не играет роль, спасибо большое.
которое формируется на базе дочернего списка, в другую строку, для которой задан подтип "Метки", фильтр по которой даст возможность отбирать данные по принципу ИЛИ
Возможно я не совсем поняла Вас, но дело не в отборе по принципу ИЛИ, а именно в списке разделов, который виден при открытии фильтра через метку или поле комбинация.
Например, есть несколько разъяснений госорганов по разделам:
- 1 разъяснение – НДС, акцизы, налог на прибыль,
- 2 разъяснение – НДС
- 3 разъяснение – НДС, страховые взносы, акцизы,
- и т.д.
Да, здесь есть принцип ИЛИ, поэтому выбираются разъяснения не только с одним НДС, а ещё и все разъяснения включающие НДС. А если нужны акцизы, то выборка аналогична.
Да, Вы абсолютно правы!
Удалять размышления не буду, т.к. через текст я также пришла к пониманию сути :)

Насколько поняли - это решение поможет в реализации поставленной задачи и не придётся выдумывать обходные пути?
Это идеальное решение задачи! Т.к. озвучила выше, в дочернем объекте сразу заполняются разделы, а в родительском объекте всё автоматически фиксируется, что исключает ошибки в вводе данных, а время ввода информации во много раз сокращается.
 

Ирина

Модератор
Здравствуйте, Владимир!
Могу только очередной раз поблагодарить за такой крутой проект!
Вы даже представить не можете во сколько раз облегчили рутинный труд и сократили время на обработку документов. Мной ведь описана только мизерная часть проекта, а там столько нюансов, что благодаря Руне удается их решить!
Я несколько лет шла к своей мечте и создавая другие проекты на базе Руны, включая хобби, не могла сделать программу именно для своей работы.
Даже использовала сторонние программы для хотя бы фиксирования данных. Но там не было тех же шаблонов, которые в Руне создаются в один клик, не говоря уже о стандартных запрограммированных настройках в сторонних программах, которые не изменить в отличие от Руны.
А когда в этом году через несколько лет (!) наконец-то поняла, как связать многие вещи в конструкторе до этого никак не "связанные", открыла для себя Руну в новом свете.
Да и дальше продолжаю открывать. Оказывается, ещё столько неизведанного есть в текущей версии, что 7-ую версию даже сложно вообразить.
Спасибо огромное за Ваш с Натальей Труд! ?
 

Vladimir

Администратор
Команда форума
Добрый день, Ирина!
В приложении - пример проекта с фильтром по множеству значений при помощи строки с подтипом "Метки".
В объекте "Разделы" составлен список всех тем:
Разделы.jpg
При добавлении записи в объекте разъяснений - в списке переключателей тем надо отметить нужные:
Разъяснения.jpg
В форме итогов видим общее количество тем, участвующее в разъяснениях:
Итог по разъяснениям.jpg

Примечание: работать пример будет начиная с версии 6.1.9.
 

Вложения

  • Фильтр по множеству значений.rbase
    3.1 KB · Просмотры: 17
Сверху Снизу