Как узнать версию сервера 1с

Обновлено: 08.07.2024

Сервер "1С:Предприятия" и SQL-сервер

В данном разделе рассмотрены особенности настройки SQL-сервера для обеспечения взаимодействия сервера "1С:Предприятия 8" с SQL-сервером. Напомним, что в качестве SQL-сервера предполагается использовать Microsoft SQL Server 2000 с установленным Service Pack 2 или Microsoft SQL Server 2005. Далее по тексту под SQL-сервером будем понимать именно этот продукт. Поскольку использование "1С:Предприятия 8" в варианте "клиент-сервер" подразумевает хранение данных в SQL-сервере, для безошибочной работы "1С:Предприятия 8" необходимо уделить внимание следующим вопросам:

  • распределение SQL-сервера и сервера "1С:Предприятия" по компьютерам;
  • проверка наличия и версии SQL-сервера и компонента доступа к данным;
  • выбор протокола передачи данных между сервером "1С:Предприятия" и SQL-сервером;
  • настройка прав пользователя сервера "1С:Предприятия 8".

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

Распределение SQL-сервера и сервера "1С:Предприятия" по компьютерам

SQL-сервер и сервер "1С:Предприятия 8" могут быть установлены как на одном компьютере, так и на разных компьютерах, в зависимости от предполагаемой загрузки (см. руководство: "1С:Предприятие 8. Клиент-сервер. Особенности установки и использования"). Сервер "1С:Предприятия 8" взаимодействует с SQL-сервером через специальный компонент доступа к данным - Microsoft OLE DB Provider for SQL Server, входящий в состав Microsoft Data Access (MDAC), который, в свою очередь, взаимодействует с SQL-сервером либо непосредственно, если SQL-сервер установлен на том же компьютере, что и сервер "1С:Предприятия", либо через некоторый протокол передачи данных, если SQL-сервер и сервер "1С:Предприятия" установлены на разных компьютерах.

Проверка наличия и версий SQL-сервера и компонента доступа к данным

Для нормальной работы сервера "1С:Предприятия 8" необходимо, чтобы на компьютере, на котором установлен сервер "1С:Предприятия", присутствовал компонент Microsoft OLE DB Provider for SQL Server, который обычно входит в состав операционной системы Microsoft Windows 2000 и более новых и расположен в файле C:\Program Files\Common Files\System\OLE DB\sqloledb.dll. Маршрут используемого файла sqloledb.dll можно посмотреть в ветке
HKEY_CLASSES_ROOT\CLSID\\InprocServer32
системного реестра. Чтобы узнать его версию, необходимо открыть закладку Versions диалога свойств этого файла. Версия должна быть 08.10.9030 или более поздняя. Если это не так, то необходимо установить клиентские компоненты Microsoft SQL Server. Он также входит в состав Microsoft Data Access 2.6. Еще необходимо обратить внимание на файл C:\WINNT\system32\ntwdblib.dll, который должен иметь версию 8.00.194 или более позднюю.

В качестве SQL-сервера должен использоваться Microsoft SQL Server 2000 с установленным Service Pack 2 или Microsoft SQL Server 2005. Проверить версию SQL-сервера можно при помощи утилиты Enterprise Manager, входящей в комплект SQL-сервера. Запустите ее на компьютере, на котором установлен SQL-сервер, выберите ветку Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local), откройте окно ее свойств и на закладке General обратите внимание на строку Product version. Должна быть версия 8.00.534(SP2) или более поздняя. Если это не так, установите Microsoft SQL Server 2000 Service Pack 2 или Microsoft SQL Server 2005.

Выбор протокола передачи данных между сервером "1С:Предприятия" и SQL-сервером

Если сервер "1С:Предприятия" и SQL-сервер установлены на разных компьютерах, то передача данных осуществляется посредством сетевого протокола. Установки сетевых протоколов на SQL-сервере и у компонентов доступа к данным должны быть согласованы между собой. Для установки сетевых протоколов на SQL-сервере можно воспользоваться утилитой SQL Server Network Utility. Ее загрузочный модуль обычно находится в файле "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\svrnetcn.exe". Эта утилита отображает диалог, в котором на закладке General представлен список включенных и выключенных протоколов. Для надежной работы "1С:Предприятия 8" рекомендуется включить протокол TCP/IP (первой строкой) и Named Pipes (второй строкой) и выключить все остальные протоколы.

