Клиент-серверный режим 1С 8.3 для тестирования: SQL Express, порты и перенос из файловой базы

06.10.26

Разработка - Тестирование QA

Минимальный стенд Windows + SQL Server Express + сервер 1С для локального тестирования алгоритмов в клиент-серверном режиме. Разберём USR1CV8, radmin, смешанную авторизацию SQL, перенос через DT, порты и отладку по сети без веб-публикации.

Клиент-серверный режим информационной базы 1С:Предприятие 8 с SQL Server нужен не только администраторам: если вы тестируете свои алгоритмы только в файловой базе, часть ошибок всплывёт уже у заказчика на сервере. Ниже - минимальный стенд под локальное тестирование: сервер 1С, СУБД и клиент по сети, без претензий на промышленный кластер и без веб-публикации.

 

Зачем отдельный стенд под клиент-сервер

metrics: Клиент-серверный режим 1С 8.3 для тестирования: SQL Express,

Файловый и клиент-серверный режимы для разработчика не взаимозаменяемы. В файловой базе код часто крутится там, где вы привыкли его видеть в конфигураторе, а на сервере тот же модуль выполняется в другом контексте: другая учётная запись процесса, другие права на каталоги, другие ограничения на COM и файловые операции.

Классический сюрприз - DCOM. Вызов Excel.Application на сервере идёт не от вашего интерактивного пользователя, а от учётной записи агента сервера 1С (часто USR1CV8). Excel может быть не установлен для этой учётной записи, или DCOM не настроен, и алгоритм, который «открывал книгу» в файловом режиме, на сервере падает с ошибкой создания СОМ-объекта.

Вторая зона - файлы через асинхронные методы платформы. Процедуры вроде НачатьПомещениеФайлаНаСервере и НачатьПолучениеФайлаССервера завязаны на то, где реально лежит файл и кто его читает. В файловом режиме граница размыта; в клиент-серверном легко перепутать клиентский и серверный путь и получить пустой двоичный данные или отказ в доступе.

Третья зона - программная СКД. Схему компоновки данных разумно собирать на сервере (&НаСервере или &НаСервереБезКонтекста), а на клиент передавать через ПоместитьВоВременноеХранилище и ПолучитьИзВременногоХранилища. Если генерацию схемы оставить на клиенте «как в прототипе», в серверном режиме отчёт может не построиться или построится с другими отборами.

Я поднимаю упрощённый клиент-серверный стенд дома или на втором ПК в офисе именно чтобы поймать эти классы проблем до выкладки. Это не про скорость SQL и не про отказоустойчивость, а про честное тестирование алгоритма в том режиме, где у многих заказчиков живёт база.

 

Что строим и где границы инструкции

checklist: Клиент-серверный режим 1С 8.3 для тестирования: SQL Express,

Схема намеренно примитивная: один компьютер выступает сервером (служба 1С + SQL Server Express), второй (или тот же ПК для первого прогона) - клиент с тонким или толстым клиентом в одной подсети. Windows 10 Pro x64, учётная запись с правами администратора на обеих сторонах, обычная домашняя или офисная LAN.

Платформа: 1С:Предприятие 8.3, разрядность x86-64, версия из вашего проекта (в примерах ориентир 8.3.18 и новее). СУБД для статьи - Microsoft SQL Server Express 2019 или 2022 с Management Studio. Логика та же, что у старых гайдов на Express 2014: смешанная авторизация, логин sa при создании ИБ, флаг автосоздания базы в консоли кластера.

Если сознательно ставите PostgreSQL под 1С, в консоли администрирования указываете тип СУБД PostgreSQL, порт 5432 и учётную запись не sa, а пользователя PostgreSQL с правом CREATE DATABASE. Шаги службы 1С и перенос *.dt те же; меняются только параметры подключения к СУБД и правила брандмауэра для порта СУБД.

За рамками материала: публикация на IIS или Apache, веб-клиент, балансировка нескольких серверов, Always On, тонкая настройка производительности SQL. Только клиент-сервер для тестирования разработок.

На сервере после установки платформы полезно сразу понимать, где лежат служебные каталоги srvinfo, reg_* и logs, и куда положить файл *.dt перед загрузкой.

 

