Актуальной проблемой использования 1С Предприятия 7.7 для SQL является практическая невозможность вписать ее в современную IT инфраструктуру. Не менее серьезные затруднения возникают и при попытке лицензирования пиратских версий. Основной камень преткновения - возможность официальной работы только с SQL Server 2000. Однако выход есть: компания Etersoft разработала транслятор запросов MS SQL в запросы PostgreSQL, что позволяет заменить дорогой и устаревший SQL Server 2000 бесплатным Postgre. Насколько удобно и надежно такое решение мы решили рассмотреть в данной статье.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Мы не будем заострять особого внимания на проблемах использования SQL версии 1С Предприятие 7.7, они и так всем известны. Это невозможность полноценной работы в среде Windows 7 (Vista) / Server 2008 и высокая стоимость SQL сервера и лицензий к нему в случае лицензирования. Однозначно рекомендовать переход на 1С Предприятие 8 не всегда представляется возможным, зачастую конфигурации довольно сильно переписаны под особенности конкретного предприятия и их адаптация к "восьмерке" требует довольно серьезных затрат, как финансовых, так и временных (надо заново доработать конфигурацию, отладить и протестировать). Компромиссным решением в данной ситуации будет использование 1С Предприятия совместно с PostgreSQL, для этого мы рекомендуем использовать продукт SELTA@Etersoft. Данный продукт является коммерческим, однако его стоимость значительно ниже стоимости SQL Server от Microsoft и лицензий к нему, для оценки целесообразности перехода можно запросить полнофункциональную пробную версию на сайте компании.
Итак, что нам понадобится? Собственно SELTA@Etersoft и файл лицензии к ней, а также PostgreSQL в редакции Etersoft. В качестве платформы мы будем использовать Windows Server 2008 R2 и проверим работу программы с использованием клиентских компьютеров под управлением Windows ХР и Windows 7.
Установка
Для успешной установки SELTA@Etersoft в среде Windows 7 (Vista) / Server 2008 необходимо выполнить ряд подготовительных действий:
- Запуск установки должен осуществляться от имени Администратора.
- Перед установкой необходимо сделать Администратора владельцем файла c:\windows\system32\odbcbcp.dll и дать ему все права на этот файл.
- Проверить, что Администратор имеет полные права на ветку реестра HKLM/SOFTWARE/ODBC/ODBCINST.INI/SQL SERVER.
Теперь можно начинать установку SELTA@Etersoft.
В ходе установки мы столкнулись с нестандартным поведением инсталлятора: на определенном моменте процесс установки остановился.
Как выяснилось, инсталлятор ожидает нашего решения в диалоговом окне, которое почему-то выводится под основным окном. Для доступа к нему переместите основное окно в другую часть экрана.
С какими либо другими сложностями мы не столкнулись, по завершении установки перезагружаем ПК и приступаем к инсталляции PostgreSQL, запустив SETUP.BAT из комплекта поставки.
Принимаем значения по умолчанию до появления экрана Конфигурация сервиса, здесь мы указываем пользователя (по умолчанию postgres), от имени которого будет запускаться сервис и пароль для него. Следует помнить, что в данном случае postgres это системный пользователь (не путать с одноименным суперпользователем PostgreSQL) и к его паролю предъявляются установленные в системе требования (по умолчанию обязательно наличие заглавных и строчных букв, цифр и длина не менее 7 символов).
Следующий экран содержит настройки сервера PostgreSQL. Обязательно установите галочку Поддерживать соединения с любых IP..., даже в том случае если планируется работа исключительно в терминальном режиме. Здесь снова фигурирует пользователь postgres, теперь это суперпользователь БД, от имени которого мы будем подключаться к PostgreSQL, устанавливаемый для него пароль должен отличатся от пользователя сервиса.
Перед тем как нажать кнопку Далее, обязательно проверьте состояние службы "Вторичный вход в систему", для нее должен быть установлен автоматический тип запуска, а сама она должна быть запущена.
Если это не так - исправьте, иначе получите следующую ошибку:
Настройка на сервере
Завершив установку PostgreSQL, запускаем SELTA@Etersoft, не забыв поместить файл лицензии в каталог установки последней.
Теперь создадим и инициализируем новую БД для конфигурации 1С: Утилиты - Инициализация БД. Появится окно параметров соединения с сервером PostgreSQL. Адрес сервера необходимо указать в виде IP: 127.0.0.1 или адрес сетевого интерфейса сервера (в нашем случае 192.168.85.131). Ниже указываем имя суперпользователя (postgres) и его пароль.
Появившееся окно позволяет создать новую БД, либо инициализировать для работы с Selta уже существующую, хотя мы крайне не советуем этого делать (особенно если в базе есть данные).
После чего в БД можно загружать данные. Мы не будем заострять на этом внимание, весь процесс был подробно описан нами в статье Настраиваем 1С Предприятие 7.7 для работы с SQL Server 2000. И для файлового и для SQL вариантов 1С процесс одинаков: выгрузка в файл - загрузка. Единственная тонкость: эту операцию следует проводить на машине с Windows XP / Server 2003. Нам так и не удалось загрузить базу под Windows 7 / Server 2008 из-за ошибки "порядок сортировки данных отличается от системного", хотя мы предварительно загружали базу в среду новых ОС и приводили кодовую страницу в соответствие с системной, и только потом делали выгрузку.
Загрузив информационную базу в БД можем устанавливать версию 1С для SQL и настраивать базу для работы с PostgreSQL сервером. Здесь все делается так-же как при работе с MS SQL (во всяком случае сама 1С продолжает так "думать"). Опытным путем мы выяснили что имя SQL сервера в 1С лучше указывать в виде IP адреса, в этом случае соединение с сервером БД происходит гораздо быстрее.
Мы испытали работу 1С как непосредственно на сервере в терминальном режиме, так и опубликовав 1С:Предприятие с помощью RemoteApp, в обоих случаях все работало нормально. При расположении БД на ПК с Windows 7 / Server 2008 не забываем добавлять в папку BIN (в каталоге установки 1С) сигнальный файл ordnochk.prm (скачать).
Настройка на клиентских ПК
Предварительно на каждый клиентский ПК устанавливаем SELTA@Etersoft, для Vista / 7 не забываем установить необходимые права на файлы и ветки реестра (см. выше), затем устанавливаем 1С для SQL и подключаем необходимые информационные базы. При включенном брандмауэре проверяем и, при необходимости, открываем порт 5432 для PostgreSQL. Мы одинаково успешно проверили работу 1С:Предприятие в операционных системах Windows XP и Windows 7 (32 и 64 бит).
Необходимые действия при обновлении конфигурации 1C
Сразу обращаем ваше внимание, все административные действия с информационной базой, в том числе обновление, следует производить в среде Windows XP / Server 2003. После каждого обновления конфигурации следует пересоздать триггеры. Это связано с особенностями работы 1С + Selta + PostgreSQL, невыполнение этого требования способно существенно замедлить работу со справочниками и журналами.
Для работы с PostrgreSQL мы рекомендуем установить pgAdmin, удобную утилиту управления SQL сервером. Для пересоздания триггеров следует при помощи pgAdmin выполнить следующий запрос:
SELECT pg_create_delete_trigger_from_mask()
Для этого разворачиваем дерево Базы, выбираем необходимую БД и нажимаем кнопку Выполнить пользовательские SQL запросы (1), в открывшееся окно вводим запрос и жмем кнопку Выполнить запрос (2).
- Etersoft WIKI: SELTA
- Настройка курсоров на триггерах для 1C 7.7+Selta+Postgresql
- 1С Предприятие 7.7 Тестирование производительности в различных режимах
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии