Compare commits

...

55 Commits

Author SHA1 Message Date
81536f40bb описание ECM 2025-07-23 16:49:37 +05:00
dec402d0a5 поправил FAQ 2025-07-23 16:45:55 +05:00
ebdd0feacb поправил FAQ 2025-07-23 16:42:23 +05:00
a7ef6494c6 обновлен FAQ 2025-07-23 16:40:13 +05:00
2f63a4fd0a Конструктор документов 2025-07-14 17:14:10 +05:00
735108f17e 25949 апдейт поля статус 2025-07-01 16:00:18 +05:00
59b78ded00 25933 упр структура в сз 2025-06-30 14:25:12 +05:00
41b64eb4ab убрал sql запрос 2025-06-30 14:23:21 +05:00
d5c72d919a 26336 роль на отчет по орд 2025-06-17 10:06:19 +05:00
e0a70a3dc6 27089 константа жирный текст 2025-06-17 10:03:38 +05:00
8d1d93f3da 27089 действия на разреш вложения 2025-06-17 10:00:44 +05:00
8fcf28465e 25978 жизненный цикл 2025-06-16 15:34:44 +05:00
178a2d4267 убрал примеры sql 2025-06-16 15:18:37 +05:00
dd52414350 корректировка уведомлений и шаблонов 2025-05-28 17:04:51 +05:00
bc8e41cde2 пример суммы в текст 2025-05-07 13:45:37 +05:00
60794bc838 жсд поправка 2025-05-06 20:26:59 +05:00
aac298471b жсд закомментил запросы 2025-05-06 20:25:04 +05:00
f1379e695d 25506 допустимые статусы в подтипах 2025-05-06 20:20:43 +05:00
0791391ccd 25260 вычисление для статичного лукапа 2025-05-06 16:07:18 +05:00
7fe6b99362 Merge branch 'master' of http://gogs.lex.lan/l8-base/ECM-administrator-manuals 2025-04-15 17:30:46 +05:00
90e0706497 опечатка в конструкторе 2025-04-15 17:30:45 +05:00
1729042038 Merge branch 'master' of http://gogs.lex.lan/l8-base/ECM-administrator-manuals 2025-04-15 15:34:11 +05:00
be51df9017 Константы 2025-04-15 15:34:10 +05:00
84a65962ec 25981 скрипт по созданию документа 2025-04-15 11:02:45 +05:00
3b005a5d8d поправлено функции шедулера 2025-04-09 16:25:24 +05:00
8ac1fcd04a 25904 юзеры из маршрута в мемо 2025-04-04 17:40:40 +05:00
54ea5b955f скрытие лк в мобилке константа 2025-03-24 11:27:17 +05:00
1f2a78f116 Настройка документов 25176 2025-03-21 11:38:01 +05:00
cca7850ca9 Подтипы документов, константы 2025-03-21 10:50:18 +05:00
9ccad9aa8a 25031 контрол считается от данных в гриде 2025-03-14 14:15:10 +05:00
f5b547d571 24885 тех задача 2025-03-14 09:47:29 +05:00
dce49059f9 25193 поиск динамическиъ атрибутов 2025-03-14 09:30:04 +05:00
7eb90a0ce3 контрагенты 2025-03-13 09:22:25 +05:00
68c0ed7a97 число прописью вернул 2025-03-10 14:44:09 +05:00
c41608888b удален тест сайта 2025-03-10 13:37:10 +05:00
19e0dac6c2 удаление инструкции по тесту сайта 2025-03-10 13:36:26 +05:00
7f409805b2 удален тестирование сайта 2025-03-10 10:59:19 +05:00
d92353e159 правка скринов 2025-03-05 16:08:43 +05:00
a23564e0db вырезка логинов 2025-03-05 10:37:30 +05:00
0b69d974e0 Merge branch 'master' of http://gogs.lex.lan/l8-base/ECM-administrator-manuals 2025-03-03 15:40:22 +05:00
26d5b462f6 в конструкторе уведомлений исправлены ссылки на картинки 2025-03-03 15:40:21 +05:00
f32a057fe4 Конструктор документов, настройка документов 2025-03-03 14:17:49 +05:00
58272a586d дата окончания серта уведомление 2025-02-26 14:08:30 +05:00
019cc7afdb вырезка логинов 2025-02-18 14:55:44 +05:00
faef4a509c вырез логина+роль на реестры сэд 2025-02-18 14:05:04 +05:00
379d5d5081 опечатка в роли регистрара во вход 2025-02-13 16:38:39 +05:00
93c0cded4c отпечатка 2025-02-13 16:04:44 +05:00
bd8d69f339 выпилил из faq добавление этапа 2025-02-13 16:04:11 +05:00
e137316842 docflow_IncomingDocument_defaultexecutiont 2025-02-13 11:34:45 +05:00
8ab3b999d1 обязат комментарий 2025-02-13 09:52:15 +05:00
4aaa6f391f действия в маршруте. логи 2025-02-10 11:32:19 +05:00
ad2439aa99 24040 hr об просрочке уведомлений на отпуск 2025-02-06 11:04:30 +05:00
ea0f30e0a6 вырезка логинов 2025-01-31 16:30:34 +05:00
c82915731f вырезка логинов 2025-01-31 16:16:16 +05:00
7f8c288e11 ссылочные документы в ЖСД 2025-01-30 10:24:16 +05:00
341 changed files with 1380 additions and 1187 deletions

3
.gitignore vendored
View File

@ -1,4 +1,5 @@
/env /env
/site /site
/venv /venv
docs\Admin manuals\QueryAnalyzer docs\Admin manuals\QueryAnalyzer
docs\Admin manuals\Проведение тестирование сайта\

View File

