merge upstream

This commit is contained in:
Dollerok 2026-02-04 12:14:32 +03:00
commit 5b06da67c9
5 changed files with 55 additions and 11 deletions

View File

@ -109,6 +109,16 @@ git clone https://git.citpb.ru/CITKParus/P8-Panels.git
6. Проведите компиляцию хранимых объектов БД из каталога "db" клонированного репозитория (компиляцию проводить под пользователем-владельцем схемы серверной части Системы, с последующей перекомпиляцией зависимых инвалидных объектов), затем исполните скрипт "grants.sql", размещённый в этом же каталоге. 6. Проведите компиляцию хранимых объектов БД из каталога "db" клонированного репозитория (компиляцию проводить под пользователем-владельцем схемы серверной части Системы, с последующей перекомпиляцией зависимых инвалидных объектов), затем исполните скрипт "grants.sql", размещённый в этом же каталоге.
При компиляции учитывайте следующее:
- объекты `PKG_P8PANELS`, `PKG_P8PANELS_BASE`, `PKG_P8PANELS_VISUAL` и `P8PNL_SELECTLIST` - обязательны к компиляции. **Это ядро серверной части расширения. Без этих объектов его работа невозможна. Все остальные, перечисленные ниже объекты серверной части - прикладные, не обязательны к компиляции и на функционирование непосредственно фреймворка влияния не оказывают.**
- объекты `PKG_P8PANELS_SAMPLES`, `P8PNL_SMPL_CYCLOGRAM` и `P8PNL_SMPL_GANTT` - обеспечивают работу панели "Samples" ("Примеры для разработчиков"). Это абстрактный набор примеров применения фреймворка, не привязанный жестко к комплектации Системы. Должен откомпилироваться практически в любой комплектации Системы (единственное требование - наличие словаря "Контрагенты").
- объекты `PKG_P8PANELS_PROJECTS`, `P8PNL_JB_JOBS`, `P8PNL_JB_JOBSPREV`, `P8PNL_JB_PERIODS`, `P8PNL_JB_PRJCTS` и `P8PNL_JB_PRMS` - могут быть откомпилированы в Системе, имеющей в комлектации приложения "Планирование и учёт в проектах" и "Управление закупками, складом и реализацией". Эти объекты отвечают за работу панелей группы "Планирование и учёт в проектах" ("PrjFin" - "Экономика проектов", "PrjJobs" - "Работы проектов", "PrjGraph" - "Графики проектов", "PrjInfo" - "Информация о проектах"). Компилируйте только если комлектация Системы включает указанные приложения.
- объект `PKG_P8PANELS_CLNTTSKBRD` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Управление деловыми процессами". Этот объект отвечает за работу панелей группы "Управление деловыми процессами" ("ClntTaskBoard" - "Доски задач"). Компилируйте только если комлектация Системы включает указанное приложение.
- объект `PKG_P8PANELS_MECHREC` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Планирование и учёт в дискретном производстве". Этот объект отвечает за работу панелей группы "Планирование и учёт в дискретном производстве" ("MechRecCostProdPlans" - "Производственная программа", "MechRecDeptCostProdPlans" - "Производственный план цеха", "MechRecCostJobsManage" - "Выдача сменного задания", "MechRecCostJobsManageMP" - "Выдача сменного задания на участок", "MechRecDeptCostJobs" - "Загрузка цеха", "MechRecAssemblyMon" - "Мониторинг сборки изделий"). Компилируйте только если комлектация Системы включает указанное приложение.
- объект `PKG_P8PANELS_EQUIPSRV` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Управление техническим обслуживанием и ремонтами". Этот объект отвечает за работу панелей группы "Управление техническим обслуживанием и ремонтами" ("EqsPrfrm" - "Выполнение работ по ТОиР"). Компилируйте только если комлектация Системы включает указанное приложение.
- объект `PKG_P8PANELS_RRPCONFED` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Сервис регламентированной и управленческой отчётности". Этот объект отвечает за работу панели "RrpConfEditor" ("Редактор настройки регламентированного отчёта"). Компилируйте только если комлектация Системы включает указанное приложение.
7. Перезапустите сервер приложений "ПАРУС 8 Онлайн" 7. Перезапустите сервер приложений "ПАРУС 8 Онлайн"
> **Внимание:** при установке учитывайте следующее: > **Внимание:** при установке учитывайте следующее:
@ -119,7 +129,12 @@ git clone https://git.citpb.ru/CITKParus/P8-Panels.git
> - Права доступа - файлы конфигурации и файлы дистрибутива фреймворка должны быть доступны процессу WEB-сервера > - Права доступа - файлы конфигурации и файлы дистрибутива фреймворка должны быть доступны процессу WEB-сервера
> >
> - **Для Windows 7 и прочих устаревших версий Windows** > - **Для Windows 7 и прочих устаревших версий Windows**
>
> - Версия IIS, доступная для этих ОС, зачастую не имеет автоматической поддержки шрифтов в формате "WOFF2", применяемых фреймворком. Это может вызывать некорректное отображение панелей, иконок, некоторых элементов пользовательского интерфейса. Добавте в файл "web.config", сервера приложений "ПАРУС 8 Онлайн", строку для определения формата: `<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`. Путь для добавления данной настройки в файл "web.config": `configuration/system.webServer/staticContent/<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />` > - Версия IIS, доступная для этих ОС, зачастую не имеет автоматической поддержки шрифтов в формате "WOFF2", применяемых фреймворком. Это может вызывать некорректное отображение панелей, иконок, некоторых элементов пользовательского интерфейса. Добавте в файл "web.config", сервера приложений "ПАРУС 8 Онлайн", строку для определения формата: `<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`. Путь для добавления данной настройки в файл "web.config": `configuration/system.webServer/staticContent/<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`
>
> - **Для всех**
>
> - Если после установки фреймворка, при открытии панелей появляется ошибка `Internal server error` (HTTP-статус ответа сервера - 500), и Вы уверены, что перепроверили всё описанное выше в интрукции и не нашли ошибок установки, то: остановите сервер приложений "ПАРУС 8 Онлайн", сделайте резервную копию его каталога "bin" и удалите каталог, затем скачайте "web.zip" из дистрибутива Вашего релиза "ПАРУС 8 Онлайн" и восстановите удалённый каталог "bin", распаковав его из архива. Затем - запустите сервер приложений "ПАРУС 8 Онлайн".
## V. Подключение панелей ## V. Подключение панелей

