diff --git a/app/panels/mech_rec_help/img/11.png b/app/panels/mech_rec_help/img/11.png
new file mode 100644
index 0000000..4efb611
Binary files /dev/null and b/app/panels/mech_rec_help/img/11.png differ
diff --git a/app/panels/mech_rec_help/img/12.png b/app/panels/mech_rec_help/img/12.png
new file mode 100644
index 0000000..90c381b
Binary files /dev/null and b/app/panels/mech_rec_help/img/12.png differ
diff --git a/app/panels/mech_rec_help/img/13.png b/app/panels/mech_rec_help/img/13.png
new file mode 100644
index 0000000..6211396
Binary files /dev/null and b/app/panels/mech_rec_help/img/13.png differ
diff --git a/app/panels/mech_rec_help/img/14.png b/app/panels/mech_rec_help/img/14.png
new file mode 100644
index 0000000..96d1bf8
Binary files /dev/null and b/app/panels/mech_rec_help/img/14.png differ
diff --git a/app/panels/mech_rec_help/img/15.png b/app/panels/mech_rec_help/img/15.png
new file mode 100644
index 0000000..e211cad
Binary files /dev/null and b/app/panels/mech_rec_help/img/15.png differ
diff --git a/app/panels/mech_rec_help/img/21.png b/app/panels/mech_rec_help/img/21.png
new file mode 100644
index 0000000..43efac5
Binary files /dev/null and b/app/panels/mech_rec_help/img/21.png differ
diff --git a/app/panels/mech_rec_help/img/211.png b/app/panels/mech_rec_help/img/211.png
new file mode 100644
index 0000000..ebfd51c
Binary files /dev/null and b/app/panels/mech_rec_help/img/211.png differ
diff --git a/app/panels/mech_rec_help/img/212.png b/app/panels/mech_rec_help/img/212.png
new file mode 100644
index 0000000..62032dc
Binary files /dev/null and b/app/panels/mech_rec_help/img/212.png differ
diff --git a/app/panels/mech_rec_help/img/213.png b/app/panels/mech_rec_help/img/213.png
new file mode 100644
index 0000000..ca63c42
Binary files /dev/null and b/app/panels/mech_rec_help/img/213.png differ
diff --git a/app/panels/mech_rec_help/img/22.png b/app/panels/mech_rec_help/img/22.png
new file mode 100644
index 0000000..bb628b1
Binary files /dev/null and b/app/panels/mech_rec_help/img/22.png differ
diff --git a/app/panels/mech_rec_help/img/23.png b/app/panels/mech_rec_help/img/23.png
new file mode 100644
index 0000000..0bc07da
Binary files /dev/null and b/app/panels/mech_rec_help/img/23.png differ
diff --git a/app/panels/mech_rec_help/img/24.png b/app/panels/mech_rec_help/img/24.png
new file mode 100644
index 0000000..ade0241
Binary files /dev/null and b/app/panels/mech_rec_help/img/24.png differ
diff --git a/app/panels/mech_rec_help/img/25.png b/app/panels/mech_rec_help/img/25.png
new file mode 100644
index 0000000..d433e0b
Binary files /dev/null and b/app/panels/mech_rec_help/img/25.png differ
diff --git a/app/panels/mech_rec_help/index.js b/app/panels/mech_rec_help/index.js
new file mode 100644
index 0000000..39363dd
--- /dev/null
+++ b/app/panels/mech_rec_help/index.js
@@ -0,0 +1,16 @@
+/*
+ Парус 8 - Панели мониторинга - ПУДП - Пользовательская инструкция
+ Панель мониторинга: Пользовательская инструкция
+*/
+
+//---------------------
+//Подключение библиотек
+//---------------------
+
+import { MechRecHelp } from "./mech_rec_help"; //Корневая панель пользовательской инструкции
+
+//----------------
+//Интерфейс модуля
+//----------------
+
+export const RootClass = MechRecHelp;
diff --git a/app/panels/mech_rec_help/mech_rec_help.js b/app/panels/mech_rec_help/mech_rec_help.js
new file mode 100644
index 0000000..fd79324
--- /dev/null
+++ b/app/panels/mech_rec_help/mech_rec_help.js
@@ -0,0 +1,339 @@
+/*
+ Парус 8 - Панели мониторинга - ПУДП - Пользовательская инструкция
+ Панель мониторинга: Пользовательская инструкция
+*/
+
+//---------------------
+//Подключение библиотек
+//---------------------
+
+import React, { useContext, useState } from "react"; //Классы React
+import PropTypes from "prop-types"; //Контроль свойств компонента
+import { Box, Grid, Typography, Link, List, ListItem, ListItemButton, ListItemText, Divider, Fab, Icon } from "@mui/material"; //Интерфейсные элементы
+import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
+import { ApplicationСtx } from "../../context/application"; //Контекст приложения
+import img11 from "./img/11.png"; //Изображение
+import img12 from "./img/12.png"; //Изображение
+import img13 from "./img/13.png"; //Изображение
+import img14 from "./img/14.png"; //Изображение
+import img15 from "./img/15.png"; //Изображение
+import img21 from "./img/21.png"; //Изображение
+import img22 from "./img/22.png"; //Изображение
+import img23 from "./img/23.png"; //Изображение
+import img24 from "./img/24.png"; //Изображение
+import img25 from "./img/25.png"; //Изображение
+import img211 from "./img/211.png"; //Изображение
+import img212 from "./img/212.png"; //Изображение
+import img213 from "./img/213.png"; //Изображение
+
+//---------
+//Константы
+//---------
+
+//Оглавление
+const CONTENT = [
+ { id: "prg1", caption: "1. О структуре производства" },
+ { id: "prg2", caption: "2. НСИ о продукции" }
+];
+
+//Стили
+const STYLES = {
+ IMG_CONT: { textAlign: "center", padding: "10px" },
+ IMG: { maxWidth: "100%", height: "auto" },
+ PRGF_TABLE: { paddingTop: "20px", paddingBottom: "20px", display: "flex", justifyContent: "center" },
+ TABLE: { width: "80%" },
+ TABLE_TITLE: { backgroundColor: "lightgray" },
+ TABLE_SUBTITLE: { textAlign: "center", backgroundColor: "#f3eded", fontWeight: "bold" },
+ FAB_BACK: { position: "absolute", right: "20px", marginTop: "20px" }
+};
+
+//--------------------------------
+//Вспомогательные функции и классы
+//--------------------------------
+
+//Переход к элементу страницы
+const scrollToElement = id => document.getElementById(id).scrollIntoView();
+
+//Заголовок первого уровня
+const Hdr1 = ({ id, children }) => (
+
+ {children}
+
+);
+
+//Контроль свойств - Заголовок первого уровня
+Hdr1.propTypes = {
+ id: PropTypes.string,
+ children: PropTypes.any
+};
+
+//Заголовок второго уровня
+const Hdr2 = ({ id, children }) => (
+
+ {children}
+
+);
+
+//Контроль свойств - Заголовок второго уровня
+Hdr2.propTypes = {
+ id: PropTypes.string,
+ children: PropTypes.any
+};
+
+//Заголовок третьего уровня
+const Hdr3 = ({ id, children }) => (
+
+ {children}
+
+);
+
+//Контроль свойств - Заголовок третьего уровня
+Hdr3.propTypes = {
+ id: PropTypes.string,
+ children: PropTypes.any
+};
+
+//Параграф
+const Prgf = ({ style, children }) => (
+
+ {children}
+
+);
+
+//Контроль свойств - Параграф
+Prgf.propTypes = {
+ style: PropTypes.object,
+ children: PropTypes.any
+};
+
+//Изображение
+const Img = ({ src }) => (
+
+
+
+);
+
+//Контроль свойств - Изображение
+Img.propTypes = {
+ src: PropTypes.string.isRequired
+};
+
+//Ссылка на раздел Системы
+const UnitLink = ({ unitCode, children }) => {
+ //Подключение к контексту приложения
+ const { pOnlineShowUnit } = useContext(ApplicationСtx);
+
+ //Генерация содержимого
+ return (
+ pOnlineShowUnit({ unitCode })}>
+ {children}
+
+ );
+};
+
+//Контроль свойств - Ссылка на раздел Системы
+UnitLink.propTypes = {
+ unitCode: PropTypes.string.isRequired,
+ children: PropTypes.any
+};
+
+//Ссылка на главу инструкции
+const ChapterLink = ({ id, dstId, onClick, children }) => {
+ //Генерация содержимого
+ return (
+ {
+ scrollToElement(dstId);
+ if (onClick && id) onClick(id);
+ }}
+ >
+ {children}
+
+ );
+};
+
+//Контроль свойств - Ссылка на главу инструкции
+ChapterLink.propTypes = {
+ id: PropTypes.string,
+ dstId: PropTypes.string.isRequired,
+ onClick: PropTypes.func,
+ children: PropTypes.any
+};
+
+//Ссылка на информационную панель
+const PanelLink = ({ panelName, children }) => {
+ //Подключение к контексту приложения
+ const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationСtx);
+
+ //Генерация содержимого
+ return (
+ {
+ const panel = findPanelByName(panelName);
+ if (panel) pOnlineShowTab({ id: panel.name, url: `${configUrlBase}${panel.url}`, caption: panel.caption });
+ }}
+ >
+ {children}
+
+ );
+};
+
+//Контроль свойств - Ссылка на информационную панель
+PanelLink.propTypes = {
+ panelName: PropTypes.string.isRequired,
+ children: PropTypes.any
+};
+
+//-----------
+//Тело модуля
+//-----------
+
+//Корневая панель пользовательской инструкции
+const MechRecHelp = () => {
+ //Собственное состояние
+ const [navStack, setNavStack] = useState([]);
+
+ //Переход по оглавлению
+ const handleTitleClick = id => {
+ scrollToElement(id);
+ setNavStack([]);
+ };
+
+ //Обработка нажатия на кнопку "Назад"
+ const handleBackClick = () => {
+ if (navStack.length > 0) {
+ const tmp = [...navStack];
+ const backId = tmp.pop();
+ scrollToElement(backId);
+ setNavStack(tmp);
+ }
+ };
+
+ //Генерация содержимого
+ return (
+
+ {navStack.length > 0 ? (
+
+ arrow_back_ios
+ {BUTTONS.NAVIGATE_BACK}
+
+ ) : null}
+
+
+
+ Оперативное управление производством
+
+
+
+ {CONTENT.map((c, i) => (
+
+ handleTitleClick(c.id)}>
+
+
+
+ ))}
+
+
+
+
+ Оперативное управление производством
+ 1. О структуре производства
+
+ В макете настроена штатная структура предприятия и определены склады подразделений. Для просмотра штатной структуры
+ перейдите в раздел «Подразделения».
+
+
+
+ Производство состоит из 4 цехов, для цехов № 2 и № 4 определены участки. Участки цеха № 2 используются в описании макета
+ при формировании сменных заданий.
+
+
+
+ Для централизованного и внутрицехового учета материалов, покупных комплектующих (далее – ПКИ), деталей и сборочных единиц
+ (далее – ДСЕ) в макете определены склады. Для просмотра перечня складов перейдите в раздел «Склады».
+
+
+
+ Централизованный склад ЦМС используется для учета прихода материалов и ПКИ от поставщиков и выдачи в цеха. Склады цехов
+ используются для учета в цехе получения материалов и ПКИ с ЦМС, поступления готовых ДСЕ от других цехов и от участков
+ цеха, списание материалов, ПКИ и ДСЕ на затраты производства. На централизованный склад СГП выполняется сдача готовой
+ продукции.
+
+
+
+ Для выдачи заданий на станки в макете для участков цеха № 2 определено оборудование. Просмотреть оборудование можно в
+ разделе «Подразделения» в окне «Оборудование».
+
+
+ 2. НСИ о продукции
+
+ Нормативно-справочная информация (далее – НСИ) о продукции доступна для просмотра через пункт головного меню «Учет».
+
+
+
+ Для просмотра НСИ перейдите в разделы, указанные в строках контекстного меню. При переходе в разделы открывается окно
+ «Отбор», нажимайте в окне кнопку «ОК».
+
+ Нормативная информация о производимой продукции в макете размещена в следующих разделах:
+
+
1) «Спецификации изделий»
+
+
+ Для изделий «Лебедка» и входящих в изделия сборочных единиц введены данные конструкторских составов.
+
+
2) «Ведомости материалов и оснастки»
+
+
+ Для деталей введены нормы расхода основного материала.
+
+
3) «Маршрутные карты»
+
+
+ Для изделий и ДСЕ введены данные маршрутных карт технологических процессов.
+
+
4) «Маршруты» в макете не используются, маршрут ДСЕ определяется маршрутной картой.
+
+
+ Справочник материальных ресурсов, производимых и потребляемых в процессе производства продукции, находится в разделе
+ «Инженерные данные».
+
+
+ 2.1. Производственные составы изделий
+
+ На основании нормативной информации для изделий «Лебедка» сформированы Производственные составы (далее – ПС). ПС
+ материальных ресурсов отображаются в разделе «Инженерные данные» в окне «Производственный состав».
+
+ Пользователь может сформировать новые ПС и переформировать существующие, используя действия контекстного меню.
+
+
+ ПС используется в процессе планирования производства продукции, как основной нормативный документ об изделии. ПС – это
+ иерархическая маршрутно-материальная ведомость изделия.
+
+ Для просмотра состава ПС выполните на строке заголовка ПС действие «Показать».
+
+
+ Для автоматического определения при планировании производства «какой ПС использовать» созданные в макете ПС изделий
+ «Лебедка» переведены в «Состояние» = «Производство» и определены как «используемые по умолчанию».
+
+
+
+
+
+
+ );
+};
+
+//----------------
+//Интерфейс модуля
+//----------------
+
+export { MechRecHelp };
diff --git a/img/prj_help.jpg b/img/help.jpg
similarity index 100%
rename from img/prj_help.jpg
rename to img/help.jpg
diff --git a/p8panels.config b/p8panels.config
index c15f461..41e196d 100644
--- a/p8panels.config
+++ b/p8panels.config
@@ -25,6 +25,7 @@
+
@@ -67,7 +68,7 @@
path="prj_help"
icon="help_outline"
showInPanelsList="true"
- preview="./img/prj_help.jpg"/>
+ preview="./img/help.jpg"/>
+