Компьютер, на котором установлен сервер "1С:Предприятия", является по отношению к SQL-серверу клиентом, и для определения его сетевых протоколов воспользуйтесь утилитой SQL Server Client Network Utility. Ее загрузочный модуль обычно находится в файле "C:\WINNT\system32\cliconfg.exe". Она отображает диалог, в котором на закладке General представлен список включенных и выключенных протоколов. Рекомендуется использовать протокол TCP/IP, поскольку это исключает дополнительные проблемы с настройкой системы безопасности Windows и обеспечивает наибольшую производительность системы. Остальные протоколы лучше выключить. Обратите внимание на закладку Alias. Упоминание на ней имени используемого "1С:Предприятием" SQL-сервера может изменить выбранный сетевой протокол и привести к неожиданным эффектам.

Настройка прав пользователя сервера "1С:Предприятия 8"

Для повышения гибкости настройки прав рекомендуется использовать SQL Server Authentication.

Перед созданием первой информационной базы выполните следующие настройки. Запустите утилиту Enterprise Manager, входящей в комплект SQL-сервера, выберите ветку Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local), откройте окно ее свойств. На закладке Security переключатель Authentication установите в положение SQL Server and Windows и нажмите Ok. Выберите ветку Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local) -> Security -> Logins. Создайте учетную запись, имя и пароль, которой вы будете задавать в качестве имени и пароля пользователя SQL при создании информационной базы (Локальное Меню -> New Login. ). На закладке General отображенного диалога: в строке Name задайте имя пользователя; переключатель Authentication установите на SQL Server Authentication и задайте пароль пользователя; укажите master в качестве Default Database. На закладке Server Roles включите роль Database Creators, а на закладке Database Access найдите базу данных master и включите для нее роль public. После этого информационную базу можно создавать.

После создания информационной базы эта учетная запись станет собственником созданной базы данных и будет иметь возможность чтения данных из системных таблиц базы данных master, что и требуется для нормальной работы сервера "1С:Предприятия". От имени этой учетной записи могут быть созданы и другие базы данных. Если это нежелательно, то в свойствах рассматриваемой учетной записи на SQL-сервере на закладке Server Roles роль Database Creators можно выключить. Более подробную информацию по администрированию SQL-сервера можно найти в документации к Miсrosoft SQL Server.

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

Автоматизировать процесс начнем с «конца»

  • В 1с обновление возможно только с определенной версии на определенную. Это связано с тем, что файлы обновления поставляются не в виде полного «слепка» конфигурации. А в виде изменений от эталонной версии.
  • Так же в самом коде 1с есть предопределенные обработки, которые запускаются при переходе с одной версии на другую.


При создании класса надо передать MemoryStream binary data из таблицы _config.
Как видно в коде им можно парсить и конфигурации 7.7, предварительно распаковав.

Теперь до версии конфигурации можно добраться зная её «адрес»: Далее просто создаем пустую базу с версией «ВЕРСИЯ» и находи что её «адрес» (v8metadata)(((v8metadata)(((v8metadata)(this.array_data[3])).array_data[1])).array_data[1])).array_data[15].ToString();


Но где же здесь MSSQL?
Вот CLR функция, которая получит эти данные в самом MSSQL:
У нас есть отдельная БД, которая хранит в себе сервера и базы. Соответственно функция адаптирована под это.


А как определить какое обновление необходимо для данной конфигурации 1с?
При установке обновлении 1с можно использовать каталог обновлений на сервере. В каждом обновлении есть файл .mft вида:
Vendor=Фирма "1С"
Name=БухгалтерияПредприятия
Version=2.0.25.5
AppVersion=8.2
.

И файл UpdInfo.txt
Version=2.0.25.5
FromVersions=;2.0.24.10;
UpdateDate=11.07.2011

Это же всё, что нам надо.
Зная FromVersions и дату выхода обновления мы можем автоматически генерировать строку для запуска обновления 1с. (ссылка на параметры в начале топика)

Но тут появляется еще одна проблема — наличие пользователей в базе. 1с не обновляется. Пишем «выгонялку» пользователей (vbscript)

Вопросы установки и настройки 1C:Предприятия 8.1 в варианте “клиент-сервер”

В большинстве случаев для установки 1C:Предприятия 8.1 в варианте “клиент-сервер” достаточно запуска программы установки 1С:Предприятия 8.1. При этом сервер 1С:Предприятия получает стандартные значения параметров, необходимые для его нормального функционирования.