Сервер 1С: платформа, агент и USR1CV8

flow: Клиент-серверный режим 1С 8.3 для тестирования: SQL Express,

На машине-сервере запускаю установщик платформы 1С и отмечаю компонент «Сервер 1С:Предприятие» (и при необходимости «Консоль администрирования серверов 1С», если не ставится отдельно). Без серверного компонента не появятся служба «Агент сервера 1С:Предприятие» и рабочие процессы rphost.

На шаге про учётную запись установщик предлагает создать USR1CV8 и назначить её службе. Это нормальный выбор для «боевого» минимализма, но для тестов DCOM и доступа к локальным ресурсам USR1CV8 часто слишком бедная: не администратор, профиль может быть пустым, Office не виден.

После установки открываю сервисы.msc, нахожу «Агент сервера 1С:Предприятие», вкладка «Вход в систему». Для чистой проверки алгоритмов без возни с DCOM я иногда временно ставлю Local System или своего администратора; для проверки «как у заказчика с USR1CV8» оставляю USR1CV8 и уже под неё настраиваю COM и каталоги. Переключение учётной записи требует перезапуска службы.

Проверка: диспетчер задач, вкладка «Подробности». Должны появиться ragent.exe и при активности кластера rphost.exe. Если их нет, смотрю журнал службы и каталог логов сервера 1С (путь зависит от версии; обычно Program Files\1cv8\srvinfo и подкаталоги reg_*).

Когда алгоритм трогает Excel через COM на сервере, отдельно проверяю установку Office для той же учётной записи, что у службы, и настройку DCOM для компонента Excel (права запуска и активации). Для тестового стенда я честнее переношу такую логику на клиент (&НаКлиенте) или ищу серверную альтернативу без UI (выгрузка в табличный документ, OpenXML). Интерактивный COM на сервере в продуктиве редко оправдан, но воспроизвести его на стенде иногда нужно, чтобы увидеть ту же ошибку, что у заказчика.

 

SQL Server Express: смешанный режим и SSMS

Ставлю SQL Server Express 2019 или 2022 with Tools, экземпляр по умолчанию или именованный - главное запомнить имя для строки подключения. В мастере на шаге «Режим проверки подлинности» включаю «Смешанный режим» и задаю пароль для sa. Эти данные понадобятся в консоли 1CV8 Servers при создании информационной базы; без СQЛ-авторизации типовый гайд «только Windows» ломается на шаге создания БД.

Открываю SQL Server Management Studio, подключаюсь к (local) или.\SQLEXPRESS с аутентификацией SQL Server, логин sa. Успешное подключение - сигнал, что TCP и экземпляр живы. Если SSMS не коннектится, дальше бессмысленно идти в 1С: сначала SQL Browser, протокол TCP/IP в конфигураторе SQL и перезапуск службы SQL.

На тестовом стенде sa с простым паролем допустим. В бою 1С обычно работает под отдельным login SQL с минимальными правами на свою базу; для статьи явно: sa только для локального стенда, не для продуктива.

Убедиться, что экземпляр слушает нужный порт, помогает простой запрос в SSMS к системным представлениям (не путать с языком запросов 1С).

SELECT local_tcp_port
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

В колонке local_tcp_port для деfаулт-экземпляра чаще всего 1433; для именованного Express смотрю порт в диспетчере конфигурации SQL Server и использую его в строке подключения 1С.

 

Кластер 1С и информационная база на SQL

Консоль «1CV8 Servers» (Администрирование серверов 1С) опирается на регистрацию radmin.dll. В меню Пуск после установки платформы есть смд-файл регистрации внешней компоненты - запускаю от администратора один раз. Без этого консоль не откроется или будет ругаться на компоненту, хотя служба ragent уже работает.

В консоли создаю (или проверяю) центральный сервер: имя кластера для простейшего стенда совпадает с сетевым именем сервера Windows. Добавляю информационную базу: тип СУБД Microsoft SQL Server, сервер БД как в SSMS, база данных - новое имя латиницей, галочка «Создать базу данных в случае её отсутствия», СQЛ-аутентификация, sa и пароль с установки.

