Кроссплатформенный программный комплекс, состоящий из:
- Сервер - управляющее приложение с веб-интерфейсом, необходимое для конфигурации действий, выполняемых агентом
- Агент - приложение, непосредственно осуществляющее обслуживание и мониторинг сервера.
Система автоматически находит установленные экземпляры платформ 1С,
запущенные агенты серверов, определяет адреса, порты, запущенные для агентов экземпляры RAS, подгружает на сервер и обновляет списки кластеров и информационных баз.
Если экземпляр RAS не найден в списке служб (демонов), то система автоматически запустит экземпляры RAS для обеспечения собственной работы.

Шаблонизация и автоматизация запуска последовательности действий обслуживания произвольного количества информационных баз посредством графической блок-схемы.
Блок-схема обслуживания ИБ имеет 2 возможных типа блоков:
- Простой шаг
- Шаг с обработкой исключения
Доступные типы шагов:
- Блокировка соединений - блокировка соединений с ИБ
- Закрытие соединений - закрытие соединений с ИБ
- Разблокировка соединений - разблокировка соединений к ИБ
- Загрузка расширения - загрузка расширения из CFE файла или из указанного хранилища конфигурации
- Удаление расширения - удаление расширения из ИБ по имени (по регулярному выражению)
- Обновление конфигурации - обновление ИБ файлом CFU
- Загрузка конфигурации - загрузка конфигурации из CF файла или из указанного хранилища конфигурации
- Запуск внешней обработки - выполнение запуска внешней обработки в пакетном режиме запуска клиента 1С (Execute)
- Выполнение скрипта (OneScript) - запуск выполнения скрипта из ospx пакета
Задачи, в которых присутствует шаг с загрузкой в целевую ИБ конфигурации или расширения из хранилища, доступен к изменению флаг
"Запускать задачу по шаблону при обнаружении новой версии в хранилище". При очередном обнаружении хранилищ и последних версий в них,
система автоматически проверяет и находит шаблоны задач, где участвует хранилище, с установленным флагом и запускает задачи на их основе, с автоподстановкой версии из хранилища.
При этом, шаблон должен быть полностью подготовлен к запуску, т.е. в нем должны быть заполнены все обязательные реквизиты, необходимые для задачи.
_20250812_105302.mp4
Платформа 1С позволяет использовать сервис регистрации ошибок для автоматической фиксации исключительных ситуаций, произошедших как на клиенте, так и на сервере.
В программном комплексе реализован интерфейс этого сервиса, позволяющий принимать и просматривать поступившие из информационных баз
отчеты об ошибках. Доступен просмотр информации о клиенте, сервере, описании ошибки, стеке вызова и скриншоте.
В настройках обработки ошибок 1С необходимо указывать адрес по шаблону:
{URL}/api/ErrorLoggingService
Пример:
http://localhost:7002/api/ErrorLoggingService

Автоматизация сбора и экспорта технологического журнала. Центральными понятиями системы являются:
- Шаблоны сбора ТЖ - шаблоны файла logcfg.xml
- Сеансы сбора - непосредственное описание режима сбора, подключенных к сеансу агентов и шаблонов сбора ТЖ.
Доступные режимы сбора ТЖ:
- Запуск после создания - запуск сеанса сбора журнала сразу после создания элемента в веб панели. Необходимо указать длительность сбора данных в минутах.
- Мониторинг - режим сбора, не имеющий временных границ сбора журнала. Предназначен для шаблонов постоянного мониторинга
- Планирование - отложенный запуск сбора. Необходимо указать период начала и длительность в минутах
Режимы, имеющие временные границы будут автоматически завершены, ручных действий не требуется. Устаревшие каталоги сбора и файлы ТЖ так-же будут автоматически очищены системой.
Система поставляется с небольшим, предопределенным списком шаблонов сбора ТЖ
СУБД, доступные для экспорта:
- ClickHouse

Автоматизация сбора и экспорта журнала регистрации 1С. Настройка базы данных экспорта аналогична настройке базы данных для технологического журнала. Доступен отбор журналов информационных к экспорту по регулярному выражению имени информационной базы
СУБД, доступные для экспорта:
- ClickHouse
Позволяет осуществлять экспорт исходных кодов конфигураций и расширений из хранилищ в git репозиторий. Задачи экспорта позволяют конфигурировать выгрузку нескольких хранилищ в один репозиторий. Функции экспорта задействуют механизмы:
- Пакетный режим конфигуратора - для доступа к информации о версиях в хранилище, обновление основной конфигурации версией из хранилища
- ibcmd - выгрузка конфигурации в xml файлы
Для осуществления экспорта, необходимо:
- Сопоставить пользователей хранилища пользователям git
- Добавить токен для доступа к удаленному репозиторию в панели "Учетные данные и токены"
- Добавить удаленный репозиторий, заполнить обязательные реквизиты
- Сконфигурировать задачу синхронизации в панели "Репозитории Git"
Предоставляет возможность публикации хранилищ конфигураций, переопределения адресов и добавления обработчиков некоторых запросов от конфигуратора к хранилищу. OneSwiss заменяет собой публикацию серверов хранилищ на вебсерверах IIS и Apache, принимая запросы от клиентов по http протоколу и преобразуя запросы в tcp поток, переотправляет их целевому серверу хранилищ. Для включения проксирования хранилища конфигурации, необходимо сконфигурировать публикации хранилищ в панели настроек, указав хранилище и часть пути, по которому будет опубликовано хранилище. Конечный адрес публикации будет формироваться по правилу:
{АДРЕС_ONESWISS}/cr/{АДРЕС_ПУБЛИКАЦИИ}
Пример для публикации с адресом erp/extensions/myext:
http://localhost:7002/cr/erp/extensions/myext
Так-же прокси позволяет сконфигурировать пользовательские обработчики запросов на языке сценариев OneScript. Пользовательский обработчик - это .ospx пакет, загружаемый файлом в панели управления файлами OneSwiss. Обязательными атрибутами (для исполнения в среде OneSwiss) которого, являются:
- Указание в packagedef пути к исполняемому файлу
- Наличие одного из возможных обработчиков:
Для возможности переиспользования пользовательских обработчиков для разных хранилищ, добавлена возможность указания аргументов обработчиков для конкретных публикаций, представляющих из себя список пар Ключ/Значение и передающихся в скрипт через объект контекста обработчика, в свойстве ДополнительныеПараметры
Для обеспечения более удобного процесса, был реализован механизм отладки скриптов обработчиков. Для начала отладки необходимо:
- В панели управления обработчиками установить флаг Режим отладки, указать полный путь к исполняемому файлу opsx пакета и привязать обработчик к публикации
- Сконфигурировать attach отладки к серверу отладки OneScript, который поднимет OneSwiss на порту 2801. Пример launch файла VSCode:
{
"version": "0.2.0",
"configurations": [
{
"name": "Отладка 1Script",
"type": "oscript",
"request": "attach",
"debugPort": 2801
}
]
}
- Вызвать в конфигураторе желаемое событие, при этом конфигуратор "зафризится" в ожидании подключения клиента отладки (VSC)
- Перейди в VSC, установить точку останова в желаемом месте и нажать F5 для подключения отладчика
Обработчик помещения изменений в хранилище:
Процедура ОбработатьПомещениеИзменений(КонтекстОбработчика) Экспорт
КонецПроцедуры
Обработчик помещения изменений в хранилище:
Процедура ОбработатьИзменениеВерсии(КонтекстОбработчика) Экспорт
КонецПроцедуры
КонтекстОбработчика - объект интеграции, предоставляемый OneSwiss для работы с потоком запросов конфигуратора.
Актуальный список свойств можно посмотреть в классе контекста - RequestHandlerWrapper.cs
Контекст имеет 2 основных метода для взаимодействия с потоком запросов:
- ПередатьЗапрос - передать запрос от конфигуратора к хранилищу
- ВызватьИсключение - отправить ответ конфигуратору с текстом исключения, вместо передачи запроса серверу хранилищ
Реализована система уведомлений о результатах выполнения задач обслуживания и поступивших отчетах об ошибках. Доступные каналы уведомлений:
- Бот Telegram
- WebHook
В комплексе реализовано автоматическое обнаружение необходимых для обеспечения собственной работы служб и приложений на хостах агентов:
- Агентов серверов 1С (ragent)
- Служб удаленного администрирования (RAS)
- Установленных платформ 1С:Предприятие
- Служб серверов хранилищ конфигураций
Найденные ресурсы комплекс использует для обнаружения и автоматической регистрации следующих сущностей на собственном сервере:
- Кластеры 1С
- Информационные базы
- Хранилища конфигураций
Является центральным звеном программного комплекса, осуществляет управление работой агентов, установленных на серверах 1С.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1AndHttp2"
}
},
"Http": {
"Host": "0.0.0.0",
"Port": 7002
},
"Auth": {
"RequireClientsAuthentication": "false",
"Mode": "Internal",
"OIDC": {
"Authority": "https://my.company.com/realms/master",
"ClientId": "oneswiss",
"ClientSecret": "13214324543fdsfdsvdsv3213",
"Scopes": [
"profile",
"oidc"
],
"NameClaim": "preferred_username",
"DisplayNameClaim": "name"
}
},
"ProxyAddress": "10.10.0.1"
}
Где:
- Http
- Host - адрес веб-панели управления сервером
- Port - порт
- Auth
- RequireClientsAuthentication - флаг необходимости выполнения аутентификации подключающихся агентов
- Mode - Internal или Mixed. Только внутренняя или внутренняя + OIDC аутентификация
- OIDC
- Authority - адрес провайдера аутентификации
- ClientId - идентификатор клиента аутентификации
- ClientSecret - секрет клиента аутентификации
- Scopes - список областей, получаемых клиентом
- NameClaim - имя утверждения, значение которого будет использовано в качестве логина. По умолчанию - preferred_username
- DisplayNameClaim - имя утверждения с отображаемым именем пользователя. По умолчанию - name
- ProxyAddress - IP пограничного прокси сервера
Устанавливается непосредственно на сервера 1С.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"InstanceName": "",
"Server": "wss://oneswiss.company.domain",
"Auth": {
"Required": "true",
"TokensEndpoint": "https://sso.company.domain/protocol/openid-connect/token",
"ClientId": "oneswiss",
"ClientSecret": "fdsnjfdifo54343r43jnd"
},
"TechLogFolder": "",
"GitSyncFolder" : "",
"V8": {
"PlatformPaths": [
]
}
}
Где:
- InstanceName - наименование агента, отображаемое в панели управления серверной части. Если не задано - то hostname
- Server - адрес и порт, по которым агент будет стучаться к серверной части. Если сервер опубликован по https, то для доступа агентов необходимо использовать wss, а не ws
- Auth
- Required - флаг необходимости получения и использования jwt токена для аутентификации агента при подключении к серверу oneswiss
- TokensEndpoint - адрес конечной точки издателя токенов аутентификации
- ClientId - идентификатор клиента
- ClientSecret - сервер клиента
- PlatformPaths - дополнительные пути, если платформы установлены не в каталогах установки платформы 1С по умолчанию
- TechLogFolder - служебный каталог сбора технологического журнала, используемый в работе подсистемы сеансов сбора ТЖ.
Если не указан, то используется стандартный путь:
- Windows - %PROGRAMDATA%/oneswiss/techlog
- Linux - /var/log/oneswiss/techlog
- GitSyncFolder - служебный каталог синхронизатора хранилищ и Git. Если не указан, то используется стандартный путь - {КАТАЛОГ_АГЕНТА}/repos
Для обеспечения корректного перенаправления и использования схемы, на прокси-сервере необходимо устанавливать следующие заголовки:
- X-MS-Proxy - адрес прокси сервера
- X-Forwarded-For - адрес и порт удаленной точки подключения
- X-Forwarded-Proto - испольуемая схема
Условный пример:
X-Ms-Proxy: 10.10.0.1
X-Forwarded-For: {remote_host}
X-Forwarded-Proto: https
Так-же в файле конфигурации сервера oneswiss обязательно требуется указание адреса пограничного прокси-сервера в параметре ProxyAddress