От Дмитрия Соловей — @solovey_nchub
Данная формула собирает большой перечень переменных для расчета. За основу берется дата в UNIX формате в переменной table.current.firstWorkDay.
if(table.current.firstWorkDay == null, "Не указан первый рабочий день",
let({
first: table.current.firstWorkDay,
firstdate: toDate(first),
today: toNumber(now()),
total: today - first,
y: total / 31556926000,
m: (total / 2629743000) - (floor(y) * 12),
d: if((total / 86400000 / 365.24) < 1, total / 86400000, (total / 86400000 / 365.24)),
cury: floor(y),
curm: floor(m),
curd: floor(d),
ywords: ['год', 'года', 'лет'],
mwords: ['месяц', 'месяца', 'месяцев'],
dwords: ['день', 'дня', 'дней'],
years: cury & ' ' & ywords[if(
cury % 100 > 4 and cury % 100 < 20,
2, [2, 0, 1, 1, 1, 2][if(cury % 10 > 5, 5, cury % 10)]
)],
month: curm & ' ' & mwords[if(
curm % 100 > 4 and curm % 100 < 20,
2, [2, 0, 1, 1, 1, 2][if(curm % 10 > 5, 5, curm % 10)]
)],
days: curd & ' ' & dwords[if(
curd % 100 > 4 and curd % 100 < 20,
2, [2, 0, 1, 1, 1, 2][if(curd % 10 > 5, 5, curd % 10)]
)],
},
if(cury <= 0, "", years)
& " " &
if(curm <= 0, "", month)
& " " &
if(curd <= 0, "меньше одного дня", days)
)
)
Данная формула перебирает массив array в функции sort, и возвращает массив в перемешанном виде в переменной pass, а далее функция slice собирает из этой переменной 9 символов для пароля. Количество символов можно регулировать изменяя число в slice.
let({
array:
["A", "B", "C", "D", "E", "F", "G", "H", "I",
"K", "L", "M", "N", "O", "P", "Q", "R", "S",
"T", "V", "X", "Y", "Z", "a", "b", "c", "d",
"e", "f", "g", "h", "i", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "v", "x", "y",
"z", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "0", "_", "$", "@", "%", "&", "~"],
pass: map(
sort(map(array, [item, random()]), item[1]),
item[0]
)
},
join(slice(pass, 0, 9 ), "")
)
Данная формула собирает все поля из формы и преобразовывает в текст с нужными ключами и правами доступа
let({
newsFull: "newsFull" & data.fields.newsFull & ", ",
fileBasic: "fileBasic" & data.fields.fileBasic & ", ",
fileFull: "fileFull" & data.fields.fileFull & ", ",
reportsClientBasic: "reportsClientBasic" & data.fields.reportsClientBasic & ", ",
forecast: "forecast" & data.fields.forecast & ", ",
financeBasic: "financeBasic" & data.fields.financeBasic & ", ",
financePlanerFull: "financePlanerFull" & data.fields.financePlanerFull & ", ",
financePrize: "financePrize" & data.fields.financePrize & ", ",
crmBasic: "crmBasic" & data.fields.crmBasic & ", ",
crmFull: "crmFull" & data.fields.crmFull & ", ",
crmDelete: "crmDelete" & data.fields.crmDelete & ", ",
callcenterBasic: "callcenterBasic" & data.fields.callcenterBasic & ", ",
callcenterFull: "callcenterFull" & data.fields.callcenterFull & ", ",
callcenterScripts: "callcenterScripts" & data.fields.callcenterScripts & ", ",
teamBasic: "teamBasic" & data.fields.teamBasic & ", ",
knowlageBaseFull: "knowlageBaseFull" & data.fields.knowlageBaseFull & ", ",
ideaFull: "ideaFull" & data.fields.ideaFull & ", ",
hrBasic: "hrBasic" & data.fields.hrBasic & ", ",
hrFull: "hrFull" & data.fields.hrFull & ", ",
clientServiceBasic: "clientServiceBasic" & data.fields.clientServiceBasic & ", ",
clientServiceFull: "clientServiceFull" & data.fields.clientServiceFull & ", ",
administrator: "administrator" & data.fields.all & ", ",
},
newsFull &
fileBasic &
fileFull &
reportsClientBasic &
forecast &
financeBasic &
financePlanerFull &
financePrize &
crmBasic &
crmFull &
crmDelete &
callcenterBasic &
callcenterFull &
callcenterScripts &
teamBasic &
knowlageBaseFull &
ideaFull &
hrBasic &
hrFull &
clientServiceBasic &
clientServiceFull &
administrator
)
Данная формула берет строку из БД, трансформирует в массив, а далее для каждого ключа присваивается переменная которая принимает значение 0 или 1, и таким образом переключает значение галочки при использовании предзаполнения.