Рассмотрим установку сервера 1С:Предприятия более детально. В процессе установки сервера 1С:Предприятия 8.1 программа установки 1С:Предприятия 8.1 выполняет следующие действия:

Копирует загрузочные модули сервера 1С:Предприятия в каталог, указанный программе установки 1С:Предприятия в качестве конечной папки.

Если в процессе установки выбрано "Создать пользователя USR1CV81", то создает пользователя USR1CV81. От имени этого пользователя работает сервер 1С:Предприятия 8.1, если он запускается как сервис. Ему доступны только те ресурсы, которые необходимы серверу 1С:Предприятия. Важно, что серверу 1С:Предприятия для работы необходимы два каталога: общий каталог с данными сервера (обычно "C:\Program Files\1cv81\server") и каталог временных файлов (обычно "C:\Documents and Settings\usr1cv81\Local Settings\Temp" или "C:\WINNT\Temp"). Пользователь USR1CV81 получает права на общий каталог с данными сервера. Каталог временных файлов обычно доступен всем пользователям.

Если в процессе установки включено "Установить сервер 1С:Предприятия 8.1 как сервис Windows", то регистрирует в Windows сервис агента сервера 1С:Предприятия и запускает его. При первом запуске создается кластер серверов 1С:Предприятия с настройками по умолчанию. В нем один рабочий сервер и один рабочий процесс. Адрес рабочего сервера совпадает с именем компьютера, на котором выполнена установка.

Пользователь USR1CV81 и его права

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

Рассмотрим подробнее права, устанавливаемые пользователю USR1CV81. Сервер 1С:Предприятия использует следующие каталоги:

Каталог загрузочных модулей находится в каталоге, заданном программе установки 1С:Предприятия в качестве конечной папки. В нем расположены загрузочные модули сервера 1С:Предприятия. Пользователь USR1CV81 необходимы права на чтение данных и запуск программ из этого каталога и его подкаталогов. Он получает эти права неявно, благодаря включению в группу Users.

Каталог данных сервера обычно имеет имя "C:\Program Files\1cv81\server". Пользователю USR1CV81 необходимы полные права на этот каталог. Программа установки 1С:Предприятия при создании пользователя USR1CV81 наделяет его правами на этот каталог.

Каталог временных файлов обычно имеет имя "C:\Documents and Settings\usr1cv81\Local Settings\Temp" или "C:\WINNT\Temp", которое определяется значением переменной TEMP окружения пользователя или переменной TEMP системного окружения. Посмотреть значение этой переменной можно в диалоге System Properties (Start -> Settings -> Control Panel -> System -> Advanced -> Environment Variables). Программа установки 1С:Предприятия задает пользователю USR1CV81 полные права на этот каталог. Обычно при установки Windows каталог временных файлов доступен всем пользователям посредством включения в его список доступа группы CREATOR OWNER. Однако, это доступ не полный. В частности, всем пользователям не доступна операция поиска файлов в этом каталоге. Установка пользователю USR1CV81 полных прав на каталог временных файлов позволяет серверу 1С:Предприятия выполнять все необходимые ему операции. Посмотреть список доступа можно в диалоге свойств каталога на закладке Security. Наличие группы CREATOR OWNER позволяет обращаться к каталогу любому пользователю, создающему какие-нибудь файлы в этом каталоге или владеющему какими-нибудь файлами в этом каталоге. При этом в списке доступа созданного файла вместо группы CREATOR OWNER будет записан пользователь, создавший файл. Среди пользователей, которым разрешен доступ в этот каталог, должен быть и пользователь USR1CV81, наделенный полными правами на этот каталог.
Важно иметь в виду, что каталог временных файлов определенного пользователя (в том числе и пользователя USR1CV81) определяется комбинацией переменных окружения этого пользователя и системных переменных окружения. Чтобы узнать этот каталог, программа установки 1С:Предприятия запрашивает контекст пользователя USR1CV81. В для этого в Windows 2000 пользователю, от имени которого запускается программа установки 1С:Предприятия, могут потребоваться привилегии: Act as part of the operating system и Bypass traverse checking. Проверить привилегии пользователя можно утилитой Local Sequrity Settings в ветке Local Policies -> User Rights Assignment. В процессе установки нового программного обеспечения программа установки обычно получает эти привилегии автоматически.