Имя базы в SQL и имя ИБ в кластере не обязаны совпадать посимвольно, но путаница потом мешает при ручном разборе в SSMS. Я задаю осмысленное имя вроде TestCS_erp.

После создания в SSMS в списке баз появляется новая база; в консоли 1С статус ИБ должен позволять запуск. Ошибки «не удалось создать базу» часто сводятся к правам sa, закрытому порту 1433 или неверному имени экземпляра.

Чтобы убедиться, что платформа действительно работает с SQL, а не с файловым каталогом, смотрю свойства информационной базы в консоли (тип СУБД, строка сервера БД) и отсутствие пути к 1Cv8.1CD на диске клиента.

 

Перенос из файловой базы через выгрузку DT

Цепочка переноса короткая, но каждый шаг завязан на предыдущий: без рабочей ИБ в кластере DT некуда загружать.

Исходные данные беру из файловой копии: конфигуратор, Администрирование - Выгрузить информационную базу, файл *.dt. На сервере в конфигураторе подключаюсь к новой серверной ИБ (список баз - имя кластера и имя ИБ), затем Загрузить информационную базу из *.dt.

Загрузка может занять время; по окончании платформа предложит обновить конфигурацию базы данных, если версия конфигурации требует этого. Я выполняю обновление сразу, иначе регламентные задания и часть метаданных не совпадут с ожиданиями.

После миграции проверяю регламентные задания (не висят ли отключёнными критичные для вашего теста), пользователей и права. Для стенда часто хватает одного администратора платформы; если тестируете RLS, заведите отдельного пользователя.

Контекст выполнения кода напоминаю себе так: клиентские процедуры не могут напрямую лезть в базу; серверные видят данные, но не UI. Вызов серверного метода с клиента - отдельный сетевой вызов платформы.

&НаКлиенте
Процедура СохранитьОтчётВФайл(Команда)
	АдресСхемы = ПодготовитьСхемуКомпоновкиНаСервере();
	СохранитьФайлНаКлиенте(АдресСхемы);
КонецПроцедуры

&НаСервере
Функция ПодготовитьСхемуКомпоновкиНаСервере()
	Схема = Новый СхемаКомпоновкиДанных;
	// заполнение схемы на сервере
	Возврат ПоместитьВоВременноеХранилище(Схема, УникальныйИдентификатор);
КонецФункции

Если Схему собрать в &НаКлиенте и передать «как объект» без временного хранилища, в клиент-сервере часто упираетесь в сериализацию и контекст. На стенде это хороший мини-тест после переноса DT.

Для проверки, что запросы идут в SQL, а не в локальный файл, в сеансе предприятия можно выполнить простой запрос к регистру или справочнику, который точно есть в вашей конфигурации после загрузки DT.

ВЫБРАТЬ ПЕРВЫЕ 10
	Пользователи.Ссылка КАК Ссылка,
	Пользователи.Наименование КАК Наименование
ИЗ
	Справочник.Пользователи КАК Пользователи
ГДЕ
	НЕ Пользователи.ПометкаУдаления

Если в вашей конфигурации нет справочника Пользователи, возьмите любой знакомый объект после загрузки DT; цель - убедиться, что сеанс серверный и данные читаются из СQЛ-базы, а не из каталога 1Cv8.1CD.

 

Сеть, брандмауэр, клиент и отладка

Клиент не «открывает папку базы», а обменивается с кластером по TCP на портах 1541 и 1560.

Клиентское подключение добавляю на машине клиента: запуск 1С:Предприятие, добавить, тип «На сервере 1С:Предприятие», имя кластера = сетевое имя сервера (не «localhost», если клиент на другом ПК), имя ИБ как в консоли. Для первого опыта достаточно тонкого клиента; толстый клиент тоже идёт через кластер, но тянет больше локальных компонент.

Брандмауэр Windows на сервере: разрешаю вход для портов SQL (1433 TCP для умолчанию; для Express иногда динамический порт из конфигуратора SQL; 1434 UDP для SQL Browser при именованных экземплярах) и портов 1С. Минимальный набор для одного рабочего процесса: 1541 TCP (агент), 1560 TCP (первый rphost; диапазон 1560-1591 закладываю, если процессов несколько). Полный перечень для кластера шире (1540 и др.); для домашнего стенда я открываю 1541 и 1560 и смотрю, исчезла ли ошибка подключения.

