Альтернативная Консоль администрирования сервера 1С 8.3

Первый прототип web-приложения для администрирования серверов 1С через api сервера администрирования.
В настоящий момент это демонстрация технологии и поиск оптимальных алгоритмов, а не готовое для использования решение.
В перспективе хотелось бы позиционировать как полноценную замену стандартной консоли администрирования.

Преимущества

  1. Единый интерфейс для администрирования серверов 1С любых версий 8.3.
  2. Работа через web в любых браузерах, на любых устройствах и ОС.
  3. Возможность расширения функционала в пределах существующего API.

Принципиальная схема работы

Получается этакая матрешка, но тестовый период показывает высокую стабильность работы.

Можно было бы, конечно, все написать на JAVA, но моего текущего уровня недостаточно на создания JAVA веб-приложения.

Поэтому существующий «Программный Java-интерфейс для административного сервера» был сконвертирован в .NET библиотеку с помощью IKVM.NET. А полученная библиотека уже использована при создании стандартного asp.net приложения.

Для чего опубликовано сырое решение?

Конечная цель — создать продукт, полезный массовому пользователю. К сожалению, времени для полностью единоличной работы над проектом у меня недостаточно, поэтому, если идея интересна сообществу — хотелось бы довести его до ума усилиями желающих по стандартной opensource схеме без преследования коммерческого интереса.

Исходные коды

Актуальная версия доступна на github — https://github.com/alekseybochkov/WebRAS/

Для работы с исходными кодами требуется Visual Studio 2025 с поддержкой Visual Basic (Visual Studio 2025 Community Edition бесплатна!).

Опубликовано по лицензии GNU GPL — https://ru.wikipedia.org/wiki/GNU_General_Public_License

Любые привнесенные улучшения в код должны быть опубликованы в открытый доступ.

Исходники на github не содержат сторонних библиотек, необходимых для работы.
Полный архив с исходниками и библиотеками можно скачать под этой публикацией, либо на github в списке релизов.

Что можно сделать в перспективе, кроме стандарных функций консоли администрирования

  1. Групповые процедуры — например, установка блокировки на ряд баз, создание нескольких баз и т.д. и т.п.
  2. Создание ролевой модели и разделение прав на функции (например, доступ только к определенным базам, или только просмотр без внесения изменений, …)
  3. API для выполнения каких-либо задач из внешних приложений путем отправки HTTP-запросов в JSON-формате.

Установка RAS-сервера администрирования

 Сервер администрирования (Remote Administrative Server / RAS) должен быть установлен отдельно для каждого существующего сервера приложений 1С. Версии сервера приложений и сервера администрирования должны совпадать.

Для установки RAS-сервера в качестве службы можно использовать следующую команду:

sc create "1C:Enterprise 8.3.6.2299 RAS (1545)" binpath=""C:Program Files1cv88.3.6.2299in
as.exe" cluster
--service --port=1545 localhost:1540" displayname="1C:Enterprise 8.3.6.2299 RAS (1545)"

Хранение пользовательских данных

1) Не конфиденциальные данные (все, что не касается паролей) сохраняются на сервере в файлах типа «/App_Data/{USER-ID}.json», где USER-ID — уникальный доменный идентификатор пользователя Windows.

2) Конфиденциальные данные сохраняются в браузере пользователя в cookies в шифрованном виде.

Несколько скриншотов из интерфейса

Основное окно с деревом администрируемых серверов и выводимой информацией.

Открытие карточки ИБ из списка:

14 Comments

  1. artbear

    (0) Интересно.

    >Опубликовано по лицензии GNU GPL — https://ru.wikipedia.org/wiki/GNU_General_Public_License

    Рекомендую положить в репозитарий на Гитхаб файл этой лицензии для решения вопросов «по стандартной opensource схеме без преследования коммерческого интереса.»

    Reply
  2. Aleksey.Bochkov

    (1) artbear,

    Спасибо, добавил.

    Reply
  3. Evil Beaver

    Заплюсовал. Интересно!

    Reply
  4. Evil Beaver

    (0) А что конкретно в ней сырое и недоделанное? Что нужно доделать для более-менее приемлемого использования?

    Reply
  5. minimajack

    (4) Evil Beaver, переписать все на джава — убрать все лишнее.

    Reply
  6. Evil Beaver

    (5) minimajack, ну это как вариант. Но если переписать на JAVA, то отсутствующая функциональность не появится же, верно? Я спрашиваю, чего не хватает с точки зрения пользователя.

    Reply
  7. minimajack

    (6) Evil Beaver, на некоторых кнопочках написано «(не работает)» …по идее как раз то и значит

    Reply
  8. Aleksey.Bochkov

    (1), (3) — отлично, тогда буду допиливать постепенно на выходных.

    (4) Проще сказать что есть, чем чего нет :).

    Пока только можно:

    — посмотреть список сессий и убивать их по одной.

    — посмотреть список соединений и процессов

    — посмотреть список баз и открыть ее карточку.

    Надо доделать весь основной функционал консоли 1С:

    — создание и редактирование баз

    — групповое удаление сеансов

    — добавлениеудалениередактирование серверов, кластеров

    и т.д. и т.п.

    Хотя я уже и в таком виде вполне активно использую.

    (6) На JAVA надо будет проделать точно такую же работу — написать весь интерфейс. 1С предоставляет только API к серверу администрирования в виде JAVA библиотек.

    Reply
  9. Dragonim

    Не мог бы уважаемый автор описать отличие данной разработки от существующей консоли администрирования 1С.

    Reply
  10. Aleksey.Bochkov

    (9) Dragonim,

    В самом начале под заголовком «Преимущества».

    Reply
  11. Dragonim

    (10)

    1. Не понял про единый интерфейс. У 1С разве интерфейс отличается от версии к версии (в рамках 8.3)?

    2. Стандартную консоль надо поставить на компьютер с windows и зарегистрировать, а вашем случае необходимо поднять веб сервер?

    3. API это хорошо, но где бы прочитать его функциональность и возможность?

    Reply
  12. I_G_O_R
    Поэтому существующий «Программный Java-интерфейс для административного сервера» был сконвертирован в .NET библиотеку с помощью IKVM.NET.

    А лицензии при этом не нарушаются? Я так понимаю, конвертация предполагает декомпиляцию…

    Reply
  13. _evgen_b

    Для создания службы предлагается такой код:

    sc create «1C:Enterprise 8.3.6.2299 RAS (1545)» binpath=»»C:Program Files1cv88.3.6.2299in
    as.exe» cluster
    —service —port=1545 localhost:1540″ displayname=»1C:Enterprise 8.3.6.2299 RAS (1545)»

    У меня получилось создать службу только после убирания кавычек и добавления пробелов:

    sc create «1C:Enterprise 8.3.6.2299 RAS (1545)» binpath= «C:Program Files1cv88.3.6.2299in
    as.exe cluster
    —service —port=1545 localhost:1540» displayname= «1C:Enterprise 8.3.6.2299 RAS (1545)»

    Но это скорее к вопросу возможности копипасты кода.

    Reply
  14. ametjan

    Вот такая ошибка, можете подсказать что делать?

    Строка 28: <compilation debug=»true» targetFramework=»4.5″>

    Строка 29: <assemblies>

    Строка 30: <add assembly=»System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91″ />

    Строка 31: </assemblies>

    Строка 32: </compilation>

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *