Не раз было такое... подключаюсь к заказчику из-за какой-то новой ошибки, и вот опять:
А проблема, собственно, в том, что некоторые алгоритмы, которые успешно выполняются в режиме "Файловый", выполняются с ограничениями или не выполняются в режиме "Серверный". Один из популярных случаев - работа с DCOM компонентами. Когда, например, "Excel.Application" выполняется на сервере, а на клиенте не учитывается факт, что компонента может быть недоступна для службы Агента сервера 1С:Предприятие. Или другой случай - в обработке реализуется работа с файлами, которые должны сохраняться на клиенте через асинхронные процедуры Получение/ПомещениеФайлаНаСервере. В файловом режиме может работать без проблем, а в серверном оказывается, что не выполнена настройка какого-нибудь важного параметра. Еще случай - создание и использование схемы компоновки данных (СКД) должно выполняться на сервере, а на клиенте пересылаться с использованием процедур Поместить/ПолучитьИзВременногоХранилища, что может приводить к проблемам при неправильной программной генерации СКД.
В общем, свои алгоритмы надо тестировать во всех режимах использования, и дорабатывать для хорошей поддержки.
Аккуратно! Программистам и администраторам 1С8 с большим опытом дальше не читать) Не претендую на лавры. Публикация в помощь коллегам и друзьям с небольшим опытом.
В публикации не рассматривается настройка и тестирование базы данных в режиме "Веб-сервер".
Необходимые этапы настройки сервера 1С:Предприятие:
Пункты 1,2,3,4,6 выполняются на серверной стороне, пункт 5 - и на сервере, и на клиенте.
В интернете можно загуглить и найти много статей для выполнения каждого из вышеперечисленных пунктов. Постараюсь не повторять то, что уже написано, и рассматривать только те вопросы, которые часто остаются за скобками.
Клиент-серверная архитектура предполагает 2 точки использования базы данных - клиент и сервер.
Допустим много упрощений, поскольку настраивается информационная система только для тестирования собственных алгоритмов в клиент-серверном режиме, а значит нужно "просто запустить", чтобы попробовать.
ВЫБРАННЫЕ УСЛОВИЯ запуска: в качестве примера, используем стандартный ПК на основе Windows 10 Pro (x86-64) с обычной администраторской учетной записью для клиентской и серверной стороны, которые подключены к одной и той же сети со стандартными настройками, подобно домашней локальной и беспроводной сети. Используемая версия платформы: 1C:Предприятие 8 (x86-64) (8.3.18.1289).
Возможная схема нашей примитивной информационной системы:
I. Выполнение пункта 1 "Установка платформы 1С со службами сервера"
На сервере. Во время установки, для использования сервера 1C:Предприятие 8, добавить компоненты:
Понятно, что мы используем лицензионную версию с аппаратным ключом.
Если выбрать настройку "Создать пользователя USR1CV8", то служба Windows сервера 1C:Предприятие 8 будет запускаться учетной записью USR1CV8. По умолчанию, эта учетная запись создается со стандартными правами (не администраторскими), и если нужно будет выполнять действия, которые затрагивают системные компоненты (например, DCOM), то эти действия будут выполняться с ошибками.
Изменение типа учетной записи USR1CV8 (Параметры-Учетные записи-Семья и другие пользователи):
Если, всё таки, потребуется отказаться от использования учетной записи USR1CV8, то это можно изменить в панели "Службы" для "Агент сервера 1С:Предприятие" (Win+R, services.msc, OK):
Проверка, что фоновые процессы сервера 1С:Предприятие работают (Ctrl+Shift+Esc):
II. Выполнение пункта 2 "Установка системы управления базами данных - СУБД (например, SQL Server)"
На сервере. Для тестирования своих разработок достаточно установить бесплатную версию SQL Server Express. Например, подойдёт версия SQL Server 2014 Express. Поскольку запуск выполняется в Windows 10 Pro x86-64, скачиваем и устанавливаем SQL Server 2014 Express Edition with Tools with Service Pack 3, x64, English.
В простейшем случае, все настройки установщика используются по умолчанию, за исключением одного пункта - "Режим авторизации (Authentication mode)", в котором нужно разрешить авторизацию с помощью аккаунтов SQL Server и задать пароль для стандартного аккаунта "sa":
Запоминаем эти данные: аккаунт "sa" и заданный пароль (например, "1").
III. Выполнение пункта 3 "Создание информационной базы на сервере СУБД"
На сервере. В многочисленных статьях и инструкциях на эту тему всё хорошо расписано. Но бывает, что не упоминается о необходимости регистрации внешней компоненты консоли управления администрирования серверов 1С, которую рекомендуется использовать для создания кластеров и информационных баз. Можно обойтись без использования консоли управления, и добавить информационную базу в окне приветствия 1С:Предприятие.
Установщик платформы 1С 8.3 создает и добавляет в меню пуск ссылку на файл *.cmd для регистрации внешней компоненты radmin.dll консоли управления администрирования серверов 1С:
Далее, перед добавлением информационной базы, нужно проверить работу SQL Server. Для этого можно использовать консоль управления SQL Server Management Studio, которая добавляется при установке SQL Server или устанавливается отдельно.
Для подключения можно использовать стандартную учетную запись "sa" и пароль, заданный во время установки SQL Server:
Если подключение успешное, то можно приступить к созданию информационной базы в консоли управления администрирования серверов 1С:
Сервер базы данных - такой же как в консоли управления SQL Server Management Studio (в примере "DESKTOP-K80105I"). Тип СУБД - "MS SQL Server". Пользователь сервера - "sa" и пароль, заданный во время установки SQL Server (например, "1"). При создании новой информационной базы - обязательно установить флаг "Создать базу данных в случае её отсутствия".
Если все параметры введены правильно, то можно убедиться, что в консолях управления появилась создаваемая информационная база. Имя "unf1.6" нужно запомнить для следующего пункта.
IV. Выполнение пункта 4 "Выгрузка файловой базы данных 1С и загрузка на сервер СУБД"
На сервере. Файловую базу данных нужно выгрузить в файл формата *.dt. В многочисленных статьях подробно приводится инструкция. Коротко - в конфигураторе открываем файловую базу данных, далее пункт меню "Администрирование - Выгрузить информационную базу". Получится файл со стандартным названием 1Cv8.dt.
Добавляем новую информационную базу на сервере - в окне приветствия 1С. Используемое имя кластера серверов и информационной базы как в предыдущих пунктах. Загружаем файл 1Cv8.dt в конфигураторе:
V. Выполнение пункта 5 "Подключение к службе СУБД по сети для запуска 1С на клиенте"
На сервере. Основная задача этого пункта заключается в обеспечении доступа к серверу по сети, и главное препятствие здесь - сетевой экран (Брандмауэр или Firewall). Рассматриваем подключение клиента и сервера в одной и той же сети со стандартными настройками, подобно домашней локальной и беспроводной сети. А значит сетевой экран на маршрутизаторе со стандартными настройками (см.схему информационной системы выше).
Настройка Брандмауэра Windows (Firewall) выполняется на сервере в специальной консоли: Параметры — Сеть и интернет — Брандмауэр Windows — Дополнительные параметры.
Необходимо открыть входящее подключение: Правила для входящих подключений — Создать правило для порта — Протокол TCP (Определённые локальные порты: например, 1433) — Разрешить подключение
Порты на сервере с использованием SQL Server для входящих подключений (по умолчанию):
- 1433 — на сервере SQL для управления экземплярами баз данных;
- 1434 — на сервере SQL для выделенного административного соединения (например, с помощью sqlcmd);
- 1540 — на сервере 1С для удаленных подключений с помощью утилиты администрирования (консоль 1CV8 Servers msc);
- 1541 — на сервере 1С для менеджера кластера серверов;
- Диапазон {1560-1591} — на сервере 1С для рабочих процессов.
В простейшем случае, достаточно открыть 2 порта: 1541,1560.
Если потребуются дополнительные другие порты, то при запуске 1С на клиенте, будет выведено уведомление.
На клиенте. На рабочей станции клиента установлена платформа 1С 8.3 со стандартными компонентами (без сервера 1С:Предприятие). Далее добавляем новую информационную базу. Используемое имя кластера серверов и информационной базы как в предыдущих пунктах. В приведенном примере имя кластера серверов совпадает с сетевым именем ПК сервера. Если все настройки сделаны верно, то запуск информационной базы на клиенте будет успешным.
Запускаем информационную базу "unf1.6_SQL_Server" на клиенте, чтобы убедиться в работоспособности:
VI. Выполнение пункта 6 "Включения отладки в режиме клиент-сервер"
На сервере. В заключении, можно настроить режим отладки для сервера 1С:Предприятие, поскольку по умолчанию никакие серверные функции и процедуры не будут поддаваться пошаговой отладке, они будут выполняться на сервере, и не будут видны для клиентской машины.
- Остановить службу "Агент сервера 1С:Предприятия 8.3 (x86-64)" (Windows+R, services.msc, OK),
- Запустить редактор системного реестра. Нажать Windows+R (или Пуск-Выполнить), ввести regedit, ОК.
- Найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.3 Server Agent\].
- Изменить свойство "ImagePath". Добавляем в строку "-debug".
- Записываем и запускаем службу "Агент сервера 1С:Предприятия 8.3 (x86-64)".
Именно на клиенте надо тестировать алгоритмы, которые успешно выполняются в режиме "Файловый", но выполняются с ограничениями или не выполняются в режиме "Серверный".
Далее можно убедиться, что пошаговая отладка работает и на клиентской машине, при наличии точек останова в серверных процедурах.
В результате настройки клиент-серверного режима, при разработке можно сразу тестировать алгоритмы, делать дополнительные проверки и учитывать результат в параметрах, добавлять в диалогах какие-либо подсказки, делать программный продукт более качественным.
Публикация простая, где-то повтор. Не судите строго. Напишите предложения для улучшения, сообщите о недостатках в комментариях. Спасибо!
Готовое решение
Database Compression Tool (DCT): Универсальный инструмент сжатия, свертки и конвертации баз данных 1С
Универсальный инструмент сжатия, свертки и конвертации баз данных 1С.
Свертка баз данных еще никогда не была такой простой и быстрой!
DCT ускоряет работу базы, освобождая гигабайты пространства и повышая производительность системы. Доступна ДЕМО версия!