Загрузка данных


<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Схемы для ООО «Авто-Ритейл»</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f9;
            margin: 0;
            padding: 20px;
        }
        h1, h2 {
            text-align: center;
            color: #333;
        }
        .diagram-container {
            background-color: #fff;
            border: 2px solid #ccc;
            border-radius: 8px;
            margin-bottom: 40px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
            overflow: auto; /* Для скролла, если схема большая */
            padding: 20px;
        }
        .instructions {
            background-color: #e3f2fd;
            padding: 15px;
            border-left: 5px solid #2196f3;
            margin-bottom: 30px;
            border-radius: 4px;
        }
    </style>
    <!-- Подключаем библиотеку для отрисовки графов -->
    <script src="https://unpkg.com/@viz-js/viz@0.4.0/dist/viz-standalone.js"></script>
</head>
<body>

    <h1>Схемы по заданию</h1>

    <div class="instructions">
        <strong>Как пользоваться:</strong> Схемы отрисованы автоматически. Вы можете приближать и отдалять их, используя колесико мыши или кнопки в правом нижнем углу каждой схемы. Тексты на блоках полностью соответствуют заданию.
    </div>

    <h2>1. Бизнес-процесс (IDEF0)</h2>
    <div id="diagram1" class="diagram-container"></div>

    <h2>2. Архитектура 1С («Авто-Ритейл»)</h2>
    <div id="diagram2" class="diagram-container"></div>

    <script>
        // Ждем загрузки библиотеки
        window.addEventListener('load', () => {
            const viz = Viz.instance();
            
            // --- КОД ДЛЯ ПЕРВОЙ СХЕМЫ (Бизнес-процесс) ---
            // Используем синтаксис Graphviz (DOT). Он отлично подходит для рисования стрелок и связей.
            const dot1 = `
            digraph IDEF0 {
                rankdir=LR;
                node [shape=box, style="filled,rounded", fillcolor="#dae8fc", color="#6c8ebf", fontname="Arial", fontsize=12];
                edge [fontname="Arial", fontsize=10];

                // Блоки
                node_1 [label="Деятельность по управлению Службой сбыта\n(1)"];
                node_2 [label="Деятельность отдела маркетинга\n(2)"];
                node_3 [label="Деятельность отдела сбыта\n(3)"];
                node_4 [label="Деятельность склада продукции\n(4)"];

                // Входы, Управление, Механизмы, Выходы (создаем невидимые узлы для позиционирования)
                // Для простоты в Graphviz мы просто делаем связи с текстовыми подписями.
                
                in1 [label="Рыночная информация", shape=plaintext];
                in2 [label="Заявки клиентов", shape=plaintext];
                in3 [label="Готовая продукция\nна складе", shape=plaintext];
                
                ctrl1 [label="План продаж", shape=plaintext];
                ctrl2 [label="Регламент отдела\nмаркетинга", shape=plaintext];
                ctrl3 [label="Регламент отдела\nсбыта", shape=plaintext];
                ctrl4 [label="Регламент склада\nготовой продукции", shape=plaintext];

                mech1 [label="Директор по сбыту\nСлужба сбыта", shape=plaintext];
                mech2 [label="Отдел маркетинга", shape=plaintext];
                mech3 [label="Отдел сбыта", shape=plaintext];
                mech4 [label="Склад готовой\nпродукции", shape=plaintext];

                out1 [label="Регламенты\nСлужбы сбыта", shape=plaintext];
                out2 [label="Анализ рынка", shape=plaintext];
                out3 [label="Договора на поставку\nЗаявка на производство", shape=plaintext];
                out4 [label="Готовая продукция,\nотгруженная клиенту", shape=plaintext];

                // Связи
                in1 -> node_1 [style=dashed]; // Примерно
                in1 -> node_2;
                in2 -> node_3;
                in3 -> node_4;
                
                ctrl1 -> node_1;
                ctrl2 -> node_2;
                ctrl3 -> node_3;
                ctrl4 -> node_4;

                node_1 -> mech1 [dir=back, style=dotted];
                node_2 -> mech2 [dir=back, style=dotted];
                node_3 -> mech3 [dir=back, style=dotted];
                node_4 -> mech4 [dir=back, style=dotted];

                node_1 -> out1;
                node_2 -> out2;
                node_3 -> out3;
                node_4 -> out4;

                // Внутренние связи (Регламенты от службы сбыта)
                out1 -> node_3 [style=solid, color=gray, label="управление"];
                out1 -> node_4 [style=solid, color=gray, label="управление"];
                out2 -> node_3 [style=solid, color=gray, label="анализ"];
            }
            `;

            // --- КОД ДЛЯ ВТОРОЙ СХЕМЫ (Архитектура 1С) ---
            const dot2 = `
            digraph Architecture1C {
                rankdir=TB;
                node [shape=box, fontname="Arial", fontsize=11, style="filled"];
                edge [fontname="Arial", fontsize=10, color="#555555"];

                // Блоки (по слайду)
                node_1 [label="1. Условно-постоянная информация\n\n• Справочник «Номенклатура»\n• Справочник «Контрагенты»\n• Справочник «Сотрудники»\n• ПВХ «Цены»", fillcolor="#fff2cc", color="#d6b656"];
                node_2 [label="2. Документы\n\n• «Приходная накладная»\n• «Заказ клиента»\n• «Счет на оплату»\n• «Реализация»", fillcolor="#dae8fc", color="#6c8ebf"];
                node_3 [label="3. Регистры\n\n• РН «ОстаткиТоваров»\n• РН «Продажи»\n• РС «ЦеныНоменклатуры»", fillcolor="#f8cecc", color="#b85450"];
                node_4 [label="4. Обработки и отчеты\n\n• Отчет «Остатки»\n• Отчет «Рейтинг менеджеров»\n• Отчет «Контроль цен»", fillcolor="#d5e8d4", color="#82b366"];

                // Связи
                node_1 -> node_2 [label="Ссылки"];
                node_2 -> node_3 [label="Движения"];
                node_1 -> node_4 [label="Данные", style=dashed];
                node_3 -> node_4 [label="Данные", style=dashed];
            }
            `;

            // Отрисовка первой схемы
            viz.renderSVGElement(dot1).then(element => {
                document.getElementById('diagram1').appendChild(element);
            });

            // Отрисовка второй схемы
            viz.renderSVGElement(dot2).then(element => {
                document.getElementById('diagram2').appendChild(element);
            });
        });
    </script>
</body>
</html>