1с ошибка установки соединения. Ошибка субд: database не пригоден для использования

Предыстория… В нашей компании успешно работает 1С:Предприятие версии 8.2, в которой заведено порядка 100 интенсивно используемых бухгалтерских баз. Под это дело выделен отдельный сервер с довольно внушительными характеристиками, т.к. в процессе эксплуатации выяснилось, что связка 1С:Предприятие 8.2 + MS SQL 2005 очень требовательны к таким ресурсам “железа”, как жесткие диски, процессор, а самое главное – количество оперативной памяти. Стоимость подобного сервера для нас превысило 250 тысяч рублей (не считая лицензий как на ОС, так и на саму 1С).

Выделять отдельно “железо” под 1С:Предприятие версии 8.3 посчитали делом неразумным, к тому же платить еще порядка 100 тысяч рублей за второй комплект ключей для сервера 1С, ну очень накладно! Попытка установить “в лоб” 1С:Предприятие версии 8.3 привело к тому, что был потерян кластер с уже существующими базами. Вот тут-то и вскрылись особенности установки и запуска двух серверных версий 1С:Предприятия на одном компьютере.

Программа установки 1С:Предприятия 8.2 и 8.3 настраивает программное обеспечение на использование своих стандартных портов: 1540 (используемый агентом сервера), 1541 (используемый менеджером кластера), 1560-1591 (диапазон портов, используемый для рабочих процессов). Поэтому, если сервер 1С:Предприятие 8.3 должен работать одновременно с сервером 1С:Предприятия 8.2, то первому необходимо указать порты отличные от тех, что уже использует работающий экземпляр сервера предыдущей версии.

На компьютере с уже установленным сервером 1С:Предприятия версии 8.2 зарегистрирован и запущен сервис “Агент сервера 1С:Предприятия 8.2”, уже использующий указанные выше стандартные порты. Если вы установили “рядом” сервер 1С:Предприятие 8.3, то запуск его сервиса “Агент сервера 1С:Предприятия 8.3” завершится аварийно, т.к. он попытается использовать уже “занятые” порты. Чтобы избежать этого, необходимо выполнить следующее.

(Все описанное ниже справедливо для Windows Server 2008 R2 Enterprise (и Standart) 64 bit + SP1 и 32-х разрядных серверных версий 1С:Предприятие 8.2 и 8.3).

1С:Предприятие 8.2 (версия 8.2.19.90) мной устанавливались как сервис Windows с правами для запуска от имени существующего локального пользователя “Администратор”.

По окончании установки в окне Диспетчер сервера -> Конфигурация -> Службы мы видим запущенную службу “Агент сервера 1С:Предприятия 8.2”:

запущенную с параметрами:

C:\Program Files (x86)\1cv82\8.2.19.90\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files (x86)\1cv82\srvinfo"

Сервер 1С:Предприятия 8.3 (версия 8.3.4.437) мной устанавливался аналогичным образом:

Однако, как мы видим в окне Диспетчер сервера -> Конфигурация -> Службы , служба “Агент сервера 1С:Предприятия 8.3” не стартовала:

Теперь нам надо открыть окно командной строки cmd и перейти в каталог bin установленной серверной версии 1С:Предприятия 8.3 и попытаться удалить регистрацию сервиса “Агент сервера 1С:Предприятия 8.3” командой ragent.exe -rmsrvc:

C:\Users\администратор>cd C:\Program Files (x86)\1cv8\8.3.4.437\bin C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -rmsrvc Error! ControlService error!

У меня выскочила ошибка Error! ControlService error! , что в принципе ожидаемо, т.к. сервис должным образом не зарегистрировался в системе. Но на самом деле, он должен удалиться. В окне Диспетчер сервера -> Конфигурация -> Службы вы его больше не увидите.

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

C:\Program Files (x86)\1cv8\8.3.4.437\bin>

  • -port 2540 — порт, на котором будет работать агент сервера 1С:Предприятие версии 8.3;
  • -regport 2541 — порт, через который будет осуществляться администрирование кластера сервера 1С:Предприятие версии 8.3;
  • -range 2560:2591 — диапазон портов для рабочих процессов;
  • -в “C:\Program Files (x86)\1cv8\srvinfo” — каталог для хранения информации о новом создаваемом кластере сервера 1С:Предприятие версии 8.3;
  • -usr .\Администратор — пользователь, от имени которого будет осуществлен запуск агента сервера 1С:Предприятие версии 8.3;
  • -pwd ******** — пароль для указанного пользователя (введите свой).

После этого вы вновь увидите сервис “Агент сервера 1С:Предприятия 8.3” в окне Диспетчер сервера -> Конфигурация -> Службы . Вам осталось только запустить его командой ragent.exe -start:

C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -start

В окне Диспетчер сервера -> Конфигурация -> Службы мы видим службу “Агент сервера 1С:Предприятия 8.3”:

запущенную с параметрами:

где поле “Исполняемый файл” имеет настройку:

C:\Program Files (x86)\1cv8\8.3.4.437\bin\ragent.exe" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\Program Files (x86)\1cv8\srvinfo"