Для просмотра списка сервисов Windows и их параметров предназначена утилита Component Services (Start -> Settings -> Control Panel -> Administrative Tools -> Services). Сервер 1С:Предприятия представлен в списке сервисов сервисом "Агент сервера 1С:Предприятия 8.1". Параметры сервиса определяют запуск процесса "Агент сервера 1С:Предприятия" (ragent), пользователя, от имени которого он запускается, а также способ перезапуска в аварийных ситуациях.

В диалоге свойств сервиса "Агент сервера 1С:Предприятия 8.1" на закладке General показана строка запуска процесса ragent, который является Агентом сервера 1С:Предприятия. Обычно эта строка имеет вид:

"C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server"

В ней указано, что:

процессом Агента сервера является загрузочный модуль "C:\Program Files\1cv81\bin\ragent.exe";

процесс ragent запускается как сервис Windows и должен управляться менеджером сервисов (-srvc);

используется как Агент сервера 1С:Предприятия (-agent);

IP-порт агента сервера должен иметь номер 1540 (-port 1540). По этому порту Консоль кластера должна соединяться с центральным сервером для выполнения административных функций;

при запуске процессов кластера на данном сервере им будут динамически назначаться IP-порты из диапазона 1560-1591 (-range 1560:1591).

общие данные кластера будут размещены в каталоге "C:\Program Files\1cv81\server" (-d "C:\Program Files\1cv81\server").

Сервис "Агент сервера 1С:Предприятия 8.1" может быть добавлен или удален не только при установке или удалении 1С:Предприятия программой установки 1С:Предприятия 8.1, но и вручную. Для этого можно исполнить из командной строки утилиту ragent, указав ей соответствующие параметры.

Для создания сервиса нужно указать параметр -instsrvc и параметры: -usr - имя пользователя, от имени которого должен быть запущен сервис, -pwd - пароль этого пользователя. При этом остальные параметры станут параметрами строки запуска Агента сервера 1С:Предприятия как сервиса. Например, для стандартной регистрации сервиса Агента сервера 1С:Предприятия в отладочном режиме набор параметров должен быть таким:

"C:\Program Files\1cv81\bin\ragent.exe" -instsrvc -usr .\USR1CV81 -pwd Password -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server" -debug

Для удаления сервиса нужно указать параметр -rmsrvc. Например:

"C:\Program Files\1cv81\bin\ragent.exe" -rmsrvc

Иногда бывает полено изменить строку запуска Агента сервера или другие параметры сервиса Агента, например, включить режим отладки, или создать несколько сервисов разных версий. Диалог свойств сервиса не позволяет редактировать строку запуска сервисного приложения и некоторые другие параметры, например, идентификатор сервиса. Для редактирования потребуется утилита regedit, предназначенная для просмотра и редактирования системного реестра Windows.

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

Запустите утилиту regedit (откройте Start -> Run и наберите regedit) и выберите ветку:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent

Среди ее параметров есть параметр ImagePath, значением которой является строка запуска Агента сервера 1С:Предприятия. Здесь можно добавить новые параметры строки запуска или поменять значения существующих. Полный список возможных параметров приведен в книге "1С:Предприятие 8.1 Клиент-сервер" документации.

При необходимости регистрации нескольких независимых сервисов Агента сервера 1С:Предприятия нужно указать им разные загрузочные модули, разные порты и разные каталоги данных кластера. Еще требуется зарегистрировать их с разными идентификаторами сервисов. Это можно сделать так:

Создать первый сервис:

"C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server"

Создать второй сервис:

"C:\Program Files\1cv81_10\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d "C:\Program Files\1cv81_10\server"

Быть может, его идентификатор тоже изменить. Для этого: выбрать ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent
и изменить ее имя, например на:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent Second

Что не может сделать программа установки 1С:Предприятия

Как уже говорилось, программа установки 1С:Предприятия копирует загрузочные модули 1С:Предприятия и выполняет необходимую регистрацию в COM и в менеджере сервисов Windows. Выше приведена информация, необходимая для понимания внутренних механизмов этой регистрации. Если на серверном компьютере установлен не только сервер, но и клиентская часть 1С:Предприятия, то она готова к работе сразу после установки (и подключения ключей защиты).

Чтобы сервер 1С:Предприятия был доступен с других компьютеров в локальной сети, необходимо проверить сетевые настройки на серверном и клиентском компьютере, а также для сети в целом. Для передачи данных между клиентскими приложениями и сервером 1С:Предприятия, а также между процессами кластера серверов используется TCP/IP. От правильности его настройки зависит работа 1С:Предприятия в варианте клиент-сервер.

