Разберем классическую задачу разработчиков и интеграторов 1С: как предоставить потенциальному клиенту возможность протестировать конфигурацию или расширение, не рискуя при этом безопасностью системы и сохранностью данных. Клиент должен иметь возможность перейти по ссылке, безопасно "покликать" документы, а после его ухода база должна автоматически вернуться в исходное чистое состояние.
Проанализируем основные требования к такому демо-стенду:
Рассмотрим подробнее каждый из возможных вариантов реализации, от простых облачных сервисов до самостоятельной настройки сервера.
Посмотрим на самое простое решение, которое не требует глубоких знаний в системном администрировании. Сервис 1С:Готовое рабочее место (1С:ГРМ) позволяет партнерам фирмы 1С размещать собственные конфигурации и предоставлять к ним доступ потенциальным покупателям.
Разберем по шагам, как это работает:
.dt.Этот способ снимает с вас необходимость настраивать веб-серверы и планировщики задач, однако он доступен только официальным партнерам 1С и требует оплаты за рабочие места при коммерческом использовании.
Если вы хотите полностью контролировать процесс и избежать абонентской платы за облачные сервисы, рассмотрим вариант с арендой виртуального сервера (VPS/VDS). Сначала решим проблему ограничения доступа: пользователи не должны попадать в Конфигуратор.
Для этого мы организуем доступ исключительно через браузер (веб-клиент). Установим на сервере веб-сервер (например, Apache или IIS) и опубликуем там нашу информационную базу.
Особенности веб-публикации для демо-доступа:
http://ваш-сервер/demo/, он попадает только в пользовательский режим (1С:Предприятие).ПолныеПрава и Администрирование. Это предотвратит запуск потенциально опасных обработок или попытки выгрузить информационную базу.default.vrd) можно жестко прописать логин и пароль демо-пользователя, чтобы клиенту даже не приходилось вводить их при входе.Проанализируем задачу возврата базы к начальному состоянию после того, как клиент ввел тестовые документы и нарушил целостность демо-примера. Самый надежный классический метод — перезапись базы из эталонного файла .dt по расписанию.
Напишем пакетный скрипт, который будет выполняться операционной системой (через Windows Task Scheduler или cron в Linux) каждую ночь или раз в несколько часов. Для этого используем консольную утилиту конфигуратора. В современных версиях платформы также можно использовать утилиту ibcmd.
Пример логики такого скрипта:
/RestoreIB или использовать ibcmd infobase restore.Такой подход гарантирует, что каждое утро ваши новые клиенты будут видеть чистую, корректно настроенную систему.
Разберем более продвинутый уровень организации демо-стендов, который сейчас является стандартом в IT-индустрии — использование контейнеризации. Вместо того чтобы долго и мучительно восстанавливать тяжелую базу из бэкапа, мы можем мгновенно пересоздавать всю рабочую среду.
Посмотрим на процесс с использованием Docker:
docker rm -f). Исходный эталонный образ остается нетронутым.Для автоматизации обновления самой конфигурации внутри демо-стенда настраивают CI/CD конвейеры (например, GitLab CI). Как только вы вносите правки в свой код и выпускаете новый релиз продукта, система автоматически собирает новый Docker-образ. Таким образом, клиенты всегда видят самую актуальную версию программы.
Выясним причину частых опасений разработчиков: при предоставлении полного доступа (даже в веб-клиенте) конкуренты могут проанализировать интерфейс, а в худшем случае — найти способ выгрузить алгоритмы. Скрыть интерфейс практически невозможно, однако мы можем защитить саму бизнес-логику.
Рассмотрим способы защиты исходного кода:
Используя комбинацию веб-публикации, автоматического отката (через скрипты или Docker) и защиты модулей, вы создадите стабильный, безопасный и презентабельный демо-стенд, который будет работать на вас 24/7 без ручного вмешательства.