WINE@Etersoft/Настройка 1С 7.7 для работы с SQL-сервером
Содержание
Настройка 1С 7.7 для работы с SQL-сервером
Для использования SQL-версии платформы 1С: Предприятие потребуется WINE@Etersoft SQL. Платформа 1С: Предприятие 7.7 изначально поддерживает только MS SQL Server. С помощью продукта SELTA@Etersoft (SQL-транслятора), устанавливаемого на клиентские машины, возможно использовать PostgreSQL для хранения базы. О настройке 1C и сервера PostgreSQL см. в документации по SELTA@Etersoft.
Настройка сервера MS SQL 2000
Пользователь, от имени которого будут происходить соединения, должен являться владельцем базы (dbowner). Для смены владельца базы в Query Analizer нужно выполнить следующий код:
use base_1c
EXEC sp_changedbowner 'user1c'
где base_1c- имя базы данных, user1c- имя пользователя, который должен стать владельцем базы.
На сервере должна быть включена авторизация через внутренние механизмы SQL-сервера. Удостоверьтесь, что сервер слушает порт TCP/IP. Проверить, что экземпляр SQL-сервера слушает
порт TCP/IP можно в текущем журнал ошибок. При корректном запуске в журнал записываются следующие строки: 2003-11-06 09:49:36.17 server SQL server listening on TCP, Shared Memory, Named Pipes.
С другой машины можно проверить, открыт ли нужный порт на сервере (командой nmap адрес_сервера
):
PORT STATE SERVICE
1433/tcp open ms-sql-s
Настройка клиентской части
При создании новой базы нужно создать базу в SQL-сервере, запустить Конфигуратор для нового каталога базы, и в появившемся окне выбора формата хранения данных выбрать пункт MS SQL Server. Далее в Конфигураторе выбрать пункт Параметры базы данных SQL
из меню Администрирование
. В соответствующих полях указать IP-адрес сервера, базы данных, имя пользователя и пароль для входа на сервер. Обратите внимание, что указание имени машины в домене работать не будет.
Настройка ODBC
Некоторые приложения (например, MS Access) требуют настройки соединения ODBC. Для этого используются программы CLICONFG.EXE и ODBCAD32.EXE, которые находятся в каталоге C:\windows\system32
. Для большинства программ понадобится указать протокол соединения TCP/IP и порт (обычно 1433). Там же можно проверить соединение с сервером, указав имя пользователя, пароль и базу для подключения.
Возможные ошибки
Удостоверьтесь через wine --version
, что вы используете WINE@Etersoft SQL.
Доступ к базе на сервере возможен только из одного каталога информационной базы
Обычно причина в том, что пользователь пытается обратиться к базе данных, указав иной каталог с конфигурацией, чем указал другой пользователь, уже запустивший программу. Короче говоря, одна и та же конфигурация не может располагаться в разных каталогах.
Также возможно используется неверный доступ к файлам, например каталог с базой смонтирован без поддержки блокировок (например, через smbfs или ncp). Для организации корректного доступа к сетевым ресурсам необходимо использовать протоколы сетевых файловых систем NFS или CIFS.
При отсутствии сервера, закрытом порту или неверном адресе будет выдаваться подобное сообщение при подключении:
SQL State: 08001 Native: 17 Message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL-сервер не существует, или отсутствует доступ SQL State: 01000 Native: 3 Message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (connect()).
Удостоверьтесь, что на клиентской машине разрешено обращение по этом порту (для проверки остановите сетевой экран командой iptables -F
.
Полезные ссылки
Решение проблем по подключению к серверу MS SQL: http://www.sql.ru/articles/mssql/2005/013001TtroubleshootingConnectivitySQLServer2000.shtml
Часто задаваемые вопросы по SQL: http://www.1csql.ru/materials/faq/admin.html
Возможные причины появления сообщения об ошибке SQL-сервер не существует, или отсутствует доступ
: http://support.microsoft.com/kb/328306/ru
Использование MS SQL Server 2005 с 1С: Предприятием v7.7: http://www.script-coding.info/SQL2005.html
Про ошибку транзакции (истекло время ожидания транзакции): http://www.softpoint.ru/article_id102.htm