А теперь самое интересное: вам придется проделывать данную операцию каждый раз, когда возникнет необходимость обновить версию сервера 1С:Предприятия 8.3! “Браво”, разработчики…

Теперь немного о том, каким образом жить с указанной связкой. Необходимости запускать саму программу 1С:Предприятия старой версией (из папки C:\Program Files (x86)\1cv82\common) больше нет. При установке 1С:Предприятия версии 8.3 ярлык на рабочем столе автоматически перезапишется на запуск программы из папки C:\Program Files (x86)\1cv8\common . Если вы будете открывать бухгалтерскую базу, работающую на сервере версии 8.2, она автоматически откроется в нужной версии тонкого клиента.

Шаблоны для создания баз (бухгалтерских или ЗИК ) помещаются по умолчанию в каталог пользователя, от имени которого вы запустили их установку. Если вы делаете это от имени администратора, то найдете их по пути C:\Users\администратор\AppData\Roaming\1C\1cv8\tmplts . Если вы захотите добавить новую базу на основе установленного шаблона, тонкий клиент версии 8.3 увидит их все:

Теперь, если вам необходимо прописать базу версии 8.3, то вам необходимо будет указывать в поле “Кластер серверов 1С:Предприятия” компьютер, с установленным сервером 1С версии 8.3 и через двоеточие порт менеджера кластера, который вы указали при регистрации агента сервера 1С версии 8.3. В моем случае – это 2541:

При добавлении в список бухгалтерских баз новой, находящейся на сервере предприятия под управлением 1С:Предприятие версии 8.3 также необходимо указывать имя сервера, а через двоеточие – порт, используемый менеджером кластера:

Необходимость производить регистрацию утилиты для администрирование кластера обоих сервером 1С (как версии 8.2, так и 8.3) после каждой установки/обновления сохраняется.

Теперь перейдем к администрированию кластеров под управлением различных версий серверов 1С:Предприятие на одном компьютере. Откройте в проводнике папку по пути C:\Program Files (x86)\1cv8\common , и создайте на рабочем столе ярлык для консоли администрирование кластера версии 8.3 (ярлык лучше сразу переименовать соответствующим образом, например 1CV8.3 ):

Таким же образом, откройте в проводнике папку по пути C:\Program Files (x86)\1cv82\common , и создайте на рабочем столе ярлык для консоли администрирование кластера версии 8.2 (ярлык лучше сразу переименовать, например в 1CV8.2 ):

На рабочем столе вы получите следующее:

Запустим утилиту администрирование кластера сервера 1С:Предприятие версии 8.2 ярлыком “1CV8.2” (т.к. сервер использует порты по умолчанию, то кластер отобразится без проблем):

При попытке открыть данный кластер из консоли, предназначенной для администрирование кластера сервера 1С:Предприятие версии 8.3 (по ярлыку с рабочего стола с именем “1CV8.3”) вы увидите ошибку:

Ошибка соединения с сервером 1С:Предприятия 8.3: Различаются версии клиента и сервера (8.3.4.437 - 8.2.19.90), клиентское приложение: Консоль кластера

Для отображения нужного нам кластера сервера 1С:Предприятие версии 8.3 необходимо в данной оснастке создать новый центральный сервер 1С:Предприятия 8.3:

  • в поле Имя необходимо указать имя компьютера с установленным сервером 1С:Предприятие 8.3;
  • в поле IP порт необходимо указать порт, на котором работает агент сервера 1С:Предприятия 8.3, который вы обозначали при настройке службы запуска агента;
  • в поле Описание обозначить описание.

После нажатия кнопки “ОК” вы сможете увидеть ваш новый кластер, который получился после установки сервера 1С:Предприятие версии 8.3.

Т.е. администрирование кластеров различных версий сервера 1С:Предприятия, установленных на одном компьютере, осуществляется соответствующими оснастками.

Вот, в принципе, и все. Удачи!

_________
UPD . Как показала практика, способ, описанный в данной статье, не подходит для одновременного запуска на одном сервере нескольких экземпляров сервера 1С:Предприятия версии 8.3. При попытке создать новую службу агента 1С от другой версии 1С:Предприятия, работающую на иных портах, операция:

C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -instsrvc -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files (x86)\1cv8\srvinfo" -usr .\Администратор -pwd ********

заканчивается тем, что удаляется уже работающая служба старой версии 1С 8.3, а новая не создается.

В я описал способ установки, создания соответствующих и запуска на одном сервере нескольких версий сервера 1С:Предприятия 8.3…

Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.

Общая информация

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

В небольших внедрениях сервер 1С и сервер СУБД обычно совмещают на одном физическом сервере, что немного сужает круг возможных ошибок. В нашем случае будет рассматриваться ситуация, когда сервера разнесены по разным машинам. В нашей тестовой лаборатории мы развернули следующую схему:

В нашем распоряжении имеются два сервера под управлением Ubuntu 12.04 x64, на одном из них установлен сервер 1С:Предприятие версии 8.3, на другом PostgreSQL 9.04 от Ethersoft, а также клиент под управлением Windows. Напоминаем, что клиент работает только с сервером 1С, который, в свою очередь, формирует необходимые запросы к серверу СУБД. Никаких запросов от клиента к серверу управления базами данных не происходит .


ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Ident)

Данная ошибка возникает при разнесении серверов по разным ПК из-за неправильно настроеной проверки подлинности в локальной сети. Для устранения откройте /var/lib/pgsql/data/pg_hba.conf , найдите строку:

Host all all 192.168.31.0/24 ident

и приведите ее к виду:

Host all all 192.168.31.0/24 md5

где 192.168.31.0/24 - диапазон вашей локальной сети. Если такой строки нет, ее следует создать в секции IPv4 local connections .

Сервер баз данных не обнаружен
could not translate host name "NAME" to address: Temporary failure in name resolution

На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файл hosts на клиенте, что не дает никакого результата...

А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл /etc/hosts на платформе Linux или в на платформе Windows.

Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.

Ошибка при выполнении операции с информационной базой
server_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.

Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows запись вида:

192.168.31.83SRV-1C-1204

где указываете адрес и имя вашего сервера 1С:Предприятия. В случае использования локального DNS следует добавить A-запись для сервера 1С.

Ошибка СУБД: DATABASE не пригоден для использования

Гораздо более серьезная ошибка, которая говорит о том, что вы установили несовместимую с 1С:Предприятие версию PostgreSQL или допустили грубые ошибки при установке, например не установили все необходимые зависимости, в частности библиотеку libICU .

Если вы имеете достаточный опыт администрирования Linux систем, то можете попробовать доустановить необходимые библиотеки и заново инициализировать кластер СУБД. В противном случае PostgreSQL лучше переустановить, не забыв удалить содержимое папки /var/lib/pgsql .

Также данная ошибка может возникать при использовании сборок 9.1.x и 9.2.x [email protected] , подробности смотрите ниже.

Ошибка СУБД:
ERROR: could not load library "/usr/lib/x86_64-linux-gnu/postgresql/fasttrun.so"

Довольно специфичная ошибка, характерная для сборок 9.1.x и 9.2.x [email protected] , также может приводить предыдущей ошибке. Причина кроется в неисправленной ошибке в библиотеке fasttrun.so. Решение - откатиться на сборку 9.0.x [email protected] .

Ошибка СУБД
ERROR: type "mvarchar" does not exist at character 31

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

или через средство запуска 1С.

Сервер баз данных не обнаружен
ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)

Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия .

Сервер баз данных не обнаружен
FATAL: database "NAME" does not exist

Еще одна очень простая ошибка. Смысл ее сводится к тому, что указанная БД не существует. Чаще всего возникает из-за ошибки в указании имени базы. Следует помнить, что информационная база 1С в кластере и база данных СУБД - две разные сущности и могут иметь различные имена. Также следует помнить, что Linux системы чувствительны к регистру и для них unf83 и UNF83 два разных имени.

  • Теги:

Please enable JavaScript to view the

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

Устранить проблему в работе 1С можно несколькими способами.

Возникающие ошибки имеют различную подноготную, рассортировать их можно по уровням возникновения:

  • Неправильное прописывание кодов разработчиками самой один-эски;
  • Ошибки, допущенные программистами, которые дорабатывают (изменяют) продукт применительно к требованиям (задачам) конкретного пользователя;
  • Сбои, вызванные погрешностями работы кэш-памяти, чаще всего ставящие в тупик программистов;

Что касается ошибки «сервер 1С:Предприятия не обнаружен», то её нереально отнести к одному из названных, так как подобное уведомление является указанием пользователю на невыполнение определённого необходимого действия для работы программы.

Исправляемся - запускаем сервер

Итак - ситуация, которой посвящена эта публикация возникает в том случае, когда служба агент-сервера или отключена, или остановлена. Отметим, что, как правило, причины этого остаются невыясненными (кто ж признается).

Эта служба запускается двояко - либо как приложение, либо как служба. Посмотрим, как это делать в обоих случаях:

Как приложение

Чтобы запустить её в виде приложения, выполняется команда:

При этом указываются (в своих настройках) порт, диапазоны портов, уровень и каталог. Если эти параметры не указывать, то их значения будут программой установлены «по умолчанию».

В виде службы

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

Если же первоначально агент был установлен приложением, то можно вручную провести её регистрацию и сделать запуск. Это произойдёт по команде (не забудьте о параметрах):

ragent.exe -instsrvc -usr ‹указываем имя› -pwd ‹указываем пароль›

Port ‹для порта› -regport ‹для порт› -range ‹диапазоны портов›

Seclev ‹нужный уровень› -d ‹указывается каталог›

Результатом регистрации будет создание новой Службы (в этом случае для 1С версии 8.3 для 64-разрядки):

На память

Для удаления (отмены регистрации) службы:

Остановка:

Теперь вы всё знаете о причинах проблемы «сервер 1С:Предприятия не обнаружен» и о том, что нужно сделать при её появлении.

Оставляйте свои комментарии.