View File

@ -228,6 +228,35 @@ create or replace package body PKG_P8PANELS_BASE as
end if; end if;
end UTL_SEARCH_PREPARE; end UTL_SEARCH_PREPARE;
/* Разбор ссылки на вызываемый хранимый объект */
procedure UTL_STORED_PARSE_LINK
(
SSTORED in varchar2, -- Ссылка на вызываемый хранимый объект
SPROCEDURE out varchar2, -- Имя процедуры
SPACKAGE out varchar2 -- Имя пакета
)
is
NDELIMITER PKG_STD.TNUMBER; -- Позиция разделителя имени пакета в наименовании хранимого объекта
begin
/* Если есть что разбирать */
if (SSTORED is not null) then
/* Проверим наличие разделителя */
NDELIMITER := INSTR(SSTORED, '.');
/* Если разделитель есть */
if (NDELIMITER <> 0) then
/* Всё что справа от него - это имя процедуры */
SPROCEDURE := UPPER(SUBSTR(SSTORED, NDELIMITER + 1));
/* Всё что слева от него - это имя пакета */
SPACKAGE := UPPER(SUBSTR(SSTORED, 1, NDELIMITER - 1));
else
/* Разделителя нет - это просто имя хранимой процедуры */
SPROCEDURE := UPPER(SSTORED);
/* Без указания пакета */
SPACKAGE := null;
end if;
end if;
end UTL_STORED_PARSE_LINK;
/* Формирование сообщения об отсутствии значения */ /* Формирование сообщения об отсутствии значения */
function MSG_NO_DATA_MAKE function MSG_NO_DATA_MAKE
( (
@ -621,12 +650,12 @@ create or replace package body PKG_P8PANELS_BASE as
'Хранимая процедура/функция "' || SSTORED_ || '" не определена.'); 'Хранимая процедура/функция "' || SSTORED_ || '" не определена.');
else else
/* Проверим, что в имени нет ссылки на пакет */ /* Проверим, что в имени нет ссылки на пакет */
PKG_EXS.UTL_STORED_PARSE_LINK(SSTORED => SSTORED_, SPROCEDURE => SPROCEDURE, SPACKAGE => SPACKAGE); UTL_STORED_PARSE_LINK(SSTORED => SSTORED_, SPROCEDURE => SPROCEDURE, SPACKAGE => SPACKAGE);
/* Если в имени есть ссылка на пакет - сначала проверим его состояние */ /* Если в имени есть ссылка на пакет - сначала проверим его состояние */
if (SPACKAGE is not null) then if (SPACKAGE is not null) then
RPACKAGE := PKG_OBJECT_DESC.DESC_PACKAGE(SPACKAGE_NAME => SPACKAGE, BRAISE_ERROR => false); RPACKAGE := PKG_OBJECT_DESC.DESC_PACKAGE(SPACKAGE_NAME => SPACKAGE, BRAISE_ERROR => false);
end if; end if;
/* Если есть ссылка на пакет, или он не валиден - это ошибка */ /* Если есть ссылка на пакет, и он невалиден - это ошибка */
if ((SPACKAGE is not null) and (RPACKAGE.STATUS <> SDB_OBJECT_STATE_VALID)) then if ((SPACKAGE is not null) and (RPACKAGE.STATUS <> SDB_OBJECT_STATE_VALID)) then
P_EXCEPTION(0, P_EXCEPTION(0,
'Пакет "' || SPACKAGE || 'Пакет "' || SPACKAGE ||

View File

@ -230,7 +230,7 @@ create or replace package body PKG_P8PANELS_SAMPLES as
NCONTACT_METHOD => null, NCONTACT_METHOD => null,
SMF_ID => null, SMF_ID => null,
SOKOGU => null, SOKOGU => null,
NJURPERS_SUBDIV => null, NJURPERS_SUBDIV => 0,
NRN => NRN); NRN => NRN);
end AGNLIST_INSERT; end AGNLIST_INSERT;

10
dist/p8-panels.js vendored

File diff suppressed because one or more lines are too long

View File

@ -10,14 +10,14 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/CITKParus/P8-Panels.git" "url": "git+https://git.citpb.ru/CITKParus/P8-Panels.git"
}, },
"author": "CITK Parus", "author": "CITK Parus",
"license": "ISC", "license": "ISC",
"bugs": { "bugs": {
"url": "https://github.com/CITKParus/P8-Panels/issues" "url": "https://git.citpb.ru/CITKParus/P8-Panels/issues"
}, },
"homepage": "https://github.com/CITKParus/P8-Panels#readme", "homepage": "https://git.citpb.ru/CITKParus/P8-Panels#readme",
"dependencies": { "dependencies": {
"@babel/core": "^7.22.10", "@babel/core": "^7.22.10",
"@babel/preset-react": "^7.22.5", "@babel/preset-react": "^7.22.5",