Типичный симптом закрытого порта: клиент долго «висит» на подключении, затем сообщение о недоступности сервера или общая ошибка кластера без деталей. На сервере в логах ragent и rphost в srvinfo появляются отказы или пусто при попытке с клиента. С telnet или Test-NetConnection на клиенте проверяю 1541 и 1433 до разборов в 1С.

Раздел «Вы в клиент-сервере, а не в файле»: в конфигураторе и предприятии в свойствах информационной базы указан сервер кластера, нет каталога файловой базы. В диспетчере задач на сервере при открытом сеансе растёт rphost.exe. В свойствах сеанса (если доступны в вашей версии) режим не файловый.

Отладка 8.3 в клиент-сервере: на сервере в консоли администрирования для кластера или ИБ включаю «Разрешить отладку» (формулировка зависит от версии консоли). На машине разработчика запускаю конфигуратор с параметром отладчика или подключаюсь к сеансу через Отладка - Подключиться к процессу; для тонкого клиента на другой машине использую запуск с ключом debugger у predpriyatie.exe по документации вашей версии платформы.

Если отладчик не цепляется, первым делом проверяю брандмауэр на портах отладки (диапазон задаётся платформой; для стенда проще временно разрешить конфигуратору и rphost вход с подсети клиента, чем гадать). Вторая причина - отладка запрещена в кластере или сеанс запущен без права отладки у пользователя.

После успешного подключения точки останова в &НаСервере срабатывают на сервере; в &НаКлиенте - на клиенте. Смешанный пошаговый проход как раз показывает, где ваш алгоритм ошибочно положил файл или COM.

 

Что забрать себе

  • Свои алгоритмы имеет смысл гонять в клиент-серверном режиме на SQL Server Express (или PostgreSQL, если так решили), даже если файловая база уже есть: контекст сервера, USR1CV8 и порты меняют поведение.
  • Три места, где я чаще всего терял время на стенде: смешанная СQЛ-авторизация и sa при создании ИБ, регистрация radmin.dll, брандмауэр 1541/1560 и 1433.
  • После загрузки DT не забываю обновление конфигурации БД, проверку регламентных заданий и осознанный выбор учётной записи службы, если тестирую DCOM или файлы на сервере.

Вступайте в нашу телеграмм-группу Инфостарт

1С:Предприятие 8 Клиент-сервер SQL Server Тестирование Администрирование Отладка USR1CV8 клиент-серверный режим тестирование 1С Предприятие 8 информационная база Express radmin порты 1541

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Тестирование QA Разработчик 1С:Предприятие 8 Бесплатно (free)

Когда полная сборка автотестов занимает полчаса, даже небольшая автоматизация может изменить рабочий процесс. Рассказываю, как Python-утилита Phase Switcher постепенно превратилась в KOT for 1C — open-source расширение для VS Code. KOT 3.0 объединяет в одной рабочей среде библиотеку шагов и сценариев, IntelliSense, поддержку СППР и самостоятельных feature Vanessa Automation, исследователь форм, запись действий и управление выполнением через MCP. В статье — история разработки проекта от небольшой Python-утилиты до расширения для VS Code, практические примеры, неудачные эксперименты и решения, которые помогли инструменту прижиться в нашей команде.

02.11.2026    388    alexiosus    0    

2

Тестирование QA Бесплатно (free)

Резкий рост числа пользователей, консолидация систем или миграция в облако требуют заранее понять, выдержит ли инфраструктура новую нагрузку. Рассказываем, как с помощью LLM команда за 16 недель подготовила и провела нагрузочные тесты для шести баз: автоматизировала анализ технологических журналов и журналов регистрации, формирование реалистичных сценариев и создание обработок для «1С:Тест-центра» и JMeter. Показываем, как оркестратор, AI-агенты и MCP-серверы помогают сократить объем ручной работы, а также объясняем, почему контроль со стороны 1С-эксперта по-прежнему остается обязательным. Разбираем архитектуру решения, уже работающие инструменты и направления дальнейшей автоматизации нагрузочного тестирования.

31.10.2026    465    gabrielyants    0    

5