Процессы кластера серверов 1С:Предприятия соединяются друг с другом по адресам, определенным в качестве значений свойства "Компьютер" диалога свойств рабочих серверов. Для кластера необходимо, чтобы значением свойства "Компьютер" был либо IP-адрес в точечной нотации, либо такой символический адрес, по которому может быть определен IP адрес при помощи функции gethostbyname, определенной в программном интерфейсе протокола TCP. Определение IP-адреса выполняется либо на основании локальной таблицы символических адресов (C:\WINNT\system32\drivers\etc\hosts), либо по таблицам адресов в доступных DNS серверах. Если по символическому адресу рабочего сервера его IP-адрес не определяется или определяется неправильно (например, IP-адрес не совпадает с фактическим IP-адресом данного компьютера), то кластер работать не будет. Важно, чтобы имена компьютеров и их адреса, определенные в Windows на каждом из рабочих серверов кластера, не противоречили их именам в DNS.

На каждом рабочем сервере процессы кластера используют следующие порты: IP порт рабочего сервера (обычно 1540); IP порты из диапазонов IP портов рабочего процесса (обычно 1560-1591). Кроме того, на центральном сервере кластера используется порт кластера (обычно 1541). Если в системе используются сетевые экраны, то передача данных по этим портам должна быть разрешена. Вместо разрешения портов из приведенного списка можно разрешить передачу данных процессам кластера (ragent, rmngr, rphost).

Соединение клиентского приложения 1С:Предприятия с сервером выполняется в 2 этапа. Сначала оно устанавливает соединение с менеджером кластера. При этом используется адрес центрального сервера (символический или числовой) и порт кластера (обычно 1541). Далее клиентское приложение устанавливает соединение с одним из рабочих процессов. В качестве его адреса используется значение свойства "Компьютер" соответствующего рабочего сервера и порт рабочего процесса, который выбирается из диапазона IP портов рабочего сервера. Передача данных на эти порты должна быть разрешена во всех сетевых экранах на маршруте от компьютера клиентского приложения до компьютеров кластера серверов 1С:Предприятия. Определение IP адреса серверных процессов выполняется при помощи функции gethostbyname на компьютере клиента. Важно, чтобы имена центрального и рабочих серверов и их адреса, определенные в Windows на каждом из серверов кластера, не противоречили их именам в DNS, доступном компьютеру клиента.

И последнее. Очевидно, что для успешного доступа к серверу 1С:Предприятия с других компьютеров он должен быть в сети и должны быть выполнены необходимые для этого настройки. Подключение к сети и методика настройки относятся к администрированию сетей на базе Microsoft Windows и описаны в соответствующих инструкциях.

Особенности настройки SQL-сервера

1С:Предприятие в варианте «клиент-сервер» использует для хранения данных SQL-сервер. При этом к SQL-серверу обращается только Сервер 1С:Предприятия. Клиенты 1С:Предприятия непосредственного доступа к SQL-серверу не имеют. Установка и настройка SQL-сервера подробно описана в документации по Microsoft SQL Server. Для успешной работы Сервера 1С:Предприятия с SQL-сервером необходимо обратить особое внимание на следующие настройки.

Необходимые компоненты SQL-сервера. Для доступа к SQL-серверу со стороны Сервера 1С:Предприятия на компьютере Сервера 1С:Предприятия должны быть установлены компоненты Microsoft Data Access 2.6 или более поздний.

Аутентификация пользователя SQL-сервером. Права доступа к базам данных SQL-сервера определяются пользователем, от имени которого происходит обращение к базам данных. С компьютера, на котором установлен SQL-сервер, запустим утилиту SQL Server Enterprise Manager, найдем узел Local (Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local)) и откроем его свойства. На закладке Sequrity можно видеть, что SQL-сервер поддерживает два способа аутентификации пользователей: SQL Server and Windows и Windows only. Аутентификация Windows позволит Серверу 1С:Предприятия обращаться к SQL-серверу только от имени пользователя USR1CV81, что не позволяет различать права доступа до различных информационных баз, обслуживаемых одним сервером 1С:Предприятия. Рекомендуется выбирать режим SQL Server and Windows. В этом случае обращение к конкретной информационной базе будет выполняться от имени пользователя, который задан в качестве пользователя SQL-сервера при создании данной информационной базы. Важно, что этот пользователь должен иметь не только полные права на базу данных информационной базы, но и права на создание баз данных в SQL-сервере и на чтение таблиц базы данных Master.

Читайте также: