- Главная [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Начало работы
- Работа с типами
- Глобальный контекст и изоляция
- Работа с приложениями
- Массовые действия с элементами приложения
- Работа с внешними сервисами
- Скрипты в виджетах
- Веб компоненты
- Права доступа
- Начало работы с процессами
- Начало работы с подписями
- Начало работы с предпросмотром файлов
- Начало работы с организационной структурой
- Начало работы с пользователями и группами
- Начало работы с типом данных Таблица
- Как решить вашу задачу
- Как сделать пользовательское отображение элементов приложений
- Как сделать динамическое отображение полей/виджетов со сложным условием
- Как регистрировать документ
- Как рассчитывать интервал между датами
- Как создать замещение пользователя
- Как использовать пагинацию и сортировку при поиске элементов приложения
- API
- Типы объектов
- Типы данных
- Глобальные константы
- Работа с приложениями
- Веб-запросы
- Права доступа
- Документооборот
- Линии
- Виджет «Код»
- Подписи
- Рабочие календари
- Интеграция с IP-телефонией
- Интеграция с сервисами рассылок
В этой статье
Как регистрировать документ
Регистрация документов в системе позволяет разместить элемент приложения в иерархической схеме учета документов компании и присвоить ему регистрационный номер. Для регистрации элемента приложения в делах компании необходимо выполнить настройку приложения и номенклатуры дел. С помощью пользовательских скриптов можно получать списки дел, доступных для регистрации, регистрировать элементы приложений в созданных делах и резервировать регистрационные номера.
Регистрация элемента приложения
Рассмотрим, как в рамках пользовательского скрипта можно выполнить регистрацию документа во всех делах, настроенных для приложения. Чтобы это сделать, необходимо получить идентификаторы всех дел, в которых можно зарегистрировать элемент данного приложения. Сначала получим элемент приложения. Это можно сделать либо через контекст, либо с помощью глобальных констант
Global
илиNamespace
.Пример того, как получить элемент приложения из контекста:
// Получение элемента через контекст const agreement = Context.data.agreement!;
Пример того, как найти элемент приложения с помощью
Global
:// Получение элемента через поиск const agreement = Global.ns.documents.app.agreement.search().first();
Для регистрации элемента приложения в пользовательском скрипте требуется передать идентификатор дела в метод DocflowApplicationItemRef.register. Идентификатор дела можно получить из RegistrationSettings.nomenclatureIds. В данном свойстве хранятся все дела, доступные для элемента приложения. Получим список доступных дел для элемента, полученного в примере выше:
// Получение настроек const settings = await agreement.getSettings(); // Получение идентификаторов дел // В дальнейшем их можно использовать для регистрации const registrationIds = settings.registrationSettings.nomenclatureIds;
Затем извлеченные идентификаторы можно использовать для регистрации документа во всех делах:
// Элемент приложения регистрируется во всех делах const registrations = registrationIds.map(registerId => agreement.docflow().register(nomenclatureId)) // Ожидание завершения всех регистраций const registrationsResult = await Promise.all(registrations); // Проверка, что все регистрации завершены успешно const allRegistrationsComplited = registrationsResult.every(registrationResult => registrationResult); if (!allRegistrationsComplited) { // Если не все регистрации завершены успешно, выполнение прерывается throw new Error('Документ не зарегистрирован'); }
Регистрация с резервированием номера
В компании может существовать порядок присвоения регистрационных номеров, который не совпадает с порядком регистрации документов в пользовательском скрипте или бизнес-процессе. В таких случаях можно использовать резервирование номеров. Чтобы зарезервировать номер для документа до его непосредственной регистрации, используется метод DocflowApplicationItemRef.reserve. Результатом выполнения процедуры является зарезервированный для элемента приложения номер.
Резервирование отменяется методом DocflowApplicationItemRef.deleteReservation.
Ниже представлен пример, который иллюстрирует применение методов для резервирования номера и отмены резервирования:
// Приложение, хранимое в контексте const item = Context.data.document!; // Получение настроек приложения const settings = await item.getSettings(); const nomenclatures = []; // Получение информации о делах, для которых доступна регистрация в приложении for (const nomenclatureId of settings.registrationSettings.nomenclatureIds) { const nomenclature = await item.docflow().getNomenclature(nomenclatureId); if (nomenclature !== undefined) { nomenclatures.push(nomenclature); } } // Поиск нужного дела для резервирования номера const nomenclatureName = 'Название нужного дела'; const nomenclatureForReservation = nomenclatures.find(nom => nom.name === nomenclatureName); if (nomenclatureForReservation !== undefined) { // Если дело для резервирования найдено, выполняем резервирование номера для элемента приложения const reservedNumber = await item.docflow().reserve(nomenclatureForReservation.__id); }