Робота з атрибутами
Спеціальні типи атрибутів
Довідникові атрибути
Керування списком значень атрибутів Dropdown
Для системного довідника. Керування списком доступних для вибору значень в атрибутів Dropdown. 8 це id атрибута – довідника. В результаті в зазначеному атрибуті будуть доступні тільки записи, код яких починається з 010. Може бути застосовано для single choice, так і для multi choice довідників.
module.exports = {
form_8_getRepository(event) {
event.repository.where('code', 'startsWith', '010')
}
}
Для системного довідника
module.exports = {
async loaded(event) {
if (event.value) {
const valueTextCode = await UB.Repository('cdn_currency')
.attrs('code3')
.where('ID', '=', event.value)
.selectScalar()
if (valueTextCode === 'AED') {
console.log('Обрана місцева валюта AED')
} else {
console.log('Обрана інша валюта')
}
}
}
}
Для класифікатора
module.exports = {
async loaded(event) {
if (event.value) {
const valueTextCode = await UB.Repository('cdn_classifieritem')
.attrs('code')
.where('ID', '=', event.value)
.selectScalar()
if (valueTextCode === 'active') {
console.log('Обрано значення active')
}
}
}
}
Інші типи
Скрипт для поля типу Гіперпосилання
Встановлення значення атрибута типу Гіперпосилання.
module.exports = {
loaded(event) {
event.document.setAttribute('a026', {
caption: '3232',
url: 'https://www.caringmedical.com/prolotherapy-news/arthroscopic-knee-surgery-for-osteoarthritis/'
})
}
}
Валідація атрибутів
Файлові атрибути
Установка обов'язковості для атрибута "Додатки документа" за допомогою скриптів не є актуальною, оскільки в цілому обов'язковість не актуальна і не встановлюється для цього атрибута.
Обов'язковість файлового атрибута документа
У разі збереження документа файловий атрибут повинен бути заповнений (Attrfile22 файловий атрибут). Якщо він не заповнений, видається відповідне повідомлення у правому верхньому куту, а також кастомізоване повідомлення біля самого атрибута.
module.exports = {
document_validateAttribute_Attrfile22(event) {
const docFile = event.document.getFileAttribute('Attrfile22')
if (!docFile.fileInfo) {
return 'Для збереження документа необхідно додати файл'
}
}
}
Обов'язковість образу документа
module.exports = {
document_validateNativeAttribute_docImage(event) {
const docFile = event.document.getNativeAttribute('docImage')
if (!docFile.fileInfo) {
return 'Для збереження документа необхідно додати файл'
}
}
}
Обов'язковість файлового атрибута таблиці
module.exports = {
documentItem_validateAttribute_Attrfile22(event) {
const docFile = event.documentItem.getFileAttribute('Attrfile22')
if (!docFile.fileInfo) {
return 'Для збереження рядка таблиці необхідно додати файл'
}
}
}
Обов'язковість підпису для файлового атрибута документа
Виконується тільки в тому випадку, якщо сам файловий атрибут заповнений.
module.exports = {
document_validateAttribute_Attrfile22(event) {
const docFile = event.document.getFileAttribute('Attrfile22')
if (docFile.fileInfo) {
if (docFile.signatures.length < 1) {
return 'Для збереження документа необхідно підписати файл'
}
}
}
}
Обов'язковість файлового атрибута документа та підпису до нього
module.exports = {
document_validateAttribute_Attrfile22(event) {
const docFile = event.document.getFileAttribute('Attrfile22')
if (!docFile.fileInfo) {
return 'Для збереження документа необхідно додати файл'
}
if (docFile.signatures.length < 1) {
return 'Для збереження документа необхідно підписати файл'
}
}
}
Обов'язковість файлового атрибута таблиці та підпису до нього
module.exports = {
documentItem_validateAttribute_Attrfile22(event) {
const docFile = event.documentItem.getFileAttribute('Attrfile22')
if (!docFile.fileInfo) {
return 'Для збереження пункта таблиці необхідно додати файл'
}
if (docFile.signatures.length < 1) {
return 'Для збереження пункта таблиці необхідно підписати файл'
}
}
}
Перевірка обов'язковості файлового атрибута документа та кількості підписів
В даному прикладі 4.
module.exports = {
document_validateAttribute_Attrfile22(event) {
const docFile = event.document.getFileAttribute('Attrfile22')
if (!docFile.fileInfo) {
return 'Для збереження документа необхідно додати файл'
}
if (docFile.signatures.length < 4) {
return 'Для збереження документа необхідно 4 підписи для файла'
}
}
}
Контроль розміру файлу, що завантажується (для файлового атрибута)
module.exports = {
document_validateAttribute_a001(event) {
const docFile = event.document.getFileAttribute('a001')
if (docFile.fileInfo && docFile.originalFileInfo.size > 12288) {
return 'Розмір файла, що завантажується, більше ніж 12Кб'
}
}
}
Cкалярні атрибути
Контроль значення у числовому полі
module.exports = {
document_validateAttribute_Attrnumeric077(event) {
if (event.value > 1200) {
return 'Число не повинно перевищувати 1200'
}
}
}
Контроль значення у текстовому полі
module.exports = {
document_validateAttribute_Attrtext01(event) {
if (event.value == 'Не погоджено') {
return 'Неможливо зберегти документ якщо він не погоджений'
}
}
}