Как организовать демо-базу 1С для клиентов с автоматическим откатом?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Разберем классическую задачу разработчиков и интеграторов 1С: как предоставить потенциальному клиенту возможность протестировать конфигурацию или расширение, не рискуя при этом безопасностью системы и сохранностью данных. Клиент должен иметь возможность перейти по ссылке, безопасно "покликать" документы, а после его ухода база должна автоматически вернуться в исходное чистое состояние.

Проанализируем основные требования к такому демо-стенду:

  1. Доступ по клику на веб-ссылку (без установки платформы 1С на компьютер клиента).
  2. Автоматическое восстановление базы до первоначального эталонного состояния.
  3. Изоляция пользователя: запрет на вход в Конфигуратор и отсутствие доступа к файловой системе сервера.
  4. Защита интеллектуальной собственности (алгоритмов, кода, структуры).

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

Вариант 1. Использование облачного сервиса 1С:ГРМ

Посмотрим на самое простое решение, которое не требует глубоких знаний в системном администрировании. Сервис 1С:Готовое рабочее место (1С:ГРМ) позволяет партнерам фирмы 1С размещать собственные конфигурации и предоставлять к ним доступ потенциальным покупателям.

Разберем по шагам, как это работает:

  1. Вы выгружаете эталонную базу вашей разработки в виде файла выгрузки .dt.
  2. Создаете новую информационную базу в панели управления 1С:ГРМ и загружаете туда этот образ.
  3. Регистрируете клиента в системе (обычно по ИНН) и выдаете ему веб-ссылку для доступа.
  4. Для каждого нового клиента предоставляется тестовый период (обычно две недели), в течение которого доступ не тарифицируется.

Этот способ снимает с вас необходимость настраивать веб-серверы и планировщики задач, однако он доступен только официальным партнерам 1С и требует оплаты за рабочие места при коммерческом использовании.

Вариант 2. Самостоятельная публикация на веб-сервере и ограничение прав

Если вы хотите полностью контролировать процесс и избежать абонентской платы за облачные сервисы, рассмотрим вариант с арендой виртуального сервера (VPS/VDS). Сначала решим проблему ограничения доступа: пользователи не должны попадать в Конфигуратор.

Для этого мы организуем доступ исключительно через браузер (веб-клиент). Установим на сервере веб-сервер (например, Apache или IIS) и опубликуем там нашу информационную базу.

Особенности веб-публикации для демо-доступа:

  1. Веб-клиент 1С физически не поддерживает режим Конфигуратора. Если пользователь переходит по ссылке http://ваш-сервер/demo/, он попадает только в пользовательский режим (1С:Предприятие).
  2. Для демо-пользователя необходимо создать профиль групп доступа, который не включает роли ПолныеПрава и Администрирование. Это предотвратит запуск потенциально опасных обработок или попытки выгрузить информационную базу.
  3. В настройках публикации (файл default.vrd) можно жестко прописать логин и пароль демо-пользователя, чтобы клиенту даже не приходилось вводить их при входе.

Вариант 3. Автоматический откат базы с помощью скриптов (Планировщик задач)

Проанализируем задачу возврата базы к начальному состоянию после того, как клиент ввел тестовые документы и нарушил целостность демо-примера. Самый надежный классический метод — перезапись базы из эталонного файла .dt по расписанию.

Напишем пакетный скрипт, который будет выполняться операционной системой (через Windows Task Scheduler или cron в Linux) каждую ночь или раз в несколько часов. Для этого используем консольную утилиту конфигуратора. В современных версиях платформы также можно использовать утилиту ibcmd.

Пример логики такого скрипта:

  1. Принудительно завершить все активные сеансы пользователей на сервере 1С.
  2. Запустить конфигуратор в пакетном режиме с ключом /RestoreIB или использовать ibcmd infobase restore.
  3. Указать путь к эталонному файлу выгрузки и выполнить загрузку поверх "испорченной" базы.

Такой подход гарантирует, что каждое утро ваши новые клиенты будут видеть чистую, корректно настроенную систему.

Вариант 4. Современный подход: Docker-контейнеры и CI/CD

Разберем более продвинутый уровень организации демо-стендов, который сейчас является стандартом в IT-индустрии — использование контейнеризации. Вместо того чтобы долго и мучительно восстанавливать тяжелую базу из бэкапа, мы можем мгновенно пересоздавать всю рабочую среду.

Посмотрим на процесс с использованием Docker:

  1. Создается эталонный образ Docker (Image), в который "зашит" Linux, установленный сервер 1С, веб-сервер Apache и развернутая чистая файловая база с вашими доработками.
  2. Когда клиент запрашивает демо-доступ, система запускает новый контейнер из этого образа. Запуск занимает секунды.
  3. Клиент работает в изолированной среде. Все изменения происходят только внутри запущенного контейнера.
  4. По окончании сеанса (или по истечении времени) контейнер просто уничтожается (команда docker rm -f). Исходный эталонный образ остается нетронутым.

Для автоматизации обновления самой конфигурации внутри демо-стенда настраивают CI/CD конвейеры (например, GitLab CI). Как только вы вносите правки в свой код и выпускаете новый релиз продукта, система автоматически собирает новый Docker-образ. Таким образом, клиенты всегда видят самую актуальную версию программы.

Вариант 5. Защита интеллектуальной собственности

Выясним причину частых опасений разработчиков: при предоставлении полного доступа (даже в веб-клиенте) конкуренты могут проанализировать интерфейс, а в худшем случае — найти способ выгрузить алгоритмы. Скрыть интерфейс практически невозможно, однако мы можем защитить саму бизнес-логику.

Рассмотрим способы защиты исходного кода:

  1. Обфускация (запутывание) кода. Использование специальных программ, которые превращают читаемый код 1С в нечитаемый набор символов. Даже если злоумышленник получит доступ к модулю, он не сможет понять алгоритм.
  2. Системы лицензирования (например, 1С:СЛК). Вынесение ключевых процедур и функций в защищенные внешние компоненты. Без аппаратного или программного ключа защиты код в демо-базе (или при попытке его украсть) просто не будет функционировать.
  3. Поставка без исходных текстов. При сборке конфигурации используйте возможность платформы сохранять модули без исходного текста. Это стандартная функция поставки конфигурации.

Используя комбинацию веб-публикации, автоматического отката (через скрипты или Docker) и защиты модулей, вы создадите стабильный, безопасный и презентабельный демо-стенд, который будет работать на вас 24/7 без ручного вмешательства.

← На главную