@ -1,186 +1,453 @@
# FAQ Lexema-ECM # FAQ Lexema-ECM
## Настройки сервера и ПО ## Работа с документами и маршрутами
!!! question ??? question "Как создать новый вид заявления?"
Как изменить часовой пояс в системе (Postgre SQL)?
Необходимо выполнение следующих команд в PgAdmin см. статью [Конструктор документов](../Конструктор документов/)
```sql
select localtimestamp; /*возвращает текущую дату и время в часовом поясе из сеанса sql*/ ??? question "Как создать новый маршрут к заявлению?"
select current_timestamp; /*возвращает текущие дату и время из сеанса пользователя*/
SELECT NOW(); --посмотреть серверное время см. статью [ Шаблоны маршрутов](../Настройка шаблонов маршрутов/)
SELECT * FROM pg_timezone_names; -- посмотреть типы часовых поясов
ALTER SYSTEM SET timezone TO 'Europe/Moscow'; -- изменение часового пояса ??? question "Почему я не могу создать ЛНА?"
```
Подробно о часовых поясах в Postge SQL можно узнать [здесь](https://it-blackcat.blogspot.com/2019/10/postgresql-and-timezone.html) Создание ЛНА доступно только ответственным сотрудникам организации, поэтому этим пользователям необходимо дать в системе дополнительные права. Для этого нужно пройти в справочник "Подтипы документа" и указать в таблице "Пользователи с правом создания" этих пользователей. Подробнее см. статью [Подтипы документов](../Подтипы документов/)
??? question "Почему я не вижу документ в реестре?"
По умолчанию во всех реестрах системы Lexema-ECM пользователь видит документы, если
а) он сам является автором этих документов
б) он участвовал в маршруте этих документов, даже если сам не является автором
в) он получил документ посредством списка рассылки
При необходимости можно дать так называемые горизонтальные права -то есть возможность видеть документы других подразделений при том, что в вышеописанные условия не попадает (кас. предоставления горизонтальных прав - см. статью [Настройка пользователей](../Настройка пользователей/).
Если пользователь не видит документ - вероятнее всего он не подходит ни под одно из вышеописанных условий.
??? question "Как мне или администратору отредактировать маршрут согласования?"
С помощью [формы корректировка маршрутов согласования](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Форма корректировки маршрутов согласования/)
??? question "У совместителя автоматически не протиражировалось заявление на других местах работы"
Необходимо проверить следующие условия:
* У совместителя должна быть проставлена "Дата перехода на КЭДО" в карточке сотрудника по каждому Сорг.
* Совместитель не должен быть уволен/заблокирован по другим местам работы (то есть на других Сорг).
* В конструкторе документов во вкладке "Тиражирование/Оповещение" должна быть проставлена галка "Тиражировать заявления для совместителей", и он должен быть доступен на каждом филиале.
* На каждом филиале должен быть настроен пользователь с логином `CopyEmployee` и автоматическое тиражирование заявлений.
??? question "В меню не вижу какую-то форму, например, Анализ сотрудников по КЭДО"
Проверить наличие роли на данную форму у пользователя.
??? question "К пользователю пришел документ на обработку с пустым подтипом"
Проверить наличие конструктора для данного подтипа на Сорг.
Пример: Конструктор заведен только на одном Сорг, а на другом его нет.
## Электронные подписи ??? question "В реестре заявлений у пользователя с настроенными горизонтальными правами не видно заявления, в то время как данное заявление видно через форму журнала состояния документов, в форме корректировки маршрута, а также в СУБД"
!!! question
Почему при выпуске УНЭП не появляются ссылки для скачивания заявки на выпуск ЭП и расписки в получении ЭП?
Для выпуска сертификата УНЭП пользователь системы должен быть привязан к конкретному физическому лицу.
Для этого нужно
1) пройти в раздел Меню - группа "Администрирование" - группа "Управление пользователями" - пункт "Управление пользователями". Возможно, в данном заявлении не заполнилось поле подразделение. В реестре настроена проверка на горизонтальные права по полю подразделение.
2) в загрузившемся списке найти нужный логин и выделить галочкой ??? question "При обработке документов выходит окно для подтверждения обработки (подписания), хотя в шаблоне настроено, чтобы не показывалось"
3) нажать "Данные пользователя" - выбрать физическое лицо в выпадающем списке - и нажать "Сохранить" Убрать галку "Комментировать вложения при согласовании" в Настройке документов.
!!! question ??? question "В служебной записке при создании маршрута он как бы создается, но потом исчезает. В БД у такого документа статус у маршрутов — 4 (удален)"
Как подписать документ квалифицированной подписью?
Прежде чем использовать КЭП, необходимо настроить рабочее место пользователя соответствующим образом. Для настройки - см. статью [Как настроить работу с КЭП на токенах](../Настройка для токенов КЭП/)
!!! question Обновить `serviceRecord_AfterCreateRoute`.
Возможно ли подтверждать операции подписания по SMS?
Да, возможно. Для этого необходимо пройти Меню - группа "Администрирование" - группа "Система" - пункт "Глобальные настройки".
Нажать кнопку "Настройка" и выключить флаг "Отключить подтверждение ЭЦП по СМС (новые сертификаты)"
![Подтверждение через смс](./media/apprbysms.png)
## Работа с документами и маршрутами ??? question "Наблюдаются ошибки в логах при отправке по маршруту: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: \"Error fetching access token: Error while making request: connect ETIMEDOUT 64.233.164.84:443.\""
!!! question
Как создать новый вид заявления?
см. статью [Конструктор документов](../Конструктор документов/)
!!! question Ошибка связана с push-уведомлениями и означает, что Лексема не имеет доступа до сервисов Google, которые отправляют пуши.
Как создать новый маршрут к заявлению? Необходимо открыть Лексеме доступ до этих адресов: [https://firebase.google.com/docs/cloud-messaging/concept-options?hl=en#messaging-ports-and-your-firewall](https://firebase.google.com/docs/cloud-messaging/concept-options?hl=en#messaging-ports-and-your-firewall).
см. статью [ Шаблоны маршрутов](../Настройка шаблонов маршрутов/)
!!! question
Почему я не могу создать ЛНА?
Создание ЛНА доступно только ответственным сотрудникам организации, поэтому этим пользователям необходимо дать в системе дополнительные права. Для этого нужно пройти в справочник "Подтипы документа" и указать в таблице "Пользователи с правом создания" этих пользователей. Подробнее см. статью [Подтипы документов](../Подтипы документов/)
!!! question ??? question "Не приходят уведомления на почту при отправке документа по маршруту"
Почему я не вижу документ в реестре?
По умолчанию во всех реестрах системы Lexema-ECM пользователь видит документы, если
а) он сам является автором этих документов 1) Проверить наличие адреса в глобальных настройках.
2) Проверить наличие конструктора уведомления с типом "О поступлении в работу".
б) он участвовал в маршруте этих документов, даже если сам не является автором ## Работа с электронными подписями
в) он получил документ посредством списка рассылки ??? question "Почему при выпуске УНЭП не появляются ссылки для скачивания заявки на выпуск ЭП и расписки в получении ЭП?"
При необходимости можно дать так называемые горизонтальные права -то есть возможность видеть документы других подразделений при том, что в вышеописанные условия не попадает (кас. предоставления горизонтальных прав - см. статью [Настройка пользователей](../Настройка пользователей/). Для выпуска сертификата УНЭП пользователь системы должен быть привязан к конкретному физическому лицу.
Если пользователь не видит документ - вероятнее всего он не подходит ни под одно из вышеописанных условий. Для этого нужно
## Пользователи 1) пройти в раздел Меню - группа "Администрирование" - группа "Управление пользователями" - пункт "Управление пользователями".
!!! question
Как создать нового пользователя?
см. статью [Управление пользователями](../Управление пользователями/)
## Настройка интеграции с Active Directory 2) в загрузившемся списке найти нужный логин и выделить галочкой
Если возникает ошибка при обращении к домену, например по кнопке Импорт из AD 3) нажать "Данные пользователя" - выбрать физическое лицо в выпадающем списке - и нажать "Сохранить"
![Импорт из AD](./media/Импорт из AD.png) ??? question "Как подписать документ квалифицированной подписью?"
![Ошибка интеграции с доменом](./media/ошибка интеграции с доменом.png)
Прежде чем использовать КЭП, необходимо настроить рабочее место пользователя соответствующим образом. Для настройки - см. статью [Как настроить работу с КЭП на токенах](../Настройка для токенов КЭП/)
Необходимо проверить заполнение файла http://gogs.lex.lan/deploy/НАЗВАНИЕ САЙТА/src/master/config/production.js, где указан полный путь до юнита с пользователями ldap: { ..bindDN: ??? question "Возможно ли подтверждать операции подписания по SMS?"
Например правильное заполнение будет иметь вид: Да, возможно. Для этого необходимо пройти Меню - группа "Администрирование" - группа "Система" - пункт "Глобальные настройки".
'CN=service ldap lexema,OU=Technical Accounts,OU=ЦифроваяПомощь,OU=RU,DC=medholding,DC=corp', Нажать кнопку "Настройка" и выключить флаг "Отключить подтверждение ЭЦП по СМС (новые сертификаты)"
![Подтверждение через смс](./media/apprbysms.png)
Параметры полного пути до юнита с пользователями необходимо запрашивать у системных администраторов ??? question "Что делать если по кнопке Добавить сертификат - список сертификатов пустой?"
1) см. статью [Привязка КЭП к пользователю Lexema-ECM](../Настройка для токенов КЭП/#шаг_3_привязка_кэп_к_пользователю_lexema-ecm).
посмотреть параметры можно в cmd командой whoami /fqdn Как добавить в личное хранилище импортированные сертификаты?</br>
CN=service ldap lexema,OU=Technical Accounts,OU=ЦифроваяПомощь,OU=RU,DC=medholding,DC=corp ![csp1](media/csp1.PNG)</br>
![csp2](media/csp2.PNG)</br>
![csp3](media/csp3.PNG)</br>
![csp4](media/csp4.PNG)</br>
![csp5](media/csp5.PNG)</br>
![сертификаты-личное](media/сертификаты-личное.PNG)</br>
подробнее о настройке см. статью [Настройки сервиса входа](https://ecm-system-settings.readthedocs.io/ru/latest/Admin manuals/service/gate/configuration/). 2) Нажмите сочетание клавиш `Win + R`
## Управленческая структура и руководители Введите `certmgr.msc` и нажмите клавишу Enter.
Для загрузки данных управленческой структуры необходимо настроить "Произвольные выборки" ![Alt text](media/image-1.png)
подробнее о настройке см. статью [Произвольные выборки](../Настройка для интеграции с 1С/Настройка интеграции справочников и документов/Вкладка Произвольные выборки/).
## Версии библиотек, установленные на проекте Откроется Консоль управления сертификатами.
!!! question ![Alt text](media/image.png)
Как посмотреть версии библиотек, установленные на проекте?
В служебном меню, открывающемся при нажатии на имя пользователя в правом верхнем углу страницы приложения нажмите кнопку "О системе" ??? question "При привязке УКЭП к пользователю ошибка: ` /#/view/1474:1 Access to XMLHttpRequest at 'http://localhost:9421/' from origin '' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.`"
![О системе](media/menuUser.png) В конфигурационном файле (файл CSPServer.exe с расширением .config) в секции AvailableDomains должен быть прописан адрес сайтаы. Подробнее про привязку токенов по КЭП можно ознакомиться в соответствующем [разделе](../Настройка для токенов КЭП/index.md)
![Библиотеки](media/library.png) ??? question "В логах при отправке по маршруту у пользователя с действием подписать ЭП наблюдается ошибка: Ошибка при подписании файла. `code = 45. ../../../../CSPbuild/CSP/samples/CPCrypt/Certs.cpp:290: 0x2000012D [ErrorCode: 0x2000012d]`"
## Список сертификатов КЭП пустой Эта ошибка означает, что на сервере нет сертификата на пользователя. Запись может быть во всех нужных таблицах, но физического сертификата нет.
1) Посмотреть, где хранятся записи о кривом сертификате:
```sql
SELECT *
FROM lex."CloudCertificate" c
JOIN lex."UserMeta" l ON c."User" = l."Id"
WHERE l."UserName" = 'логин_пользователя'
```
2) Удалить эти записи из заявок на выпуск:
```sql
SELECT *
FROM comdoc."ECPCertificateApplication"
WHERE "CertificateId" IN (
SELECT c."Id"
FROM lex."CloudCertificate" c
JOIN lex."UserMeta" l ON c."User" = l."Id"
WHERE l."UserName" = 'логин_пользователя'
)
```
3) Удалить эти записи из таблицы сертификатов:
```sql
SELECT c."Id"
FROM lex."CloudCertificate" c
JOIN lex."UserMeta" l ON c."User" = l."Id"
WHERE l."UserName" = 'логин_пользователя'
```
4) Перевыпустить сертификат пользователю в разделе "Сертификаты пользователя", либо из ЛК HR, либо самостоятельно пользователю в виджете Документооборот/Электронные подписи по кнопке
!!! question ??? question "Я зашел под замещением в программу. Чей сертификат ЭП я вижу?"
Что делать если по кнопке Добавить сертификат - список сертификатов пустой?
1) см. статью [Привязка КЭП к пользователю Lexema-ECM](../Настройка для токенов КЭП/#шаг_3_привязка_кэп_к_пользователю_lexema-ecm). Под замещением всегда виден сертификат, который выпущен на самого себя. Сертификаты ЭП никогда не замещаются, потому что выпускаются на физическое лицо. Если бы сертификаты замещались, это было бы равносильно подписанию заявления мокрой подписью чужой рукой.
Как добавить в личное хранилище импортированные сертификаты?</br> ??? question "На проекте для ЭЦП используется система корневых сертификатов. Что делать, если они просрочились? (Или \"При выпуске УНЭП ошибка в логах ошибка 0x80090010\")"
![csp1](media/csp1.PNG)</br> Данная ошибка связана с тем, что у корневых сертификатов закончился срок действия (максимальный срок может быть 1 год и 3 месяца).
![csp2](media/csp2.PNG)</br> Их необходимо перевыпустить и переустановить:
![csp3](media/csp3.PNG)</br> 1) Пройти в инструкцию и выпустить корневые сертификаты в формате pfx. Их должен выпустить заказчик.
![csp4](media/csp4.PNG)</br> 2) Передать их сотруднику Лексема или ответственному за деплой сайта вместе с паролями и отпечатками.
![csp5](media/csp5.PNG)</br> 3) Все сертификаты поместить в архив (`certificates.tar`) без подпапок.
![сертификаты-личное](media/сертификаты-личное.PNG)</br> 4) Положить их в папку `dss` в деплой-проекте.
5) В файле `import-cert.sh` прописать импорт и установку (примеры команд можно посмотреть тут).
6) Задеплоить проект.
7) В управлении компаниями пройти в каждую компанию и в поле "Отпечаток" прописать отпечаток сертификата от соответствующей компании.
2) Нажмите сочетание клавиш `Win + R` ??? question "Дали шедулеру все роли (DssAdmin, super, allmodels, allqueries, docflow), статус Администратор на всех филиалах, а он всё равно не может выпускать сертификаты. Чего ещё надо?"
Введите `certmgr.msc` и нажмите клавишу Enter. Обратить внимание на запрос в логах ошибок. Там может быть указан код несуществующей (недосозданной) организации. Надо её завершить.
![Alt text](media/image-1.png) ??? question "При привязке УКЭП к пользователю ошибка: /#/view/ECPCertificateApplicationForm/1474:1 Access to XMLHttpRequest at 'http://localhost:9421/' from origin 'АдресСайта' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource"
Откроется Консоль управления сертификатами. В конфигурационном файле (`CSPServer.exe` с расширением `.config`) в секции `AvailableDomains` должен быть прописан адрес сайта.
Подробнее про привязку токенов по КЭП: [соответствующий раздел].
![Alt text](media/image.png) ??? question "Ошибка при подписании КЭП: lost connection to extension"
## Привязка КЭП Проверить вложения, сжать файлы, чтобы общий размер подписываемых вложений был не более 25 МБ.
[https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/213/12/ogrnichenie-n-rzmer-podpisyvemogo-fjjl-v-bruzere](https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/213/12/ogrnichenie-n-rzmer-podpisyvemogo-fjjl-v-bruzere)
Для сжатия: [https://www.ilovepdf.com/ru/compress_pdf](https://www.ilovepdf.com/ru/compress_pdf).
!!! question ## Работа с пользователями
При привязке УКЭП к пользователю ошибка: ` /#/view/ECPCertificateApplicationForm/1474:1 Access to XMLHttpRequest at 'http://localhost:9421/' from origin 'http://ecm-demo.dev.lan' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.`
В конфигурационном файле (файл CSPServer.exe с расширением .config) в секции AvailableDomains должен быть прописан адрес сайта, например: https://demo-ecm.lexema.ru/. Подробнее про привязку токенов по КЭП можно ознакомиться в соответствующем [разделе](../Настройка для токенов КЭП/index.md) ??? question "Как создать нового пользователя?"
см. статью [Управление пользователями](../Управление пользователями/)
## Использование Crontab для сервиса sheduler ??? question "Если множится пользователь в Управление пользователями"
!!! question Проблем может быть несколько:
Как правильно использовать Cron при создании расписания сервиса **sheduler**? 1) Задвоился логин в карточке ФЛ.
2) В настройках пользователей создалось более одного пользователя.
Чтобы правильно настроить расписание в данном формате, перейдите [по ссылке](https://crontab-generator.com/ru). Сервис использует серверное время, где развернут сервис. ??? question "При интеграции с 1С выходит ошибка: Сущность: 'Document_(наименование сущности)' ошибка при выполнении обработчика - 'ПередЗаписью'"
Примеры использования crontab: В правах пользователя (прописан в `production.js`), настроен доступ только на чтение данных.
Необходимо запросить полные права для данного пользователя у администратора 1С со стороны заказчика.
Источник: [https://forum.infostart.ru/forum9/topic265337/](https://forum.infostart.ru/forum9/topic265337/)
Описание | Вычисление ## Настройка интеграции с 1С
---------|-----------
каждые 30 минут каждый день | 30 &lowast; &lowast; &lowast; &lowast; |
каждые 60 минут каждый день | 0 &lowast; &lowast; &lowast; &lowast; |
каждый час с 9 до 18 по рабочим дням | 0 9-18 * * 1-5 |
каждые два часа с 9 до 18 по рабочим дням | 0 */2 * * 1-5 |
в 6:00 по рабочим дням | 0 6 * * 1-5 |
в 12:00 в субботу | 0 12 * * 6 |
## Добавление этапа в полностью завершенный маршрут ??? question "Как настроить интеграцию любого произвольного документа, например, управленческой структуры"
В случае если в полностью завершенный маршрут необходимо добавить новый этап, то укажите: Для загрузки данных управленческой структуры необходимо настроить "Произвольные выборки"
Подробнее о настройке см. статью [Произвольные выборки](../Настройка для интеграции с 1С/Настройка интеграции справочников и документов/Вкладка Произвольные выборки/).
``` ??? question "Обмен с 1С. Не загружаются сотрудники. Доступ до сущности есть, физические лица и прочие загружаются. В чем дело?"
update r
set routestatus = 2
from route r where doccode = вкодедокумента
select VCode /*вкод маршрута нужен будет в шаге 3*/ from route r where doccode = вкодедокумента Скорее всего, Лексема не понимает соответствие организаций, либо они сопоставлены неправильно.
Пройти в "Настройки параметров обмена с 1С", вкладка "Соответствие справочников".
Должно быть: одна организация 1С — одна организация Лексема.
declare @rs bigint, si bigint ??? question "При интеграции из 1С физического лица не подтянулись данные по электронной почте, телефону, образовании и т.п."
exec @rs = l8_sp_gencode 'RouteStage'
exec @rs = l8_sp_gencode 'StageItem'
insert RouteStage(VCode, PCode, StageNumber, Status) В форме "Настройка параметров обмена с 1С" сделать соответствие со справочниками Лексемы и 1С в соответствующей вкладке.
select @rs, вкод_из_шага_2, 4, 2
insert StageItem(VCode, PCode, StageItemStatus, Stageuser, DaysForAction, DocumentAction,BeginDate) ??? question "При интеграции служебной записки на командировку неверно заполняются данные по указанию расчетного периода. Например, расчет командировки должен считаться по среднему за прошлый год, т.е. период Апрель 2023 — Март 2024"
select @si, @rs, 2, логин_Шагизиганова, 2, 1, getdate()
```
## Как проверить формат файла pdf/a-1 Необходимо обновить `odata."getEmployeeStatement"`.
Удостовериться, что формат созданного файла действительно pdf/a-1 можно с помощью [онлайн сервиса](https://avepdf.com/ru/pdfa-validation) ## Работа с системой
## "Как мне или администратору отредактировать маршрут согласования?" ??? question "Как изменить часовой пояс в системе (Postgre SQL)?"
Необходимо выполнение следующих команд в PgAdmin
```sql
select localtimestamp; /*возвращает текущую дату и время в часовом поясе из сеанса sql*/
select current_timestamp; /*возвращает текущие дату и время из сеанса пользователя*/
SELECT NOW(); --посмотреть серверное время
SELECT * FROM pg_timezone_names; -- посмотреть типы часовых поясов
ALTER SYSTEM SET timezone TO 'Europe/Moscow'; -- изменение часового пояса
```
Подробно о часовых поясах в Postge SQL можно узнать [здесь](https://it-blackcat.blogspot.com/2019/10/postgresql-and-timezone.html)
С помощью [формы корректировка маршрутов согласования](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Форма корректировки маршрутов согласования/) ??? question "Если возникает ошибка при обращении к домену, например по кнопке Импорт из AD"
![Импорт из AD](./media/Импорт из AD.png)
![Ошибка интеграции с доменом](./media/ошибка интеграции с доменом.png)
Необходимо проверить заполнение файла `production.js`, где указан полный путь до юнита с пользователями ldap: { ..bindDN:
Параметры полного пути до юнита с пользователями необходимо запрашивать у системных администраторов
посмотреть параметры можно в cmd командой `whoami /fqdn`
??? question "Как посмотреть версии библиотек, установленные на проекте?"
В служебном меню, открывающемся при нажатии на имя пользователя в правом верхнем углу страницы приложения нажмите кнопку "О системе"
![О системе](media/menuUser.png)
![Библиотеки](media/library.png)
??? question "Как правильно использовать Cron при создании расписания сервиса **sheduler**?"
Чтобы правильно настроить расписание в данном формате, перейдите [по ссылке](https://crontab-generator.com/ru). Сервис использует серверное время, где развернут сервис.
Примеры использования crontab:
Описание | Вычисление
---------|-----------
каждые 30 минут каждый день | 30 &lowast; &lowast; &lowast; &lowast; |
каждые 60 минут каждый день | 0 &lowast; &lowast; &lowast; &lowast; |
каждый час с 9 до 18 по рабочим дням | 0 9-18 * * 1-5 |
каждые два часа с 9 до 18 по рабочим дням | 0 */2 * * 1-5 |
в 6:00 по рабочим дням | 0 6 * * 1-5 |
в 12:00 в субботу | 0 12 * * 6 |
??? question "По какому времени отработает задача планировщика?"
В зависимости от настройки часового пояса на сервере. Если настроено на МСК, то получается сдвиг на 2 часа вперед.
??? question "Как проверить формат файла pdf/a-1"
Удостовериться, что формат созданного файла действительно pdf/a-1 можно с помощью [онлайн сервиса](https://avepdf.com/ru/pdfa-validation)
??? question "На деве и на продуктиве стоит одинаковая версия приложения, но на продуктиве сайт либо не открывается вообще, либо дает очень долгий отклик. В pg при этом скорости нормальные. В чем дело?"
Одна из возможных причин — на сервере приложения установлены программы, которые либо отнимают память, либо блокируют действия других программ.
Прежде всего, обратить внимание на наличие антивирусника и программы SELinux. SELinux блокирует действия, нарушающие текущую политику безопасности, фиксируя попытки в журнале.
Решение: согласовать с заказчиком отключение этих программ либо изменение их настроек для сайтов Лексемы.
??? question "При авторизации на сайте в логах выходит ошибка: invalid page in block 2196 of relation base/349583/364737"
**Способ 1:**
1) В pgAdmin запустить Query Tool на базе сайта, где возникла ошибка.
2) Выполнить:
```sql
SELECT pg_filenode_relation(0, 364737); -- в результате получаем имя таблицы
```
3) Запустить восстановление таблицы:
```sql
SET zero_damaged_pages = on;
VACUUM FULL _document144;
```
4) Выполнить переиндексацию всей базы:
```sql
REINDEX DATABASE ИМЯБАЗЫ;
```
Источник: [https://www.sys-admin.su/postgresql-invalid-page-in-block-2196-of-relation-base-349583-364737/](https://www.sys-admin.su/postgresql-invalid-page-in-block-2196-of-relation-base-349583-364737/)
**Способ 2:**
1) В pgAdmin запустить Query Tool на базе сайта, где возникла ошибка.
2) Выполнить:
```sql
SELECT pg_filenode_relation(0, 364737); -- в результате получаем имя таблицы
```
3) Попробовать удалить эту таблицу и создать ее заново. **ВАЖНО:** Предварительно сохранить данные из таблицы!
**Способ 3:**
Иногда помогает просто переиндексация всей базы:
```sql
REINDEX DATABASE ИМЯБАЗЫ;
```
??? question "Где посмотреть максимально допустимый размер вложения на проекте"
В деплое проекта в конфиге:
1) Значение `maxSize` в разделе `file`.
2) Параметр `client_max_body_size` в `nginx`.
??? question "Как подключить документ к СЭД?"
1) Описать подключаемую форму в документе «Настройка документов». Прописать схему, название форм и т.д. Пример можно посмотреть на сайте демо.
2) Подробнее про форму и её галки: [инструкция современной].
3) Настроить вьюшку `DocflowExists` на каждом проекте отдельно, перечислив все таблицы, участвующие в документообороте.
4) Настроить вьюшку `DocflowAccess`, задающую ограничения по правам.
5) Обновить до последних стабильных версий Ядро (+все сопутствующие ядерные зависимости), Общие справочники и Карточки СЭД.
6) Если планируется подписание ЭП — подключить сервис `dss`.
7) Подключить в меню (`units.json`) документы.
8) Если у документов предусмотрены подтипы — завести подтипы в реестре «Подтипы документов».
9) Настроить шаблоны маршрутов.
10) Если подключаете ЭП — сгенерировать гамма-последовательности на сервере (обратиться к системному администратору).
11) В самих формах маршрут подключается при помощи:
```javascript
this.services.docflow.connectForm({ context: this, docArgs: args })
```
12) Подключить список рассылки, связки и вложения. Примеры: библиотека `ecosoft-lexema8-docflow-documents-lib` (Карточки СЭД).
??? question "При конвертации вложенного пользователем PDF выходит ошибка: Error while executing pdf-utils operations (because) xobjectsDictionary.has is not a function"
Вложенный PDF имеет особенности, например, среди вертикальных страниц есть одна горизонтальная, либо PDF сформирован сторонним конвертером или встроенным в смартфон из фото в PDF.
Рекомендуется:
1) Изменить размеры страницы в данном PDF или произвести его сжатие.
2) Утилиты:
- [https://www.pdf2go.com/ru/resize-pdf](https://www.pdf2go.com/ru/resize-pdf)
- [https://www.ilovepdf.com/ru/compress_pdf](https://www.ilovepdf.com/ru/compress_pdf)
??? question "После ввода кода авторизации в сервисе Telegram, поле phone_code_hash заполняется, но не появляется окно с успешной авторизацией"
Одной из причин является включенный облачный пароль в настройках конфиденциальности номера, который используется в качестве отправителя.
Проверить можно по инструкции. Если пароль отключен, рекомендуется:
1) Перезапустить сервис Telegram.
2) Почистить кэш с жесткой перезагрузкой страницы.
3) Повторить авторизацию.
??? question "Как подключить планировщик задач?"
Есть инструкция в [Word](Создание%20SchedulerUser.docx) по созданию и базовой настройке шедулера.
??? question "При каких условиях пользователь видит документы в реестре?"
1) Пользователь участвовал в маршруте согласования.
2) Есть права в настройке пользователей на эти подразделения.
3) Является инициатором документа.
4) Участвовал в списке рассылки.
5) Является руководителем по управленческой структуре (отображается только в универсальных документах).
Если пользователь зашел под замещением, то отображаются также документы замещаемого.
Если пользователь является внешним, необходимо в настройках пользователя указать подразделение.
??? question "Если во вложении к документу присутствует картинка в формате JPEG, то при скачивании архива с ЭП выходит ошибка наложения водяного знака"
Проблемы:
1) Большой вес файла.
2) В ядре не предусмотрено превью для картинок.
3) В коде для картинок своя ветка генерации отчета.
Решение (костыль для получения отчета с водяным знаком):
1) Скачать картинку.
2) Конвертировать её из JPEG в PDF (можно уменьшить размер до 1.7 МБ).
3) Сжать полученный PDF (до 70-80 КБ).
4) Загрузить полученный PDF в базу так, чтобы получить `previewcontent` (например, в тестовое заявление).
5) В `lex.file` у исходного файла в поле `previewcontent` установить значение из пункта 4.
6) В `lex.file` у исходного файла в поле `convertationstatus` установить `done`.
7) В `lex.file` у исходного файла в поле `ContentType` изменить `image/jpeg` на `application/pdf`.
8) Скачать архив.
9) В `lex.file` у исходного файла в поле `ContentType` вернуть `application/pdf` на `image/jpeg`.
10) Вложить отчет с водяным знаком во вложения, так как скачивание архива не будет работать.
**Глобальные решения:**
**Вариант 1:**
1) Установить запрет на вкладывание JPEG и/или файлов размером больше 1 МБ (требуется согласование с заказчиком).
**Вариант 2:**
1) Попросить у ядра конвертацию картинок в PDF и/или выяснить, почему это не реализовано.
2) В ветке отчетов с водяным знаком направить картинки в ту же ветку, что и PDF.
**Вариант 3:**
1) В ветке отчетов с водяным знаком направить картинки в ту же ветку, что и PDF.
2) На входе конвертировать картинки в PDF.
??? question "В журнале состояния документа не отображаются документы в какой-то определенной выборке"
Проверить настройку ЖСД. Если в итоговой выборке присутствует условие:
```sql
WHERE t."DocumentCategory" IN (SELECT "VCode" FROM dfd."GetDocumentConstructorTypesByDocTypeProc"(t."DocType", t."orgId", lex."getLogin"()));
```
Проверить, что пользователь, у которого не показывается выборка, не уволен как сотрудник. В запросе `dfd."GetDocumentConstructorTypesByDocTypeProc"` идет проверка по ролям, горизонтальным правам, `RP_Worker` и т.д.
??? question "Как настроить в выборке ЖСД, чтобы документ был ссылочным?"
В запросе добавить `"DocCode"`, `"DocType"`, `"DocForm"`, `"DocName"` и проставить галочку "Документ" на вкладке настройки.
??? question "При скачивании архива некоторые документы падают в таймаут"
В `production.js` в блоке `jsreport` увеличить время параметра `reportTimeout`.
??? question "При открытии "Управление компаниями" выходит ошибка (в логах не записывается, только в консоли)"
```sql
SELECT * FROM lex."OrganizationUser" WHERE "User" IS NULL;
```
Сделать селект и удалить строки, где `User` IS NULL.
??? question "Не записываются последние логи в форму (обычно на новых проектах)"
Сверить максимальные ключи у столбцов `Id` и `CDate`.
Пример: у столбца `Id` счетчик 939868, а у `CDate` 157458.
```sql
SELECT * FROM lex."Log" ORDER BY "Id" DESC LIMIT 10;
SELECT * FROM lex."Log" ORDER BY "CDate" DESC LIMIT 10;
```
??? question "С определенной версии Chrome перестал поддерживать плагин КриптоПро ЭЦП Browser plug-in, с помощью которого было подписание УКЭП на проектах. КЭП не показывается в окне электронных подписей, и при подписании возникает ошибка"
Установить браузеры:
- Chromium-Gost
- Яндекс.Браузер для организаций
Либо воспользоваться инструкцией по [ссылке](https://docs.cryptopro.ru/cades/plugin/plugin-installation-windows?id=Установка-расширения-браузера).
## Мобильное приложение
??? question "При подписании в мобильном приложении возникает 500 статус"
1) Посмотреть в веб-версии логи.
2) Проверить, работает ли подписание этого документа этого пользователя в веб-версии.
??? question "При подключении к мобильному приложению выходит ошибка Network Error. Как это проверить?"
С помощью сайта [https://www.sslshopper.com/ssl-checker.html](https://www.sslshopper.com/ssl-checker.html).
В поле ввести адрес сайта, и нажать Check SSL. Все запросы должны быть зелеными.
Если один из запросов с восклицательным знаком, обратиться к РП данного сайта, чтобы уточнить, кто системный администратор, и задать вопрос:
"Проверили цепочку доверенных сертификатов по сайту на ресурсе [https://www.sslshopper.com/ssl-checker.html](https://www.sslshopper.com/ssl-checker.html). Результат выдает, что есть нарушения. Просьба устранить, так как эти нарушения влияют на работу мобильного приложения."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -73,6 +73,7 @@
### df_worker ### df_worker
Роль df_worker присваивается работникам компании, которые являются участниками делопроизводства, например, руководителям подразделений. Роль df_worker присваивается работникам компании, которые являются участниками делопроизводства, например, руководителям подразделений.
Также необходимо дополнительно назначить роль **ECM_showregs_df**.
Формы, доступные по этой роли: Формы, доступные по этой роли:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -71,7 +71,9 @@ search:
Новый созданный документ, выглядит следующим образом: Новый созданный документ, выглядит следующим образом:
![alt text](media/image-45.png) ![alt text](media/image-53.png)
В данной форме в "Панели управления" имеется кнопка "Вложения", при необходимости есть возможность добавить в конструктор документа вложение.
Обязательными полями для заполнения являются: Обязательными полями для заполнения являются:
@ -97,7 +99,7 @@ search:
??? Примечание ??? Примечание
Для [универсальных документов](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82/) дополнительно скрывается кнопка по формированию маршрута. Для [универсальных документов](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9 %D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82/) дополнительно скрывается кнопка по формированию маршрута.
![alt text](media/image-29.png) ![alt text](media/image-29.png)
@ -130,17 +132,23 @@ search:
**Редактируемый при активном маршруте до использования ЭП** - при включенной опции в выбранной подтипе разрешено редактирование атрибутов документа во время согласования по маршруту. **Редактируемый при активном маршруте до использования ЭП** - при включенной опции в выбранной подтипе разрешено редактирование атрибутов документа во время согласования по маршруту.
!!! warning !!! warning
Редактировать атрибуты документа возможно только в документах, в которых отсутствует автоматически сгенерированный файл на подписание. Генерацию файла возможно настроить с помощью константы [**КЭДО_ВидыДействия_СоздатьФайл**](../Настройка констант/#система_электронного_и_кадровогоокументооборота). Указываются после каких видов действия с документом будет автоматически формироваться печатная форма в формате pdf. Заполняется столбец "Значение (текст)" с кодами видов действия. Видов может быть как один, так и несколько. Если несколько, то перечисляются через запятую. Редактировать атрибуты документа возможно только в документах, в которых отсутствует автоматически сгенерированный файл на подписание. Генерацию файла возможно настроить с помощью константы [**КЭДО_ВидыДействия_СоздатьФайл**](../Настройка констант#система_электронного_и_кадровогоокументооборота). Указываются после каких видов действия с документом будет автоматически формироваться печатная форма в формате pdf. Заполняется столбец "Значение (текст)" с кодами видов действия. Видов может быть как один, так и несколько. Если несколько, то перечисляются через запятую.
**Запрещать ознакомление, если не создан документ из меню операций** - при включенной опции в выбранном подтипе документа запрещено ознакомление, например, с уведомлением об отпуске, если сотрудник не оформил заявление на отпуск или заявление на перенос через меню операций. **Запрещать ознакомление, если не создан документ из меню операций** - при включенной опции в выбранном подтипе документа запрещено ознакомление, например, с уведомлением об отпуске, если сотрудник не оформил заявление на отпуск или заявление на перенос через меню операций. **Данная опция реализована только для типа документа "Уведомления Lexema"**.
![Предупреждение](media/warning.png) ![Предупреждение](media/warning.png)
<!-- **Формирование листа ознакомления с ЭП** - -->
**Всегда показывать предпросмотр вложений** - при включенной опции в выбранном подтипе документа вместо текстового рабочего окна всегда показывается предпросмотр вложений.
**Пересчитывать при движении по маршруту** - при включенной опции в выбранном подтипе в текстовом рабочем окне автоматически обновляются данные по участникам в маршруте согласования. Необходимо настроить [служебные слова](#вычисляемые_атрибуты) `#Route_AggUserGroup#, #Route_AggUserName#, #Route_AggDocumentStatus#, #Route_AggComment#.`
### Тип и подтип документа ### Тип и подтип документа
Поля "Тип документа" и "Подтип документа" позволяют выбрать значение из выпадающего списка. В случае, если нет требуемого типа документа, необходимо заполнить форму ["Настройка документа"](../Настройка документов/) с требуемым типом и включить опцию "Форма построена на конструкторе документов". Поля "Тип документа" и "Подтип документа" позволяют выбрать значение из выпадающего списка. В случае, если нет требуемого типа документа, необходимо заполнить форму ["Настройка документа"](../Настройка документов) с требуемым типом и включить опцию "Форма построена на конструкторе документов".
Поле "Подтип документа" можно заполнить только после заполнения поля "Тип документа". В случае, если нет требуемого подтипа документа его возможно создать через справочник ["Подтип документа"](../Подтипы документов/) либо по нажатию на кнопку создания напротив поля подтип документа. Поле "Подтип документа" можно заполнить только после заполнения поля "Тип документа". В случае, если нет требуемого подтипа документа его возможно создать через справочник ["Подтип документа"](../Подтипы документов) либо по нажатию на кнопку создания напротив поля подтип документа.
Для выбора необходимого типа в документе "Конструктор документов" необходимо раскрыть справочник "Тип документа" и выбрать необходимый их выпадающего списка. Для выбора необходимого типа в документе "Конструктор документов" необходимо раскрыть справочник "Тип документа" и выбрать необходимый их выпадающего списка.
@ -154,9 +162,9 @@ search:
![Рисунок 8 Реестр "Подтип документа"](./media/image7.png) ![Рисунок 8 Реестр "Подтип документа"](./media/image7.png)
<p>Новый подтип документа можно создать внутри формы "Конструктор документов" с помощью кнопки <img src="media/createSubTypeDoc.png"> рядом с выпадающим списком. Необходимо заполнить строковое поле "Наименование" и "Использовать в документе", остальные поля необязательны. После нажатия на кнопку "Сохранить" новый подтип будет выбран автоматически.</p> Новый подтип документа можно создать внутри формы "Конструктор документов" с помощью кнопки <img src="media/createSubTypeDoc.png"> рядом с выпадающим списком. Необходимо заполнить строковое поле "Наименование" и "Использовать в документе", остальные поля необязательны. После нажатия на кнопку "Сохранить" новый подтип будет выбран автоматически. Подробнее об заполнении подтипа документа можно ознакомиться в [инструкции](../Подтипы документов/index.md).
![Рисунок 9 Создание подтипа документа на вложенной форме](./media/createSubTypeSubForm.png) ![alt text](media/image-54.png)
После создания шаблона документа выбранный для него подтип будет появляться при создании документов, относящихся только к выбранному типу документа. Т.е. если в шаблоне документа был выбран тип "Заявление от сотрудника", то данный шаблон будет доступен только при создании заявления от сотрудника даже при наличии подтипа с таким же наименованием, но для другого типа документа. После создания шаблона документа выбранный для него подтип будет появляться при создании документов, относящихся только к выбранному типу документа. Т.е. если в шаблоне документа был выбран тип "Заявление от сотрудника", то данный шаблон будет доступен только при создании заявления от сотрудника даже при наличии подтипа с таким же наименованием, но для другого типа документа.
@ -206,8 +214,8 @@ search:
Логическое | Логическое выражение (Истина/Ложь) Логическое | Логическое выражение (Истина/Ложь)
Подразделение | Выпадающий список [подразделений](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/%D0%9F%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/) Подразделение | Выпадающий список [подразделений](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/%D0%9F%D0%BE%D0%B4%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/)
Пользовательский тип атрибута | Выпадающий список [пользовательских атрибутов](../Пользовательские типы атрибутов документов/index.md) Пользовательский тип атрибута | Выпадающий список [пользовательских атрибутов](../Пользовательские типы атрибутов документов/index.md)
Произвольная выборка | Выпадающий список из справочников, например, [физических лиц](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%A4%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D0%BB%D0%B8%D1%86%D0%B0/) Произвольная выборка | Выпадающий список из справочников, например, [физических лиц](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/%D0%A4%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5 %D0%BB%D0%B8%D1%86%D0%B0/). Указывается [вычисление](#описание_полей_в_таблицеополнительные_атрибуты)
Работник | Выпадающий список с [сотрудниками](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%A1%D0%BE%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%B8%D0%BA%D0%B8/) Работник | Выпадающий список с [сотрудниками](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/%D0%A1%D0%BE%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%B8%D0%BA%D0%B8/)
Строка | Текстовое поле Строка | Текстовое поле
Табличная часть | Добавление табличной части Табличная часть | Добавление табличной части
Целое | Целое число Целое | Целое число
@ -252,7 +260,7 @@ search:
- **"Тип группы(Unispr)"** заполняется в случаях: - **"Тип группы(Unispr)"** заполняется в случаях:
- если поле "Тип атрибута" принимает значение **"Пользовательский тип атрибута"** ("Base.Unispr"). Заполняется значением из справочника ["Пользовательские типы атрибутов документов"](../Пользовательские типы атрибутов документов/index.md). Соответствует полю "Группа" документов справочника, выпадающий список будет содержать все наименования прописанной группы. Используется в том случае, когда атрибут может иметь одно из определенных значений в некоторой группе наименований. Справочник доступен по кнопке "Пользовательские типы атрибутов": <img src="media/image13.png"> - если поле "Тип атрибута" принимает значение **"Пользовательский тип атрибута"** ("Base.Unispr"). Заполняется значением из справочника ["Пользовательские типы атрибутов документов"](../Пользовательские типы атрибутов документов/index.md). Соответствует полю "Группа" документов справочника, выпадающий список будет содержать все наименования прописанной группы. Используется в том случае, когда атрибут может иметь одно из определенных значений в некоторой группе наименований. Справочник доступен по кнопке "Пользовательские типы атрибутов": <img src="media/image13.png">
{ #описание-ChCode } { #описание-ChCode }
- если поле "Тип атрибута" принимает значение **"Произвольная выборка"**. Указывается вычисление атрибута из справочников, например, - если поле "Тип атрибута" принимает значение **"Произвольная выборка"**. Указывается вычисление атрибута, например,
```sql ```sql
select 99::bigint as "VCode", 'Тест 99'::text as "Name", 1 as "OrderKey" union select 199, 'Тест 199', 2 select 99::bigint as "VCode", 'Тест 99'::text as "Name", 1 as "OrderKey" union select 199, 'Тест 199', 2
@ -357,31 +365,6 @@ NIOFamilyGenitive | Отображение ФИО работника в форм
### Вычисляемые атрибуты ### Вычисляемые атрибуты
<!-- Чтобы прописать вычисление полей, значения которых должны зависеть от остальных полей (т.е. сделать их вычисляемыми), необходимо в Microsoft SQL Server Management Studio внести изменения в код процедуры dbo.callAfterSetSQL (в которой прописывается непосредственно вычисление значение атрибута) и в код процедуры dbo.callCheckSQL (для проверки корректности внесённых в поля атрибутов значений).
*Для вычисляемых атрибутов рекомендуется устанавливать признак "Только для чтения".*
В рассматриваемом примере дата окончания отпуска (#eDate#) вычисляется на основе количества дней в отпуске (\#bDate#) и даты его начала (\#cnt#). В процедуру dbo.callAfterSetSQL для изменения атрибута \#eDate# при изменении \#bDate# или \#cnt# были внесены следующие изменения:
```sql
if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnName = '#cnt#' ) AND @DocumentSubtypeName = 'Заявление на отпуск без сохранения зп'
begin
update #resTab
set
DateValue = convert(varchar(50),
dateadd(day,
convert(bigint,
(select top 1 BigIntValue from #resTab where ColumnName = '#cnt#')-1),
convert(date,
(select top 1 DateValue from #resTab where ColumnName = '#bDate#'),
104)
),
104),
Recalculated = 1
where ColumnName = '#eDate#'
end
``` -->
Есть специальные дополнительные атрибуты с зарезервированными наименованиями и типами, прописывать их в таблице "Дополнительные атрибуты" не надо. Среди таких атрибутов есть: Есть специальные дополнительные атрибуты с зарезервированными наименованиями и типами, прописывать их в таблице "Дополнительные атрибуты" не надо. Среди таких атрибутов есть:
{ #спец-атрибуты } { #спец-атрибуты }
@ -501,9 +484,14 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
<tr><td>#Master_PositionDative#</td><td>должность пользователя создателя документа в дательном падеже</td></tr> <tr><td>#Master_PositionDative#</td><td>должность пользователя создателя документа в дательном падеже</td></tr>
<tr><td>#Master_PositionGenitive#</td><td>должность пользователя создателя документа в родительном падеже</td></tr> <tr><td>#Master_PositionGenitive#</td><td>должность пользователя создателя документа в родительном падеже</td></tr>
<tr><td>#Master_PrintedText#</td><td>содержательная часть во входящем документе, исходящем документе, орд, служебной записке</td></tr> <tr><td>#Master_PrintedText#</td><td>содержательная часть во входящем документе, исходящем документе, орд, служебной записке</td></tr>
<tr><td>#Route_AggComment#</td><td>комментарий пользователя из маршрута согласования</td></tr>
<tr><td>#Route_AggDocumentStatus#</td><td>статус этапа согласования пользователем из маршрута</td></tr>
<tr><td>#Route_AggUserName#</td><td>Ф.И.О. пользователя из маршрута согласования</td></tr>
<tr><td>#Route_AggUserGroup#</td><td>отображение группы пользователя из маршрута согласования из столбца "Группа"</td></tr>
<tr><td>#Master_SignerIOFamily#</td><td>И.О. Фамилия подписанта в именительном падеже</td></tr> <tr><td>#Master_SignerIOFamily#</td><td>И.О. Фамилия подписанта в именительном падеже</td></tr>
<tr><td>#Master_SignerIOFamilyDative#</td><td>И.О. Фамилия подписанта в дательном падеже</td></tr> <tr><td>#Master_SignerIOFamilyDative#</td><td>И.О. Фамилия подписанта в дательном падеже</td></tr>
<tr><td>#Master_SignerIOFamilyGenitive#</td><td>И.О. Фамилия подписанта в родительном падеже</td></tr> <tr><td>#Master_SignerIOFamilyGenitive#</td><td>И.О. Фамилия подписанта в родительном падеже</td></tr>
<tr><td>#Master_SumInWords#</td><td> конвертирует число в текст. Используется для атрибута <b>Вещественное</b> (необходимо дополнительно после вычисляемого атрибута в скобках указать служебное наименование атрибута из конструктора). Пример: #summa# (#Master_SumInWords#(#summa#)) , где #summa# служебное наименование атрибута из конструктора. Будет отображать как <b>1000.00 (одна тысяча рублeй 00 копeeк)</b>
<tr><td>#Master_WorkersAccusativeDetail#</td><td>список сотрудников в род падеже</td></tr> <tr><td>#Master_WorkersAccusativeDetail#</td><td>список сотрудников в род падеже</td></tr>
<tr><td>#Master_WorkersAccusativePasportDetail#</td><td>список сотрудников в род падеже с паспортом</td></tr> <tr><td>#Master_WorkersAccusativePasportDetail#</td><td>список сотрудников в род падеже с паспортом</td></tr>
<tr><td>#Master_WorkersGenitiveDetail#</td><td>список сотрудников в винительном падеже</td></tr> <tr><td>#Master_WorkersGenitiveDetail#</td><td>список сотрудников в винительном падеже</td></tr>
@ -623,7 +611,169 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
## Вкладка "Настройка интерфейса" ## Вкладка "Настройка интерфейса"
В данной вкладке настраивается интерфейс документа. В данной вкладке настраивается интерфейс документа, например, создание нового документа из существующего, видимость данных в документе.
### Меню операций
В табличной части "Тип+подтип документов" задаются условия какие типы и подтипы документов будут отображаться по кнопке "Операции" внутри документа.
Данный пример представлен для конструктора группы ["Уведомления Lexema"](../Настройка внутрисистемных уведомлений/index.md) подтипа "Уведомления об отпуске".
![Меню](media/menuOperac.png)
* **Вкл.** - включение или отключение операции в выбранном документе;
* **Название** - задается название операции, например, Создать "Заявление на ежегодный отпуск";
* **Тип документа** - выбирается к какому типу документа необходимо добавить меню операций;
!!! note
По умолчанию создается новый документ без заполненных полей. В случае когда необходимо создать новый документ (как на конструкторе, так и любой другой) с заполненными данными из первичного документа, возможно реализовать через столбец "Скрипт по созданию документа".
* **Подтип** - выбирается к какому типу документа необходимо добавить меню операций;
* **Условие фильтрации** - задается название типа вида отпуска указанный в [уведомлении](../Настройка внутрисистемных уведомлений/index.md)
* **Служебное наименование** - задается служебное наименование [дополнительного атрибута](ополнительные_атрибуты_документа), в данном случае **#typeVacation#**.
![Атрибут](media/atribut.png)
* **Условие для видимости операции** - указывается условие в зависимости от которого выбранная операция будет доступна для пользователя, например, `not exists (select 1 from comdoc."isAccessOfRoles"(lex."getLogin"(), comdoc."getFilial"(),'user') where "RoleName" ilike '%df_officeworker%')`, в данном условии сказано что операция не будет доступа пользователю имеющий роль **df_officeworker**.
!!! note
Если столбцы "Подтип", "Условие фильтрации" и "Служебное наименование" не заполнены, то созданная операция будет отображаться во всех подтипах документа.
* **Разрешить создавать несколько документов** - при включенной операции из одного типа документа возможно создавать несколько новых. По умолчанию из одного документа можно создать только один новый, и при нажатии в операциях по созданию нового будет открываться ранее созданный.
* **Скрипт по созданию документа** - используется в случае когда необходимо переносить динамические данные из первичного документа в новый документ. Использоваться может как при создании нового документа на конструкторе, например, заявления от сотрудника, так и при создании документа не на конструкторе , например, приказа.
??? "Пример для PostgreSQL"
```sql
DO
$$
-- объявление переменных
declare _docVCode bigint;
declare _BeginDateScript date;
declare _EndDateScript date;
declare _LeadTimeScript integer;
declare _AttVCode bigint;
declare _k integer;
begin
_docVCode := lex."L8_sp_GenCode"('UniversalDocument', 1);
-- в скобках указывается таблица для нового типа документа
-- (например, для служебной записки указывается таблица 'DocflowDocument')
INSERT INTO dfd."UniversalDocument" (-- начало создания документа (по аналогии указывается схема и таблица для нового документа)
"VCode", "TypeName", "DocumentCategory", "DocumentSubtype",
"DocumentDate", "MyCompany", "IdWorker", "Department", "Position",
"CUser", "VirtualCUser", "COrg", "WOrg",
"WUser", "CDate", "WDate", "CHost", "WHost", "SourceDocumentCode", "SourceDocumentType"
)
SELECT _docVCode , '_newTypeName', _Constructor, _new_DocumentSubtype,
-- _newTypeName - тип нового документа из столбца "Тип документа" из таблицы "Тип+подтип документов"
-- _Constructor - код нового конструктора документа для нового документа
-- _new_DocumentSubtype - код нового подтипа документа (в случае создания документа не на конструкторе, данные параметры не указывается)
now()::date, _filial, _IdWorker, _IdDep::bigint, _IdPost::bigint,
-- _filial - код организации MyCompany,
-- _IdWorker - код работника,
-- _IdDep - код подразделения работника,
-- _IdPost - код должности работника
'_cuser', '_virtual_user', _corg, _corg,
-- _corg - код филиала организации
'_cuser', '_cdate', '_cdate', '_chost', '_chost', _doc_code, '_doc_type'
-- Указываются параметры из вызываемой процедуры CreateUniversDocsFromNotificationLexema, где:
-- _doc_code - код первоначального документа из которого создается новый документ по операции,
-- '_doc_type' - тип первоначального документа из которого создается новый документ по операции, текстовое поле обрамляются в одинарных кавычках.
;
select ud."BeginDate" , ud."EndDate", ud."LeadTime" from dfd."DocflowDocument" ud where ud."VCode" = _doc_code
-- отсюда берутся необходимые поля первоначального документа из таблицы, которые необходимо передать в новый документ
into _BeginDateScript, _EndDateScript, _LeadTimeScript;
-- Начало вставки в дополнительные атрибуты нового документа (в случае создания документа не на конструкторе, не указывается)
_k := count(1) from dfd."DocumentCategoryAttributeType" a where a."PCode" = _Constructor;
_AttVCode := lex."L8_sp_GenCode"('DocumentAdditionalAttribute'::character varying, _k::integer);
insert into dfd."DocumentAdditionalAttribute" ("VCode", "PCode", "CategoryAttributeType",
-- вставка в дополнительные аттрибуты (в случае создания документа не на конструкторе, не указывается)
"DateValue", "BigIntValue", "Value",
"DoubleValue", "MoneyValue", "DateTimeValue", "TimeValue",
"CUser", "WUser", "CDate", "WDate", "CHost", "WHost")
select _AttVCode +dense_rank() over (order by a."VCode") -1 , _docVCode ,
a."VCode",
case when a."ColumnName" = '#bdate#' then _BeginDateScript
when a."ColumnName" = '#edate#' then _EndDateScript
else null::date end,
case when a."ColumnName" = '#kolvo#' then _LeadTimeScript else null::BigInt end , null,
null, null, null, null,
'_cuser', '_cuser', '_cdate', '_cdate', '_chost', '_chost'
-- #bdate#, #edate#, #kolvo# дополнительные атрибуты в которые вставляются данные из первичного документа
from dfd."DocumentCategoryAttributeType" a
where a."PCode" = _Constructor ;
-- Конец вставки в дополнительные атрибуты нового документа
update "#tmp_newDocVCode" -- хранение кода нового документа для его открытия
set "newDocVCode" = _docVCode ;
END;
$$
```
??? "Пример для MSSQL"
```sql
declare @docVCode bigint
declare @god int
declare @AttVCode bigint
declare @k int
exec @docVCode = dbo."L8_sp_GenCode" 'UniversalDocument', 1
INSERT INTO "UniversalDocument" (
"VCode", "TypeName", "DocumentCategory", "DocumentSubtype",
"DocumentDate", "MyCompany", "IdWorker", "Department", "Position",
"CUser", "VirtualCUser", "COrg", "WOrg",
"WUser", "CDate", "WDate", "CHost", "WHost", "SourceDocumentCode", "SourceDocumentType"
)
SELECT @docVCode , '@newTypeName', @Constructor, @new_DocumentSubtype,
sysdatetimeoffset(), @filial, @IdWorker, @IdDep, @IdPost,
'@cuser', '@virtual_user', @corg, @corg,
'@cuser', '@cdate', '@cdate', '@chost', '@chost', @doc_code, '@doc_type'
select @god = ud.BigIntValue
from "DocumentAdditionalAttribute" ud
join "DocumentCategoryAttributeType" ty on ud."CategoryAttributeType" = ty.VCode
where ud."PCode" = @doc_code and
ty."ColumnName" = '#worker4#'
select @k= count(1) from "DocumentCategoryAttributeType" a where a."PCode" = @Constructor
exec @AttVCode = dbo."L8_sp_GenCode" 'DocumentAdditionalAttribute', @k
insert into "DocumentAdditionalAttribute" ("VCode", "PCode", "CategoryAttributeType",
"DateValue", "BigIntValue", "Value",
"DoubleValue", "MoneyValue", "DateTimeValue", "TimeValue",
"CUser", "WUser", "CDate", "WDate", "CHost", "WHost")
select @AttVCode + dense_rank() over (order by VCode)-1, @docVCode ,
a."VCode", null, case when a."ColumnName" = '#year#' then @god else null end, null,
null, null, null, null,
'@cuser', '@cuser', '@cdate', '@cdate', '@chost', '@chost'
from "DocumentCategoryAttributeType" a
where a."PCode" = @Constructor
update #tmp_newDocVCode
set newDocVCode = @docVCode
```
В данном примере указано, что при поступлении пользователю уведомления где вид отпуска "Основной", в меню операций у него будут доступны операции:
* Создать "Заявление на доп. отпуск"
* Создать "Заявление на ежегодный отпуск"
* Создать "Заявление на перенос отпуска"
* Создать "Универсальный документ"
![Операции](media/operacii.png)
### Видимость данных ### Видимость данных
@ -734,36 +884,6 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
![alt text](media/image126.png) ![alt text](media/image126.png)
### Меню операций
В табличной части "Тип+подтип документов" задаются условия какие типы и подтипы документов будут отображаться по кнопке "Операции" внутри документа.
Данный пример представлен для конструктора группы ["Уведомления Lexema"](../Настройка внутрисистемных уведомлений/index.md) подтипа "Уведомления об отпуске".
![Меню](media/menuOperac.png)
* **Вкл.** - включение или отключение операции в выбранном документе;
* **Название** - задается название операции, например, Создать "Заявление на ежегодный отпуск";
* **Тип документа** - выбирается к какому типу документа необходимо добавить меню операций;
* **Подтип** - выбирается к какому типу документа необходимо добавить меню операций;
* **Условие фильтрации** - задается название типа вида отпуска указанный в [уведомлении](../Настройка внутрисистемных уведомлений/index.md)
* **Служебное наименование** - задается служебное наименование [дополнительного атрибута](#дополнительные_атрибуты_документа), в данном случае **#typeVacation#**.
* **Условие для видимости операции** - указывается условие в зависимости от которого выбранная операция будет доступна для пользователя, например, `not exists (select 1 from comdoc."isAccessOfRoles"(lex."getLogin"(), comdoc."getFilial"(),'user') where "RoleName" ilike '%df_officeworker%')`, в данном условии сказано что операция не будет доступа пользователю имеющий роль **df_officeworker**.
![Атрибут](media/atribut.png)
!!! note
Если столбцы "Подтип", "Условие фильтрации" и "Служебное наименование" не заполнены, то созданная операция будет отображаться во всех подтипах документа. Кнопка "Операции" отображается только в документах "Заявление от сотрудника".
В данном примере указано, что при поступлении пользователю уведомления где вид отпуска "Основной", в меню операций у него будут доступны операции:
* Создать "Заявление на доп. отпуск"
* Создать "Заявление на ежегодный отпуск"
* Создать "Заявление на перенос отпуска"
* Создать "Универсальный документ"
![Операции](media/operacii.png)
### Статичные поля ### Статичные поля
В табличной части возможно настроить обязательность заполнения, видимости и указать значения по умолчанию для статичных полей в карточке документа. В табличной части возможно настроить обязательность заполнения, видимости и указать значения по умолчанию для статичных полей в карточке документа.
@ -1007,6 +1127,23 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
![Атрибуты](media/naimenova.png) ![Атрибуты](media/naimenova.png)
![Заявление](media/zayavlen.png) ![Заявление](media/zayavlen.png)
Для табличных атрибутов помимо служебного наименования атрибута необходимо добавить служебное наименование табличной части через нижнее подчеркивание _.
![alt text](media/image-51.png)
![alt text](media/image-52.png)
Основной атрибут | Зависимые атрибуты | Вычисления
-----------------|--------------------|-----------
#Table1_worker_tabn# | #Table1_worker# | (select "VCode" from rp."RP_Worker" where "NumTab" = #Table1_worker_tabn# order by coalesce("DateEnd", 20700101'::date) desc limit 1)
#Table1_worker# | #Table1_worker_tabn# | (select "NumTab" from rp."RP_Worker" where "VCode" = #Table1_worker#)
#Table1_worker# | #Table1_worker_post# | (select rpwm.""IdPost"" from rp.""RP_Worker"" w join rp.""RP_WorkerMove"" rpwm on rpwm.""IdWorker"" = w.""VCode"" where w.""VCode"" = #Table1_worker# and w.""NumTab"" = #Table1_worker_tabn# order by coalesce(rpwm.""DateEnd"",'20700101') desc limit 1 )
!!! note
Для табличных атрибутов присутствует служебное слово **Remove**. Его возможно использовать в случае когда необходимо очистить автоматически динамический атрибут после удаления данных из табличной части.
К служебному наименованию служебной таблицы добавляется Remove без подчеркивания и пишется вычисление на очищение динамического атрибута.
Например основой атрибут - **#Table1Remove#**, вычисление (select case when len(#Table1#) = 0 then '' else 'СОГЛАСОВАНО' end).
В примере указанном ниже указано условие фильтрации по которому в зависимости от выбранного подразделения будут фильтроваться сотрудники, которые работают в данном подразделении. В примере указанном ниже указано условие фильтрации по которому в зависимости от выбранного подразделения будут фильтроваться сотрудники, которые работают в данном подразделении.
Основной атрибут | Зависимые атрибуты | Фильтрация Основной атрибут | Зависимые атрибуты | Фильтрация
@ -1030,11 +1167,15 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
### Правила для вложений ### Правила для вложений
В данной вкладке, при необходимости, устанавливаются правила разрешения вложения необходимых данных в документ. В табличной части указывается роль и правило на каком этапе маршрута у данной роли будет возможность вкладывать данные в документ. В данной вкладке, при необходимости, устанавливаются правила разрешения вложения необходимых данных в документ. В табличной части указывается роль или действие на каком этапе маршрута у данной роли или действия по маршруту будет возможность вкладывать данные в документ. Если табличная часть не заполнена то вложения может вкладывать любой пользователь у которого документ в текущий момент на обработке.
- Правило **"Всегда"** - можно вложить файл в любой момент и на любом этапе, и на этапе завершения. - **"Роли"** - из выпадающего списка выбирается необходимая роль.
- Правило **"Без маршрута"** - можно вложить файл если маршрут не создан - Этап **"Всегда"** - можно прикрепить вложение к документу в любой момент и на любом этапе, и на этапе завершения.
- Этап **"Без маршрута"** - можно прикрепить вложение к документу если маршрут не создан
- **"Действие"** - назначается при каком действии по маршруту пользователь сможет вкладывать вложение.Возможно выбрать как одно, так и несколько действий.
Галочка напротив поля **Разрешить вкладывать файлы** должна быть проставлена. Галочка напротив поля **Разрешить вкладывать файлы** должна быть проставлена.
@ -1051,7 +1192,11 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
**Необходимые типы вложений** - из выпадающего списка выбирается тип вложения. **Необходимые типы вложений** - из выпадающего списка выбирается тип вложения.
**Правило** - определяется правило в какой момент в процессе маршрута согласования проверять на наличие вложений с указанными типами. Если неуказано правило, то проверка сработает при отправке по маршруту от инициатора. - Этап **"Всегда"** - требоваие вложения в любой момент и на любом этапе, и на этапе завершения.
- Этап **"Без маршрута"** - требование вложения если маршрут не создан.
- **"Действие"** - назначается при каком действии по маршруту требовать прикрепить вложение к документу.Возможно выбрать как одно, так и несколько действий.
Если в конструкторе НЕ заполнена таблица "Необходимые типы вложений", то проверка при отправке по маршруту НЕ сработает. Если в конструкторе НЕ заполнена таблица "Необходимые типы вложений", то проверка при отправке по маршруту НЕ сработает.
@ -1194,7 +1339,7 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
Текущий документ | Описание Текущий документ | Описание
-----------------|--------- -----------------|---------
Реквизит Дата с | / Реквизит Дата по | указываются служебные наименования атрибутов дата начала и даты окончания. | Реквизит Дата с | / Реквизит Дата по | указываются служебные наименования атрибутов дата начала и даты окончания. |
Маршрут | выбирается статус маршрута текущего документа из выпадающего списка <br>(**В любом статусе** - маршрут может быть как завершен с любым статусом положительно _(согласован)_ или отрицательно _(несогласован)_, быть текущим, либо отсутствовать)<br>(**Завершен** - маршрут завершен с любым статусом положительно или отрицательно)<br>(**Завершен положительно** - маршрут завершен с положительным статусом _(согласован)_) | Маршрут | выбирается статус маршрута текущего документа из выпадающего списка (**В любом статусе** - маршрут может быть как завершен с любым статусом положительно _(согласован)_ или отрицательно _(несогласован)_, быть текущим, либо отсутствовать) (**Завершен** - маршрут завершен с любым статусом положительно или отрицательно) (**Завершен положительно** - маршрут завершен с положительным статусом _(согласован)_) |
В группе столбцов "Документ для проверки" указываются необходимые проверки для документа по которому будет проверяться текущий. В группе столбцов "Документ для проверки" указываются необходимые проверки для документа по которому будет проверяться текущий.
@ -1203,14 +1348,14 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
Тип документа | заполняется тип документа Тип документа | заполняется тип документа
Подтип документа | заполняется подтип документа Подтип документа | заполняется подтип документа
Реквизит Дата с | / Реквизит Дата по | указываются служебные наименования атрибутов дата начала и даты окончания. | Реквизит Дата с | / Реквизит Дата по | указываются служебные наименования атрибутов дата начала и даты окончания. |
Маршрут | выбирается статус маршрута документа для проверки из выпадающего списка <br>(**В любом статусе** - маршрут может быть как завершен с любым статусом положительно _(согласован)_ или отрицательно _(несогласован)_, быть текущим, либо отсутствовать)<br>(**Завершен** - маршрут завершен с любым статусом положительно или отрицательно)<br>(**Завершен положительно** - маршрут завершен с положительным статусом _(согласован)_) | Маршрут | выбирается статус маршрута документа для проверки из выпадающего списка (**В любом статусе** - маршрут может быть как завершен с любым статусом положительно _(согласован)_ или отрицательно _(несогласован)_, быть текущим, либо отсутствовать) (**Завершен** - маршрут завершен с любым статусом положительно или отрицательно) (**Завершен положительно** - маршрут завершен с положительным статусом _(согласован)_) |
Примечание | при необходимо к проверку указывается примечание Примечание | при необходимо к проверку указывается примечание
![alt text](media/image-30.png) ![alt text](media/image-30.png)
## Настройка операций по созданию заявления в личном кабинете сотрудника ## Настройка операций по созданию заявления в личном кабинете сотрудника
В личном кабинете во вкладке ["Графики отпусков"](https://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Профиль сотрудника/#графики_отпусков) для настройки операций по созданию заявления необходимо: В личном кабинете во вкладке ../Подтипы документовttps://ecm-user-manuals.readthedocs.io/ru/latest/User manuals/Профиль сотрудника/#графики_отпусков) для настройки операций по созданию заявления необходимо:
* Создать [подтип документа](../Подтипы документов/) со служебным наименованием `MyProfileVacationOperation`: * Создать [подтип документа](../Подтипы документов/) со служебным наименованием `MyProfileVacationOperation`:
@ -1321,6 +1466,12 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
![Рисунок 28 Универсальный документ шаблон заполнен](./media/exampleUniDocFilled.png) --> ![Рисунок 28 Универсальный документ шаблон заполнен](./media/exampleUniDocFilled.png) -->
## Вкладка "Комментарий"
Данная вкладка имеет текстовое поле, необходимо оно для рассуждения, пояснительния и критических замечаний о чём-либо.
![Рисунок](media/screen-33.png)
## FAQ ## FAQ
### Мне нужен в качестве атрибута список ИНН контрагентов. Нужно ли мне заводить для всех контрагентов записи с ИНН в Пользовательских типах атрибутах? ### Мне нужен в качестве атрибута список ИНН контрагентов. Нужно ли мне заводить для всех контрагентов записи с ИНН в Пользовательских типах атрибутах?
@ -1352,8 +1503,93 @@ if @formName='EmployeeStatementForm' AND ( @ColumnName = '#bDate#' OR @ColumnNam
*Чтобы порядок атрибутов был как в конструкторе, необходимо заполнить столбец "Порядок сортировки" в таблице "Дополнительные атрибуты".* *Чтобы порядок атрибутов был как в конструкторе, необходимо заполнить столбец "Порядок сортировки" в таблице "Дополнительные атрибуты".*
### Как создать пользовательский тип атрибута? <!-- ### Как создать пользовательский тип атрибута?
*Инструкцию по созданию пользовательского типа атрибута см. главу [Пользовательские типы атрибутов документа](../Пользовательские типы атрибутов документов/index.md).* *Инструкцию по созданию пользовательского типа атрибута см. главу [Пользовательские типы атрибутов документа](../Пользовательские типы атрибутов документов/index.md).*
*О том, как использовать созданный пользовательский тип см. раздел [Описание полей в таблице "Дополнительные атрибуты". Тип группы (Unispr)](#описание-ChCode) и [Что писать в Тип группы (Unispr)?](#chcode).* *О том, как использовать созданный пользовательский тип см. раздел [Описание полей в таблице "Дополнительные атрибуты". Тип группы (Unispr)](#описание-ChCode) и [Что писать в Тип группы (Unispr)?](#chcode).* -->
<!-- ```sql
DO
$$
declare "_PCode" bigint;
declare "_VCode" bigint;
declare "_CDate" timestamptz := now();
declare "_CHost" character varying(255) := inet_client_addr();
declare "_CUser" character varying(255) := lex."getVirtualLogin"();
declare "_COrg" bigint := lex."getOrgId"();
declare _TypePersonalOrder bigint;
_TypeNamePersonalOrder varchar(255);
_FlagMove int ;
BEGIN
if "_DocumentCategory" is not null then
select ty."IdTypeTimeWork", 'Base.'::varchar(255)|| coalesce(ty."NameModel"::varchar(255),''::varchar(255)), ty."FlagMove"
from dfd."DocumentConstructor" dc
join dfd."DocumentSubtype" ds on dc."DocumentSubtype" = ds."VCode"
join comdoc."VTypePersonalOrder" ty on ds."TypePersonalOrder" = ty."VCode"
where dc."VCode" = "_DocumentCategory"
into _TypePersonalOrder, _TypeNamePersonalOrder, _FlagMove;
end if;
if _FlagMove = 2 then
"_PCode" := lex."L8_sp_GenCode" ('RP_DocAbsence', 1);
"_VCode" := lex."L8_sp_GenCode" ('RP_WorkerAbsence', 1);
INSERT INTO aw."RP_DocAbsence" (
"VCode", "TypeName", "DateDoc",
"CDate", "CHost", "CUser", "COrg",
"WDate", "WHost", "WUser", "WOrg"
)
VALUES (
"_PCode", coalesce(_TypeNamePersonalOrder,"_TypeName"), coalesce("_DateDoc","_CDate"),
"_CDate", "_CHost", "_CUser", "_COrg",
"_CDate", "_CHost", "_CUser", "_COrg"
);
INSERT INTO aw."RP_WorkerAbsence" (
"VCode", "Pcode", "IdWorker", "IdTypePer",
"CDate", "CHost", "CUser", "COrg",
"WDate", "WHost", "WUser", "WOrg"
)
select
"_VCode", "_PCode", "_IdWorker", coalesce(_TypePersonalOrder,"_IdTypePer"),
"_CDate", "_CHost", "_CUser", "_COrg",
"_CDate", "_CHost", "_CUser", "_COrg"
;
else
"_PCode" := lex."L8_sp_GenCode" ('RP_DocMove', 1);
"_VCode" := lex."L8_sp_GenCode" ('RP_WorkerMove', 1);
INSERT INTO rp."RP_DocMove" ( "VCode", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser", "COrg", "WOrg",
"TypeName", "IdTypeCauseCond", /*"NumDoc",*/ "DateDoc", "FlagApp", "IdTypeDocStaff", "Note")
select "_PCode", "_CDate", "_CDate", "_CHost", "_CHost", "_CUser", "_CUser", "_COrg", "_COrg",
_TypeNamePersonalOrder, null, coalesce("_DateDoc","_CDate"), null, _TypePersonalOrder, null;
INSERT INTO rp."RP_WorkerMove" ( "VCode", "Pcode", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser", "COrg", "WOrg",
"IdWorker", "DateBeg", "IdDepartment", "IdPost", "IdRank", --"IdWorkContract",
"IdStaffUnit", "IdTypeBasisDoc", "DateBasis", "Rate", "IdOper1", "SumOper1", "IdTypeWorkSched", "Probation", "WCode")
select "_VCode", "_PCode", "_CDate", "_CDate", "_CHost", "_CHost", "_CUser", "_CUser", "_COrg", "_COrg",
"_IdWorker", @DateBeg, mm."IdDepartment", mm."IdPost", mm."IdRank",
mm."IdStaffUnit", mm."IdTypeBasisDoc", mm."DateBasis", mm."Rate", mm."IdOper1", mm."SumOper1",
mm."IdTypeWorkSched", mm."Probation", case when _FlagMove = 1 then mm."PCode" end
from (
select m.*
from rp."RP_DocMove" p
join rp."RP_WorkerMove" m on p."VCode" = m."PCode"
join comdoc."VRP_TypeDocStaff" s on p."IdTypeDocStaff" = s."VCode"
where m."IdWorker" = "_IdWorker" and s."FlagMove" = 1
order by "DateBeg" desc
limit 1) mm;
end if;
update "#tmp_newDocVCode"
set "newDocVCode" = "_PCode" ;
END;
$$
``` -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

View File

@ -121,8 +121,8 @@ search:
Ниже представлен пример уведомления о поступлении документов для обработки. Ниже представлен пример уведомления о поступлении документов для обработки.
![В работу](media/vrabotuMail.png) ![В работу](media/screen%201.png)
![В работу](media/vrabotuSMS.png) ![В работу](media/screen%201-1.png)
Пример текста письма: Пример текста письма:
@ -158,6 +158,8 @@ search:
#Master_PreviousRouteStage# #Master_PreviousRouteStage#
``` ```
В данном конструкторе имеется таблица **Настройка типов документов, для которых будет формироваться данный вид уведомления**, позволяющая данный конструктор использовать на необходимой форме документа.
### Вид уведомления "О необходимости ознакомиться с документом" ### Вид уведомления "О необходимости ознакомиться с документом"
Ниже представлен пример уведомления о поступлении документов для обработки. Ниже представлен пример уведомления о поступлении документов для обработки.
@ -216,7 +218,7 @@ search:
``` ```
Добрый день, #Master_FirstName# #Master_MiddleName#! Добрый день, #Master_FirstName# #Master_MiddleName#!
Ваш сертификат НЭП (электронная подпись) подходит к концу срока действия. Ваш сертификат НЭП (электронная подпись) подходит к концу срока действия - #Master_oldEDate#.
Выпущен новый сертификат НЭП (электронная подпись). Выпущен новый сертификат НЭП (электронная подпись).
@ -502,7 +504,7 @@ search:
Ниже представлен пример уведомления о входе в систему не активным пользователям: Ниже представлен пример уведомления о входе в систему не активным пользователям:
![Pictures](screen6.png) ![Pictures](media/screen6.png)
**Дополнительный текст для руководителя** - при использовании служебного наименования **#Master_Chief#** в тексте письма, отображается блок в котором добавляется дополнительный текст для [руководителя подразделения](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/Подразделения/#документ). **Дополнительный текст для руководителя** - при использовании служебного наименования **#Master_Chief#** в тексте письма, отображается блок в котором добавляется дополнительный текст для [руководителя подразделения](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/Подразделения/#документ).
@ -564,7 +566,7 @@ search:
Ниже представлен пример уведомления о необходимости сдачи заявления на выпущенный ЭП в отдел кадров Ниже представлен пример уведомления о необходимости сдачи заявления на выпущенный ЭП в отдел кадров
![Pictures](image.png) ![Pictures](media/image.png)
Пример текста письма: Пример текста письма:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 110 KiB

View File

@ -0,0 +1,211 @@
# Контрагенты
## Общее описание назначения документа
Контрагент это общее понятие, куда включены поставщики и покупатели, организации и индивидуальные предприниматели.
В качестве контрагента может выступать организация, имеющая несколько собственных юридических лиц (холдинг). В этом случае в справочник "Контрагенты" заносится головная организация холдинга, а также все юридические лица, входящие в состав холдинга. Для всех контрагентов, входящих в состав холдинга, указывается головной контрагент головная организация холдинга.
Документ "Контрагенты" предназначен для хранения данных о контрагентах (в том числе организации пользователя). Основные данные: наименование, реквизиты и тип контрагента, его контактные данные, банковские реквизиты, договоры и данные грузополучателей. Также из данного документа можно перейти в создание документа в реестре недобросовестных поставщиков.
## Реестр
Для открытия документа необходимо в Меню в поисковой строке ввести - "Контрагенты".
Откроется реестр контрагентов. Контрагенты, выделенные в реестре красным цветом, на данный момент не являются действующими. Данные организации либо полностью ликвидированы, либо вместо них есть правопреемник, который принял на себя все обязательства по зарегистрированным ранее договорам. В последнем случае в карточке контрагента будет заполнено поле "Правопреемник".
![Alt text](media/image.png)
Для создания нового документа необходимо нажать на кнопку "Создать" на верхней панели инструментов.
![](./media/create.png)
## Документ
Пример заполненного документа "Контрагент" выглядит следующим образом:
![Alt text](media/image-1.png)
Обязательными полями для заполнения являются ОКОПФ, краткое и полное наименования контрагента, ИНН, КПП, юридический адрес, тип и вид контрагента.
При внесении филиалов (обособленных подразделений) головной организации в справочник контрагентов обзяательно для заполнения соответствующим значением поле "**Своя организация**" на вкладке "**Настройка**".
Например, ООО "Радуга" головная организация, одним ее из филиалов является Уральский филиал ООО "Радуга".
Для ООО "Радуга" заполненное поле выглядит следующим образом:
![](./media/image1.png)
Для Уральского филиала ООО "Радуга":
![](./media/image2.png)
Кнопка "Вложения" позволяет прикреплять файлы разного формата, связанные с контрагентом. Кнопка "Печать" вызывает печатную форму "Карточка контрагента" в PDF-формате. Кнопка "Добавить в РНП" позволяет внести контрагента в реестр недобросовестных поставщиков.
По кнопке "Печать" можно сформировать "Карточку контрагента" и "Согласие на обработку данных ИП":
![Рисунок Отчетные формы](./media/image7.png)
### Вкладка "Основная"
Чтобы заполнить обязательные поля "Орг. правовая форма(ОКОПФ)" и "Тип контрагента" необходимо заполнить справочники [Формы собственности](https://ecm-user-manuals.readthedocs.io/ru/latest/User%20manuals/%D0%A4%D0%BE%D1%80%D0%BC%D1%8B%20%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8/) и "Типы контрагентов" соответственно.
Список возможных значений обязательного поля "Вид контрагента" заполнен стандартными значениями, поэтому заполнять справочники не требуется. Для индивидуальных предпринимателей в поле "вид контрагента" выбрать "Физ.лицо".
ИНН и КПП текстовые поля. ИНН идентификационный номер контрагента, для отражения в печатных формах документации. КПП код постановки на учет, для отражения в печатных формах документов.
Также рекомендуется заполнить значением поле "ОГРН".
Для быстрого заполнения реквизитов (Правовая форма, ИНН, КПП, ОГРН, Дата регистрации, Дата прекращения деятельности на вкладке "Основная"; Юридический адрес, ФИО и должность руководителя на вкладке "Контакты и адреса") можно воспользоваться кнопкой "Загрузить реквизиты", которая на основе ИНН или ОГРН получает данные об организации из [ЕГРЮЛ/ЕГРИП](https://egrul.nalog.ru). Для успешной загрузки данных в форме "Авторизация для сервиса "ЕГРЮЛ"" необходимо прописать настройки подключения и поставить галочку в поле "Сервис включён".
Полное наименование полное наименование контрагента, указанное в учредительных документах организации, для отражения в печатных формах документации, где требуется выводить полное наименование контрагента.
Краткое наименование краткое наименование контрагента, для использования в экранных формах документов.
Наименование контрагента в поле "Наименование для печати" используется для вывода в печатные формы, где требуется краткое наименование.
Если контрагент прекратил свою деятельность, необходимо поставить галочку в поле "Ликвидирован"и заполнить поле "Прекращение деятельности". Если после прекращения деятельности контрагента остался его правопреемник, то можно заполнить поле "Правопреемник" значением из списка контрагентов.
Если контрагент является нерезидентом, необходимо поставить галочку в поле "Нерезидент".
Поле "Головная организация" заполняется, если контрагент является обособленным подразделением в составе холдинга.
Если известна дата регистрации контрагента, заполняется поле "Дата регистрации".
На данной вкладке также имеется кнопка "История изм.пол.наименования", при нажатии на которую открывается вложенная форма с информацией о наименованиях рассматриваемой организации с указанием даты изменения наименования в системе и о соответствующих документах.
Кнопка "История изменений" напротив полей позволяет проверить историю изменения КПП, полного наименования, юридического адреса контрагента, если в базу данных вносились изменения.
***Для внесения индивидуальных предпринимателей, помимо заполнения основных полей, нужно внести СНИЛС ***
### Вкладка "Контакты и адреса"
Указанная на данной вкладке информация предназначена для вывода в печатные формы документов. Юридический адрес является обязательным для заполнения полем.
Рекомендуемыми к заполнению полями являются:
- Руководитель
- Должность руководителя
- Телефон
- E-mail
- Почтовый адрес
- Фактический адрес
![Alt text](media/image-2.png)
Для заполнения адресов нужно нажать кнопку "Введение адреса с помощью ФИАС".
![Рисунок 5 Заполнение юридического адреса](./media/image3.png)
Откроется форма для внесения адреса:
![Рисунок 5 Заполнение юридического адреса](./media/image4.png)
Если на проекте подключен ФИАС, то поля Страна, Регион, Район, Город, Населенный пункт, Улица, Дом, Тип помещения заполняются значениями из справочника.
В противном случае, адрес можно внести вручную без заполнения этих полейи нажать кнопку "Сохранить"
![Рисунок 6 Заполнение юридического адреса](./media/image5.png)
***По индивидуальным предпринимателям нужно заполнить паспортные данные в таблице "Документы". Для добавления новой строки нажать кнопку "Добавить":***
![Рисунок 7 Заполнение паспортных данных](./media/image6.png)
Для того, чтобы сработала проверка на заполнение паспортных данных и СНИЛС для индивидуальных предпринимателей при сохранении документа, необходимо обратиться к администратору системы
### Вкладка "Банковские реквизиты"
На данной вкладке указываются банковские счета контрагента. Следует указать тот расчетный счет, который будет проставляться по умолчанию в платежные документы данной организации. Закрытые счета отмечаются признаком "Не использовать".
Чтобы заполнить банковские реквизиты контрагента необходимо добавить строку в таблицу "Банковские реквизиты" с помощью кнопки ![](./media/add.png)
Поле "Код" заполняется автоматически. Поле "Банк (Наименование/БИК/Корр.счет)" заполняется значением из списка, сформированного на основе реестра "Банки" из папки "Работа с контрагентами". Среди нескольких банковских реквизитов можно выбрать вставляемые в документы по умолчанию с помощью галочки в поле "Использовать по умолчанию".
![Alt text](media/image-3.png)
### Вкладка "Договоры"
На вкладке "Договоры" отражается история заключения договоров между организацией, для которой ведется учет в системе и рассматриваемым контрагентом.
В первой таблице перечислены все заключенные с контрагентом договоры с основной информацией по ним и ссылками на документы. Вторая таблица заполняется дополнительными соглашениями к договору, на строку с которым нажал пользователь.
![Alt text](media/image-4.png)
### Вкладка "CRM"
Термин CRM в переводе с английского означает управление отношениями с покупателями.
Для автоматического заполнения полей некоторых форм можно заполнить поле "Менеджер", выбрав одного из сотрудников текущей компании администратора системы, а также заполнить варианты склонения должности и ФИО руководителя и ФИО главного бухгалтера рассматриваемого контрагента.
![Alt text](media/image-5.png)
Для быстрого заполнения склонений ФИО и должностей по падежам можно воспользоваться соответствующими кнопками. Будет предложено выбрать пол (ж женский, м мужской), и после выбора пола и нажатия на кнопку "Просклонять" поля с дательным, родительным и винительным падежами будут заполнены автоматически.
Следует обратить внимание, что данная функция может работать *некорректно* при работе с нераспространёнными на территории РФ ФИО. В таком случае необходимо заполнить поля вручную.
![Рисунок 8 Выбор пола руководителя](./media/declension.png)
### Вкладка "Доп реквизиты"
На вкладке предлагаются к заполнению дополнительные реквизиты контрагента, не требующие обязательного заполнения, такие как ОКАТО, ОКТМО, регистрационные номера в ПФР и ФСС, вид территориальных условий, районный коэффициент, вид тарифа страховых взносов, вида дополнительных взносов.
![Alt text](media/image-6.png)
### Вкладка "Провайдер обучения"
Вкладка заполняется, если контрагент является провайдером обучения. Для этого ставится признак "Провайдер обучения" и вводится информация по лицензии на обучение в табличной части по кнопке "Добавить" (+).
Если вкладка не заполнена, то контрагент не будет отражаться в документах по обучению.
![Alt text](media/image-7.png)
### Вкладка "Настройка"
Если рассматриваемый контрагент является одним из контрагентов, то поле "Своя организация" обязательно к заполнению. Поле заполняется одним из значений списка компаний.
![Alt text](media/image-8.png)
### Вкладка "Грузополучатели"
Заполняется адресами доставки контрагента, которые могут использоваться в расходной накладной.
- Грузополучатель текстовое поле, заполняется наименованием подразделения.
- Адрес доставки адрес грузополучателя, является обязательным полем.
- Примечание текстовое поле.
![Alt text](media/image-9.png)
Если настроена работа с системой "Честный знак", необходимо заполнить текстовое поле "ID в честный знак" и идентификаторы грузополучателей в системе "Честный знак". После заполнении ID контрагента в системе "Честный знак" при нажатии на кнопку "Обновить информацию" таблица заполняется автоматически.
### Добавление логотипа
Для отображения логотипа компании в печатной форме, документа, нажмите кнопку "Вложения". Во всплывающем окне "Вложения к документу" нажмите кнопку "Добавить вложение", загрузите графический файл с логотипом. **Тип вложения необходимо проставить "Логотип"**
!!! warning
Разрешение файла должно быть максимально - 200х200. В случае загрузки файла с более высоким разрешением, в печатной форме документа кириллические буквы переходят в диакритические знаки (сбрасывается кодировка)
![Alt text](media/image-10.png)
### Вкладка "Доверенность"
Указываются лица без доверенности, т.е. руководители организации: генеральный директор, директор, его заместители и т.д.
![Alt text](media/image-11.png)
### Вкладка "Настройка интеграции с Диадок"#
**Диадок** — это система юридически значимого электронного документооборота. Пользователи сервиса подписывают документы квалифицированной электронной подписью и обмениваются ими с контрагентами без дублирования на бумаге.
**”BoxId (ручной ввод)”** вручную прописывается BoxId организации.
!!! example "Пример"
Яндекс Бизнес дочерняя организация Яндекса и допустим, что в Лексеме мы работаем с ней (через интеграцию с Диадок). При выставлении счетов на оплату Яндекс Бизнес проставляет реквизиты Яндекса (головного офиса). В этом случае прописывается BoxId Яндекса. Может быть и другой случай, когда работа производится с головной организацией Яндексом, а счета предоставляются дочерней Яндекс Бизнесу. В этом случае прописывают BoxId Яндекс Бизнеса.
**Boxid** - идентификатор ящика организации на сервере Диадока.
**Guid** — это идентификационный номер в ЭДО.
**FnsParticipantId** - идентификатор организации на сервере Диадока.
**В роуминге** - признак работы через другого оператора электронного документооборота, например, Тензор.

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Some files were not shown because too many files have changed in this diff Show More