Инструментарий разработчика Тестирование QA Разработчик Стажер 1С 8.3 Абонемент ($m)

Проверила пять пакетных команд платформы 8.3.27 на контрольном расширении Нано-УТ: они обнаружили 4 из 28 заложенных пунктов. В набор входят ошибки применимости, предупреждения и сведения для ручного разбора. Проверка XML-выгрузки отметила все 28 пунктов и 15 из 15 на похожем слепом наборе. Показываю журналы, ограничения и сценарий обновления основной конфигурации. Прилагаются инструмент с 69 тестами и материалы опыта.

7 стартмани

28.10.2026    347    Ninel_S    2    

2

Инструментарий разработчика Мобильная разработка Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Скрипт form_diff_mobile.py сравнивает две выгрузки конфигурации 1С и показывает, что в формах удалено и переименовано, где на это ещё ссылаются и какой код попадает в мобильные контексты. На «Нано-УТ 2.0» сделано 13 изменений форм: платформа 8.3.27.2130 отметила 7, в остальных шести промолчала, и в четырёх из них скрипт нашёл обращение к удалённому элементу, строку с прежним именем формы, смену директивы или выход формы из мобильной области. На чистой УТ 11.5 сравнение с копией дало 0 находок, а с копией с пятью правками ровно семь. В архивах скрипт, 74 теста, стенд, чек-лист выпуска, журнал выпуска и скрипты опытов на платформе.

7 стартмани

27.10.2026    310    Ninel_S    0    

1

Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Прогнала через 1С 8.3.27 и валидатор .NET 21 файл XML по одной схеме: базовый пример и типичные отклонения. Вердикты совпали в 20 случаях (у .NET включены предупреждения), дата без времени дала расхождение. В архиве - схема, тесты, закреплённая версия учебной базы и исправленный сценарий проверки, включая выгрузку и обратное чтение 30 продаж.

1 стартмани

26.10.2026    303    Ninel_S    0    

1

Рефакторинг и качество кода Тестирование QA Системный администратор Разработчик 1С 8.3 Абонемент ($m)

В базе 1С на PostgreSQL копятся индексы, которыми никто не пользуется: их создаёт флажок «Индексировать» у реквизитов или их добавляют вручную. Каждый такой индекс замедляет запись: в опыте на тестовой таблице восемь лишних индексов сделали вставку 300 000 строк в четыре-шесть раз дольше. Скрипт на Python смотрит статистику PostgreSQL и показывает, какие индексы ни разу не использовались и какой реквизит 1С их создал. На нашей конфигурации «Нано-УТ» он нашёл четыре ненужных индекса документа и один дубль, добавленный вручную. После того как я сняла флажки и обновила конфигурацию, индексов стало 227 вместо 234, данные не пострадали. В архиве скрипт, запросы и примеры.

5 стартмани

23.10.2026    471    Ninel_S    4    

1

Рефакторинг и качество кода Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Скрипт, который должен был проверять код 1С в Docker, на деле проверял только, что файл не пустой: из 11 модулей с ошибками он пропустил все. Я переписала проверку и сравнила её с самой 1С на тех же 11 модулях из нашей конфигурации «Нано-УТ». Новый скрипт нашёл незакрытые «Если», процедуры и скобки в 10 случаях из 11. Вызов несуществующей процедуры находит только сама 1С. В архиве скрипт, файлы для Docker, примеры с ошибками и журналы проверки.

5 стартмани

23.10.2026    450    Ninel_S    4    

0

Рефакторинг и качество кода Тестирование QA Разработчик 1С 8.3 1С 8.5 Абонемент ($m)

Генератор Form.xml из JSON прошёл тесты, но Конфигуратор сначала отверг форму, а после исправления типа без сообщения об ошибке потерял 6 элементов из 10. Ищем причины и делаем проверку через платформу. Исправленный генератор испытан на 8.3.27.2130 и 8.5.1.1302: пять форм конфигурации, веб-клиент, стандартные команды из JSON, запись и проведение. В архиве Вы можете получить исходники, примеры обработки, справочника, документа, отчёта и регистра, тесты и журналы прогонов.

5 стартмани

22.10.2026    407    Ninel_S    0    

-1
Для отправки сообщения требуется регистрация/авторизация