Инструменты пользователя

Инструменты сайта


odg_assist_5.0:администрирование_odg

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
odg_assist_5.0:администрирование_odg [2026/09/14 14:12] – [3.5. Практические правила работы в редакторе] sofiaodg_assist_5.0:администрирование_odg [2026/10/05 13:50] (текущий) – [Отправка оповещений о новых задачах.] denis
Строка 1: Строка 1:
-====== Функциональные характеристики ПО “OdgAssist” ====== 
  
-**Общая информация** 
  
-Программное обеспечение OdgAssist (EQMS) предназначено для автоматизации и управления документацией в области качества.  Под документацией понимаются: 
  
-  * бумажные документы – заполняемые формы, бумажные журналы;  
-  * электронные текстовые документы – инструкции, процедуры и т.д;  
-  * электронные документы с функцией контроля – отклонения, изменения, CAPA и т.д.  
-  * 
  
-Основная задача, которую решает odgAssist: контроль за правильной реализацией всех процессов, обеспечение актуальности информации и контроль за исполнением. 
  
-**Минимальный системные требования для программного комплекса odgAssist**+====== Настройка приложения ======
  
-**Требования к аппаратному обеспечению сервера:**+Перейдите по ссылке: \\
  
-| **Параметры сервера/количество пользователей** | **50-100** | **100 -200** | **250-350** | **500** | +<code -> 
-| **Количество потоков** |  4  |  8  |  12  |  16  | +http://ip_адрес_сервера:9090/app  
-| **Тактовая частота процессора ( ГГц)** | От 2,2 | От 2,1 | От 2,4 | От 2,6 | +</code>
-| **Платформа** | 64x разрядная  | 64x разрядная  | 64x разрядная  | 64x разрядная  | +
-| **Оперативная память (ГБ)** | 12 | 16 | 24 | 32 | +
-| **Дисковое пространство** | 250Гб | 500Гб | 1Тб | 1Тб |+
  
-Рекомендовано использование RAID для обеспечения резервирования и повышения производительности базы данных.+Отобразится форма авторизации:
  
-**Требования к программному обеспечению сервера:**+{{:odg_assist_5.0:pasted:20230302-143823.png?400}}
  
-  * Операционная система: Linux Ubuntu  18.04 | 20.04 | 22.04 | 24.04 +Войдите в систему. Логин admin, пароль: admin.
-  * Сервер базы данных: Postgresql 10 + +
-  * Виртуальная машина: Open JDK 8 + +
-  * WEB сервер: Nginx 1.14.0  + +
-  * Менеджер управления процессами: SuperVisor +
-  * Интерпретатор языка Python: Python 2.7.15++
  
-**Минимальные требования к программно-аппаратному обеспечению рабочей станции пользователя:**+Для работы приложения требуется добавить лицензионный ключ. \\  Нажмите пункт меню "Администрирование", подпункт "Свойства приложения". \\  В фильтре поиска вставьте имя ru.licen.
  
-  * Процессор: 2ГГц +{{:odg_assist_5.0:pasted:20230302-132816.png?800}}
-  * Оперативная память 4ГБ +
-  * Жесткий диск (SATA): 50Гб +
-  * Операционная система: Windows 8/10 +
-  * Браузер: Google Chrome 87.0.4280.141 + +
-  * Microsoft Office: Word, Excell  2010 ++
  
-+  допустима версия ПО выше указанной+Щелкните дважды по записи и введите ключ в открывшуюся форму:
  
-Для обслуживания сервера сотрудниками исполнителя к нему необходим прямой доступ по ssh.  Сервер должен иметь доступ в интернет.+<code -> 
 +KEN9fFDUMzufuFgpI2EzCCyHkjdwT93wMC1LXu7MYRAX5JeyZL6J08fNXVtLdM+pqefODyp5tO7wYo40oI7Ovp9cZ8IAOSbXquJl0QNV5XphS0F1IaFNV/8NFBpK9xOAW/Aye04okELab+cqZXP7Gkrc3wiCQ7NnlOtx6tIDiYU= 
 +</code>
  
-====== Установка odgassist 5.0 ======+{{:odg_assist_5.0:pasted:20230302-133531.png?400}}
  
-Установить приложение можно вручную или автоматически.+Добавить ключ, кол-во конкурентных пользователей: \\
  
-===== Ручная установка приложения: =====+{{:odg_assist_5.0:pasted:20230616-165026.png?800}}
  
-Для работы приложения odgassist необходимы следующие программы: \\ +<code -> 
- +B8yA7lLZQCcmg9dhqChbKM6LDlzzEuZQ/yVhARRXtyIRJG6WAWULfOCFjbzKRi5Vf4Fm1qR/46+shOw1F8UPJ8cGbwlj/dA6AHzD1+9yHnWlMIuUgBj+7MYuMZcNegCK4tdvto7WC54yiwnPhGlP574Le9joq10mSZifo/kbOII=
-  * Postgres 12 и выше  +
-  * Nginx  +
-  * Supervisor  +
-  * Open jdk 8  +
-  * LibreOffice +
- +
-== Команды для установки требуемого программного обеспечения == +
- +
-Обновить и установить пакеты программного обеспечения: \\ +
- +
-<code bash> +
-sudo apt-get update &&  sudo apt-get -y upgrade;+
 </code> </code>
  
-Установить openjdk: \\+После добавления ключа необходимо перезапустить приложение через терминал сервера: \\  ''sudo supervisorctl restart cuba''
  
-<code bash> +Ознакомится с интерфейсом приложения можно перейдя по ссылке: [[https://wiki.odgassist.ru/doku.php/odg_assist_5.0:%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0#%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Описание приложения.]]
-sudo apt-get -y install openjdk-8-jdk; +
-</code>+
  
-Скачать и установить Postgres :\\+Ссылка на скачивание приложения и необходимых файлов: \\
  
-<code bash> +{{:odg_assist_5.0:app.jar|odg5}} \\
-wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -; +
-RELEASE=$(lsb_release -cs) echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list; +
-sudo apt -y install postgresql-12; +
-</code>+
  
-Добавить базу данных для odgassist: \\+{{:odg_assist_5.0:nofileonserver.docx|empty file}} \\
  
-<code sql> +{{ :odg_assist_5.0:cubaodg1.zip }}
-sudo -u postgres psql -U postgres -d postgres -c "CREATE DATABASE \"odgassist\" WITH OWNER \"postgres\" ENCODING 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' TEMPLATE template0;"; +
-sudo -u postgres psql -U postgres -d postgres -c "ALTER USER postgres PASSWORD '0000'"; +
-</code>+
  
-Установить nginx: \\+{{ :odg_assist_5.0:install.sh.gz }}
  
-<code bash> +=== Настройка после установки ===
- apt-get -y install nginx;  +
-</code>+
  
-Установить supervisor: \\ 
  
-<code bash> 
-sudo apt-get -y install supervisor; 
-</code> 
  
-Установить LibreOffice: \\+После установки проверить время сохраняемых и изменяемых сущностей. Например добавить папку и проверить время ее создания или изменения.
  
-<code bash> +==== Назначенные задания ====
- apt-get install libreoffice  +
-</code>+
  
-Добавьте пользователя runner: \\+Пункт меню "Администрирование", подпункт "Назначенные задания". \\  Подпункт меню позволяет настраивать автоматическое выполнение рутинных задач. \\  Например обработка документов, рассылка оповещений пользователям и т.д.
  
-<code -> +//**Отправка оповещений о новых задачах.**//
-sudo useradd -m -p $(openssl rand -base64 12) runner  +
-</code>+
  
-Добавьте необходимые директории для работы приложения odgassist: \\+<color brown> Описание: </color> \\  После активации каждой задачи на нее назначается исполнитель. Исполнитель добавляется в список для рассылки оповещений о новых задачах. Рассылка осуществляется всем пользователям из списка каждые 60 секунд.
  
-<code bash> +<color brown>Настройка: </color> \\
-sudo mkdir /srv/templates && chmod 777 /srv/templates; +
-sudo mkdir /srv/assist && chmod 777 /srv/assist; +
-sudo mkdir /srv/assist/export && chmod 777 /srv/assist/export; +
-sudo mkdir /srv/assist/html && chmod 777 /srv/assist/html; +
-sudo mkdir /home/dumps && chmod 777 /home/dumps; +
-sudo mkdir /etc/ssl/cuba && mkdir /etc/ssl/odg; +
-sudo mkdir /home/runner/cuba && chown runner:runner /home/runner/cuba; +
-</code>+
  
-Скачайте необходимые файлы для работы приложения odgassist: \\+Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы: \\  Defined By: ''Bean'' \\  Bean Name: ''cuba_Emailer'' \\  Method Nmae: ''processQueuedEmails()'' \\  Sheduling Type: ''Period'' \\  Cron Expression: ''60'' \\  Singleton: ''V''
  
-<code bash> +{{:odg_assist_5.0:pasted:20230419-141932.png?800}}
-wget https://wiki.odgassist.ru/lib/exe/fetch.php/odg_assist_5.0:app.jar +
-; +
-mv odg_assist_5.0:app.jar /home/runner/cuba/app.jar && chown runner:runner /home/runner/cuba/app.jar && chmod +x /home/runner/cuba/app.jar; +
-wget wget https://wiki.odgassist.ru/lib/exe/fetch.php/odg_assist_5.0:nofileonserver.docx && mv odg_assist_5.0:nofileonserver.docx /srv/assist/nofileonserver.docx && chown runner:runner /srv/assist/nofileonserver.docx ; +
-chown runner:runner /srv/assist/nofileonserver.docx; +
-</code>+
  
-Добавьте в конфигурацию supervisor  файл /etc/supervisor/conf.d/cubaodg.conf:+Пример содержимого письма: \\  {{:odg_assist_5.0:pasted:20230419-142535.png?800}}
  
-<code bash> +//**Отправка оповещений назначенным по задачам**//
-[program:cuba] +
-command=java -Xms1G -Xmx3G -jar app.jar -port 9090 +
-directory=/home/runner/cuba +
-stdout_logfile=/var/log/supervisor/cuba.log +
-stderr_logfile=/var/log/supervisor/cuba.log +
-autostart=true +
-user=runner +
-</code>+
  
-Обновите конфигурацию supervisor: \\+<color brown> Описание: </color> \\  Если у пользователя нет просроченных задач, то ему отправляется весь список задач каждый понедельник. \\  Если есть просроченные задачи или задачи близкие к крайнему сроку, то оповещения отправляются каждое утро в 9:00.
  
-<code bash> +<color brown>Настройка: </color> \\  Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы: \\  Defined By: ''Bean'' \\  Bean Name: ''odgassist5_TasksReportService'' \\  Method Nmae: ''sendTaskStatesToAllUsers'' \\  Sheduling Type: ''Cron'' \\  Cron Expression: ''0 0 9  * * *''
-sudo supervisorctl reread && sudo supervisorctl update; +
-sudo supervisorctl status; +
-</code>+
  
-Статус приложения cuba должно быть RUNNING \\+{{:odg_assist_5.0:pasted:20230419-134029.png?800}}
  
-После запуска приложения подождите 5 минут пока производится настройка базы данных. Затем переходите к следующему  [[https://wiki.odgassist.ru/doku.php/odg_assist_5.0:%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_odg#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F|этапу]]. \\+Пример содержимого письма: \\
  
-===== Установка в автоматическом режиме. =====+{{:odg_assist_5.0:pasted:20230417-133423.png?800| отображение письма оповещения}}
  
- \\  Будут установлены следующие пакеты: \\  -Postgres 12 -Nginx -Supervisor -Open jdk 8+**Отправка оповещений по действиям**
  
-Скачайте файл автоматической установки через терминал сервера:+<color brown> Описание: </color> \\  В список на отправку попадают отчеты:
  
-<code -> +  * крайний срок выполнения сегодня 
- wget https://wiki.odgassist.ru/lib/exe/fetch.php/odg_assist_5.0:install.sh.gz  +  * крайний срок выполнения наступит через ''ru.od.notify_before_days'' 
-</code>+  * просроченные действия
  
- \\+''ru.od.notify_before_days'' - параметр, который хранит количество дней. (Уведомить за n дней). \\  Настройка производится через пункт меню "Администрирование", подпункт "Свойства приложения". \\  В поле "Поиск по имени свойства" ввести:  ''ru.od.notify_before_days'' \\
  
-или по ссылке: {{ :odg_assist_5.0:install.sh.gz }}+{{:odg_assist_5.0:pasted:20230419-140759.png?800}}
  
-Разархивируйте документ и запустите его в терминале сервера Ubuntu: \\+<color brown>Настройка: </color> \\  Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы: \\  Bean Name: ''odgassist5_TaskReportService'' \\  Method Nmae: ''notifyUserAboutOverdueActions''
  
-''gunzip odg_assist_5.0\:install.sh.gz;'' \\  ''chmod +x odg_assist_5.0\:install.sh;'' \\  ''sudo ./odg_assist_5.0\:install.sh;'' \\+{{:odg_assist_5.0:pasted:20230419-113823.png?800}}
  
-После выполнения скрипта подождите 5 минут пока производится настройка базы данных. \\  Затем переходите к следующему этапу.+**Описание полей формы настройки "Назначенное задание":**
  
-====== Настройка приложения ====== +  * Defined by - каким программным объектом реализуется задание. Возможные значения: 
- +    * Bean - задание реализуется методом бина Spring. Дополнительные атрибуты: 
-После выполнения скрипта перейдите по ссылке: \\+    * Bean name - имя бина. Бин отображается в списке и доступен для выбора, только если он объявлен в модуле core и у него есть интерфейс, содержащий подходящие для вызова из задания методы. Бины без интерфейса не поддерживаются. 
 +  * Method name - метод интерфейса бина для выполнения. Метод должен либо не иметь параметров, либо иметь все параметры типа String. Тип результата должен быть либо void, либо String. В последнем случае результат выполнения будет сохранен в таблице выполнений (см. Log finish ниже). 
 +  * Method parameters - параметры выбранного метода. Поддерживаются только параметры типа String. 
 +  * Class - задание представляет собой класс, реализующий интерфейс java.util.concurrent.Callable. Класс должен иметь открытый конструктор без параметров. Дополнительные атрибуты: 
 +    * Class name - имя класса 
 +  * Script - задание представляет собой скрипт Groovy. Скрипт выполняется через Scripting.runGroovyScript(). Дополнительные атрибуты: 
 +    * Script name - имя скрипта. 
 +  * User name - имя пользователя, от имени которого будет выполняться задание. Если не задано, то задание будет выполнено от имени пользователя, указанного в свойстве приложения cuba.jmxUserLogin. 
 +  * Singleton - признак, является ли задание синглтоном, т.е. выполняющимся только на одном сервере системы. 
 +  * Scheduling type - способ планирования задачи: 
 +  * Cron - с помощью Cron-выражения, представляющего собой последовательность из шести полей, разделенных пробелами:  
 +    * секунда, минута, час, день, месяц, день недели. Месяц и день недели могут быть представлены первыми тремя буквами английского названия. Примеры выражений:
  
 <code -> <code ->
-http://ip_адрес_сервера:9090/app +0 0 * * * * - начало каждого часа каждого дня. 
 +*/10 * * * * * - каждые 10 секунд. 
 +0 0 8-10 * * * - в 8, 9 и 10 часов каждого дня. 
 +0 0/30 8-10 * * * - 8:00, 8:30, 9:00, 9:30 и 10 часов каждого дня. 
 +0 0 9-17 * * MON-FRI - каждый час с 9 до 17 по рабочим дням. 
 +0 0 0 7 1 ? - каждое Рождество в полночь.
 </code> </code>
  
-Отобразится форма авторизации:+  * Period - с помощью интервала между выполнениями. 
 +  * Fixed Delay - задача будет запускаться с указанной в Period задержкой после окончания предыдущего выполнения. 
 +  * Period - период или задержка запуска задания в секундах если Scheduling type установлен в Period или Fixed Delay. 
 +  * Start date - дата/время первого запуска для Scheduling type = Period. Если не установлено, то задание запускается сразу при старте сервера. Если установлено, то задание запускается в момент startDate + period * N, где N - целое число.
  
-{{:odg_assist_5.0:pasted:20230302-143823.png}}+Start date имеет смысл указывать только для "нечастых" заданий - раз в 1 час, 1 сутки и т.п.
  
-Войдите в систему. Логин admin, пароль: admin.+  * Timeout - время в секундах, по истечении которого считается, что задание закончило выполнение, независимо от того, есть ли информация о завершении задания, или нет. Если timeout не задан явно, он принимается равным 3 часам.
  
-Для работы приложения требуется добавить лицензионный ключ. \\  Нажмите пункт меню "Администрирование", подпункт "Свойства приложения". \\  В фильтре поиска вставьте имя ru.licen.+Для Singleton-задач в кластерном деплойменте рекомендуется всегда устанавливать таймаут в реалистичное значение. Если останавливается узел кластера, выполняющий задачу, то при стандартном значении другие узлы кластера будут ждать 3 часа перед тем, как запустить задачу снова.
  
-{{:odg_assist_5.0:pasted:20230302-132816.png}}+  * Time frame - в случае заданного Start date или Cron expression определяет временное окно в секундах, в течение которого будет запущено задание, если время startDate + period * N прошло. Если Time frame не задано явно, оно принимается равным period / 2.
  
-Щелкните дважды по записи и введите ключ в открывшуюся форму:+Если Start date не указано, то Time frame не принимается во внимание, т.е. задание будет запущено в любое время после прохождения промежутка времени Period после предыдущего выполнения задания.
  
-<code -> +  * Start delay - задержка выполнения в секундах после запуска сервера и активации выполнения задач. Используйте данный параметр для тяжелых задач, если вы считаете что они тормозят запуск сервера. 
-KEN9fFDUMzufuFgpI2EzCCyHkjdwT93wMC1LXu7MYRAX5JeyZL6J08fNXVtLdM+pqefODyp5tO7wYo40oI7Ovp9cZ8IAOSbXquJl0QNV5XphS0F1IaFNV/8NFBpK9xOAW/Aye04okELab+cqZXP7Gkrc3wiCQ7NnlOtx6tIDiYU= +  * Permitted servers - список перечисленных через запятую идентификаторов серверов, на которых возможен запуск данного задания. Если список не задан, то задание может выполняться на любом сервере.
-</code>+
  
-{{:odg_assist_5.0:pasted:20230302-133531.png}}+Для синглтон-заданий порядок перечисления серверов указывает их приоритет - первый имеет больший приоритет чем последний. Сервер с большим приоритетом перехватит выполнение синглтона следующим образом: если сервер с большим приоритетом обнаруживает, что предыдущий раз задание было выполнено сервером с меньшим приоритетом, то он запускает задание независимо от того, пройден ли Period или нет. Приоритет серверов работает только в случае Scheduling type равного Period и  не указанного атрибута Start date. В противном случае, старт происходит в  одно и то же время, и перехват невозможен.
  
-Добавить ключ, кол-во конкурентных пользователей: \\+  * Log start - признак регистрации факта запуска задания в таблице SYS_SCHEDULED_EXECUTION, соответствующей сущности ScheduledExecution.
  
-{{:odg_assist_5.0:pasted:20230616-165026.png}}+Если задание является синглтоном, то в текущей реализации регистрация факта запуска производится в любом случае, независимо от данного признака.
  
-<code -> +  * Log finish - признак регистрации факта завершения задания в таблице SYS_SCHEDULED_EXECUTION, соответствующей сущности ScheduledExecution.
-B8yA7lLZQCcmg9dhqChbKM6LDlzzEuZQ/yVhARRXtyIRJG6WAWULfOCFjbzKRi5Vf4Fm1qR/46+shOw1F8UPJ8cGbwlj/dA6AHzD1+9yHnWlMIuUgBj+7MYuMZcNegCK4tdvto7WC54yiwnPhGlP574Le9joq10mSZifo/kbOII= +
-</code>+
  
-После добавления ключа необходимо перезапустить приложение через терминал сервера: \\  ''sudo supervisorctl restart cuba''+Если задание является синглтоном, то в текущей реализации регистрация факта завершения производится в любом случае, независимо от данного признака.
  
-Ознакомится с интерфейсом приложения можно перейдя по ссылке: [[https://wiki.odgassist.ru/doku.php/odg_assist_5.0:%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0#%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Описание приложения.]]+  * Description - произвольное текстовое описание задания.
  
-Ссылка на скачивание приложения и необходимых файлов: \\+Задание также имеет признак активности, который устанавливается в экране списка заданий. Неактивные задания не запускаются.
  
-{{:odg_assist_5.0:app.jar|odg5}} \\ 
  
-{{:odg_assist_5.0:nofileonserver.docx|empty file}} \\ 
- 
-{{ :odg_assist_5.0:cubaodg1.zip }} 
- 
-{{ :odg_assist_5.0:install.sh.gz }} 
  
 ===== Добавление ролей ===== ===== Добавление ролей =====
  
----- 
  
 В приложении доступны два типа ролей: \\  1. **Системные роли** В приложении доступны два типа ролей: \\  1. **Системные роли**
Строка 694: Строка 628:
 Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы: \\  Defined By: ''Bean'' \\  Bean Name: ''cuba_Emailer'' \\  Method Nmae: ''processQueuedEmails()'' \\  Sheduling Type: ''Period'' \\  Cron Expression: ''60'' \\  Singleton: ''V'' Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы: \\  Defined By: ''Bean'' \\  Bean Name: ''cuba_Emailer'' \\  Method Nmae: ''processQueuedEmails()'' \\  Sheduling Type: ''Period'' \\  Cron Expression: ''60'' \\  Singleton: ''V''
  
-{{:odg_assist_5.0:pasted:20230419-141932.png}}+{{:odg_assist_5.0:pasted:20230419-141932.png?800}}
  
 Пример содержимого письма: \\  {{:odg_assist_5.0:pasted:20230419-142535.png}} Пример содержимого письма: \\  {{:odg_assist_5.0:pasted:20230419-142535.png}}
odg_assist_5.0/администрирование_odg.1789395152.txt.gz · Последнее изменение: — sofia

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki