Оригинал на GitHub
Вопрос
Есть таблица циклов, в каждом цикле 2 таблицы Расчетные в цикле. Нужно, чтобы одна группа пользователей имела доступ только к одной из них — ко второй. При запрете первой расчетной таблицы в цикле пользователь из заданной группы при создании нового цикла переносится сразу в первую расчетную в цикле, к которой доступ запрещен. Как поменять их местами, чтобы при создании нового цикла пользователем из заданной группы, он перемещался сразу во вторую таблицу.
Ответ
Для кастомизации процесса создания цикла, необходимо скрыть в настройках таблицы циклов стандартную кнопку Добавить — это делается установкой настройки добавления в таблицу в положение отключено.
Далее мы создаем кнопку в хедере таблицы циклов, в которой в коде действия выполняем два действия, добавление строки в таблицу циклов с получением id добавленной строки и вторым действием переход в нужную таблицу цикла, которая выбирается на основе текущей роли пользователя.
Код действия пользовательской кнопки Добавить:
a1=: insert(table: $#ntn; inserts: "new_cycle_id"; log: true)
a2=: linkToTable(table: $if_table; cycle: $#new_cycle_id[0]; target: "self")
if_table: if(condition: $#nr = 2; then: "table_inside_2"; else: "table_inside_1")