1с предприятие postgresql. Устанавливаем PostgreSQL

В этой статье мы постараемся рассказать, как самостоятельно выполнить публикацию базы данных на сервере, как связать PosgreSQL и 1С и какие подводные камни могут встретиться на вашем пути.

Для чего это надо

Использование позволяет:

  1. Снизить системные требования к компьютерам пользователей, за счет перераспределения нагрузки;
  2. Работать с базами данных больших объемов;
  3. Использовать тонкий клиент для работы с информацией;
  4. Оптимизировать время выполнения запросов и обращений к базе данных;
  5. Автоматизировать выполнение фоновых и регламентных заданий;
  6. Настроить резервное копирование и ускорить время восстановления базы данных из сохраненной копии.

Условия для решения задачи

На старте мы имеем:

  • Персональный компьютер с установленной 64 разрядной операционной системой Windows 7;
  • Инсталлятор 1С, платформа 8.3.10.2505;
  • Файловую базу данных «Зарплата и управление персоналом», версия 3.1.3.223;
  • Оптимизированный для 1С postgreSQL установщик PostgreSQL 64-bit 9.4.11;
  • Дополнительную утилиту для администрирования сервера pgAdmin 4.

Приступим к установке.

Установка сервера и его настройка

В нашу задачу не входит вопрос о тонкостях настройки PostgreSQL сервера и каких-либо его нюансах. Мы постараемся максимально просто и доступно рассказать, как подружить его с 1С. Исходя из вышесказанного, мы не будем менять параметры, автоматически выдаваемые инсталлятором.

Дойдя до окна (Рис.1) мы должны будем ввести пароль супер пользователя.

Если Вы настраиваете рабочий сервер, одной из задач которого будет являться защита данных и организация стороннего доступа к ним, то помимо пароля следует так же изменить имя главного пользователя сервера.

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

Так как на подопытном компьютере установлена только одна 4GB плитка оперативной памяти, программа автоматически может увеличить её объем, о чем и сообщает окно (Рис.2).

Рис. 2

В принципе, больше здесь настраивать нечего. После установки в главном меню появится соответствующая папка (Рис.3).

Рис. 3

Отсюда можно останавливать, перезагружать и стартовать сервер.

Ее установка также не представляет никаких проблем.

Выполняем её запуск и видим окно (Рис.4)

Рис.4

Дальнейшая последовательность действий:


На этом подготовка PostgreSQL к работе вроде бы закончена, но что делать, если наш сервер должен обслуживать несколько различных баз данных? Как физически разделить места их хранения?

Для этого необходимо вызвать контекстное меню ветки «Tablespaces» и создать новый элемент. Для каждой базы данных можно прописать:

  • Имя места хранения;
  • Месторасположение рабочей директории;
  • Создать комментарий, содержащий подробную информацию о месторасположении таблиц.

Теперь приступим к настройке 1С.

Установка и настройка 1С

Запускаем инсталлятор платформы и устанавливаем следующие компоненты:

  1. Сервер 1С Предприятия;
  2. Утилиту администрирования сервера;
  3. Модули расширения сервера;
  4. Саму платформу.

Это обязательный набор, остальные компоненты устанавливаются по желанию (Рис.9).

Рис.9

На втором шаге нам предложат выбрать пользователя или создать нового (Рис.10).

Рис.10

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

  • Вход в систему как сервис;
  • Вход в систему как пакетное задание.

Запустив утилиту администрирования, убеждаемся, что наш сервер активен.

Добавляем новую информационную базу в дерево администрирования (Рис.11)

Рис.11

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


Чуть подробнее про эту форму:

  1. Кластер серверов – если база находится на том же компьютере, что и сервер, в качестве значения здесь будет использована строка «localhost»;
  2. Имя базы в кластере – именно под этим именем администратор сервера будет видеть информационную базу в дереве кластера;
  3. Тип СУБД – так как мы поднимаем PostgreSQL cервер, именно его и надо указать в окне;
  4. Имя базы данных – это для идентификации базы в утилите администрирования PostgreSQL сервера;
  5. Пользователь – суперюзер указанный при создании сервера;
  6. Пароль – соответственно пароль суперюзера.

Таким образом, мы создали пустую информационную базу 1С на сервере PostgreSQL. Чтобы начать с ней работать, достаточно в режиме «Конфигуратор» загрузить выгруженную из файлового варианта копию базы (в формате dt).

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

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

Настройка PostgreSQL под 1С

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

  • Для начала отключаем Energy Saving (в противном случае могут непредсказуемо вырасти задержки ответов из БД) и запрещаем своппинг разделяемой памяти.
  • Настраиваем основные параметры сервера СУБД (рекомендации по настройке описаны достаточно подробно, как на официальном сайте вендора, так и компанией 1С, поэтому остановимся только на самых важных).
  • В типовых рекомендациях компании 1С предлагается отключать механизмы HyperThreading. Но тестирование Postgres-pro на серверах, с включенной SMT (simultaneous multi threading), показало другие результаты .
Установка параметра shared_buffers в RAM/4 является рекомендацией по умолчанию, но пример Sql Server говорит о том, что чем больше памяти ему выделяется, тем лучше его производительность (при отключенном сбросе страниц в файл подкачки). То есть, чем больше страниц данных располагаются в оперативной памяти, тем меньше обращений к диску. Возникает вопрос: почему такой маленький кэш? Ответ прост: если shared_buffers большой, то часть неиспользуемых страниц свопируется на диск. Но как отследить момент, когда сброс прекратится, и показатель параметра будет оптимальным? Для достижения и выхода на оптимальный показатель shared_buffers, его значение необходимо поднимать на продуктиве ежедневно (по возможности) с определенным шагом прироста и смотреть, в какой момент начнется сброс страниц на диск (увеличится своп).
  • Помимо этого, на «большой параметр» негативно влияет работа с множеством мелких страниц, которые по умолчанию имеют размер 8Кб. Работа с ними увеличивает накладные расходы. Что можно с этим сделать для оптимизации под 1С? В версии postgreSQL 9.4 появился параметр huge_pages, который можно включить, но только в Linux. По умолчанию включаются огромные страницы с размером по умолчанию 2048 kB. Дополнительно поддержку данных страниц необходимо включить в ОС. Таким образом, оптимизировав структуру хранения, можно выйти на больший показатель shared_buffers.
  • work_mem = RAM/32..64 или 32MB..128MB Задает объем памяти для каждой сессии, который будет использоваться для внутренних операций сортировки, объединения и пр., прежде чем будут задействованы временные файлы. При превышении этого объема, сервер будет использовать временные файлы на диске, что может существенно снизить скорость обработки запросов. Данный параметр используется при выполнении операторов: ORDER BY, DISTINCT, соединения слиянием и пр.
  • Посчитать дополнительно данный параметр можно следующим образом: (Общая память shared_buffers – память на другие программы) / число активных соединений. Это значение можно уменьшать, следя за количеством создаваемых временных файлов. Такую статистику по размеру и количеству временных файлов можно получить из системного представления pg_stat_database.
  • effective_cache_size = RAM - shared_buffers основная задача этого параметра подсказать оптимизатору запроса, какой способ получения данных выбрать: полный просмотр или сканирование по индексу. Чем выше значение параметра, тем больше вероятность использования сканирования по индексу. При этом сервер не учитывает, что данные при выполнении запроса могут оставаться в памяти, и следующему запросу не надо их поднимать с диска.
  • Установка PostgreSQL

    Установка 1С на PostgreSQL под Windows – достаточно простой процесс. При запуске установочного пакета необходимо указать кодировку UTF-8. По сути, это единственный интересный нюанс и еще какая-то настройка PostgreSQL для 1С 8.3 из-под Windows не потребуется. Установка и настройка PostgreSQL для 1С на ОС linux может вызвать ряд затруднений. Для их преодоления в качестве примера рассмотрим запуск работы (используя дистрибутивы ведущего российского вендора PostgreSQL-Pro и компании 1С) PostgreSQL на сервере Ubuntu 16.04 х64

    Установка дистрибутивов 1С для СУБД PostgreSQL

    1.Скачиваем указанную позицию дистрибутива СУБД PostgreSQL:

    2.Выкладываем PostgreSQL на сервер;

    3.Распаковать установщик СУБД PostgreSQL можно командой:

    tar -xvf postgresql-9.4.2-1.1C_amd64_deb.tar.bz2

    4.Перед установкой дистрибутива СУБД PostgreSQL проверим наличие в системе необходимой локали (по умолчанию ru_RU.UTF-8):


    5.Если система, с которой будет работать PostgreSQL, ставилась с языком отличным от русского, необходимо создать новые локали:

    locale-gen ru_RU update-locale LANG=ru_RU.UTF8 dpkg-reconfigure locales

    6.Если необходимая локаль все же имеется, устанавливаем ее по умолчанию:

    locale –a nano /etc/default/locale Заменяем содержимое на LANG=ru_RU.UTF-8

    7.После перезагрузки, установим необходимые пакеты для нашей версии PostgreSQL:

    apt-get install libxslt1.1 ssl-cert

    8.Версия PostgreSQL пакета 9.4.2-1.1C связана с пакетом libicu версии libicu48. В репозитории нужной версии уже нет, ее можно скачать ;

    9.Скачиваем и помещаем в каталог, где хранятся скачанные файлы для PostgreSQL;

    10.Перейдя в каталог с файлами PostgreSQL, производим установку, последовательно набирая следующие команды:

    cd <Путь к папке с файлами> dpkg -i libicu48_4.8.1.1-3ubuntu0.6_amd64.deb dpkg -i libpq5_9.4.2-1.1C_amd64.deb dpkg -i postgresql-client-common_154.1.1C_all.deb dpkg -i postgresql-common_154.1.1C_all.deb dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

    11.Готово. Дистрибутив СУБД PostgreSQL установлен.

    Установка дистрибутивов PostgreSQL-Pro

    Для установки сервера необходимо выполнить подряд следующие команды:

    sudo sh -c "echo "deb http:// 1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list" wget --quiet -O - http:// 1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C-92 | sudo apt-key add - && sudo apt-get update sudo apt-get install postgresql-pro-1c-9.4

    Для доступа к серверу редактируем параметры в файле pg_hba.conf

    сd <Путь до каталога pg_hba.conf> cp pg_hba.conf pg_hba.conf.old bash -c "echo "local all postgres trust" > pg_hba.conf" bash -c "echo "host all all all md5" >> pg_hba.conf"

    Сам файл имеет следующую структуру:


    Файл хорошо документирован, но на английском языке. Кратко рассмотрим основные параметры:

    • Local локальное подключение только через unix
    • Host подключение по TCP/IP
    • Hostssl шифрованное SSL-подключение по TCP/IP (сервер должен быть собран с поддержкой SSL, также требуется установить параметр ssl)
    • Hostnossl нешифрованное подключение по TCP/IP
    • trust допустить без аутентификации
    • reject отказать без аутентификации
    • password запрос пароля открытым текстом
    • md5 запрос пароля в виде MD5
    • ldap проверка имени и пароля с помощью сервера LDAP
    • radius проверка имени и пароля с помощью сервера RADIUS
    • pam проверка имени и пароля с помощью службы подключаемых модулей

    Более подробную и развернутую информацию можно посмотреть в документации к продукту PostgreSQL.

    root@NODE2:/home/asd# service --status-all |grep postgres [ - ] postgresql root@NODE2:/home/asd# service postgresql start root@NODE2:/home/asd# service --status-all |grep postgres [ + ] postgresql

    После окончания основной установки, необходимо настроить конфигурационный файл сервера postgresql.conf, согласно специфики работы PostgreSQL, сервера 1С и конфигурации сервера Ubuntu.

    Оптимизация 1С под MS SQL Server

    Устанавливаем последние обновления для SQL Sever.

    Операционная система резервирует место и забивает его нулями, что занимает достаточно много времени при следующих событиях:

    • Создание базы данных;
    • Добавление файлов данных, журнал транзакций, к существующей базе данных;
    • Увеличение размера существующего файла (в том числе Autogrow-операций);
    • Восстанавливаем базы данных или группы файлов.

    Решается данная проблема добавлением роли (под которой запущен сервер) к пункту локальной политики безопасности «Выполнение задач по обслуживанию томов».

    При возможности необходимо разнести базу TempDB (особенно интенсивно она используется в режиме управляемых блокировок RCSI) и журнал транзакций на разные диски.

    На сервере, где работает SQL сервер, режим энергосбережения должен быть установлен в «Высокая производительность».

    В папке с файлами БД не должно быть сжатия.

    На вкладке «Память» для сервера устанавливаем минимальную планку в размере 50% от общего объема памяти. Максимальную рассчитываем по одной из формул:

    • Максимальная память = Общий объем – размер по ОС – размер под 1С (Если он есть, предварительно замерив счетчиками используемую память) или
    • Максимальная память = Общий объем – (1024* Общий объем/16384).

    Ограничиваем параметр DOP «Max degree of parallelism» и ставим его в значение «1».

    Актуализируем статистику по расписанию. Начиная с SQL Server 2008, обновление статистики вызывает перекомпиляцию запросов и, соответственно, очищает процедурный кэш, поэтому отдельную процедуру по очистке процедурного кэша выполнять не надо.

    Периодически проводим реиндексацию таблицы и дефрагментацию индексов.

    Устанавливаем правильную политику резервирования. Если вам не надо восстанавливаться на последний момент времени к краху системы, а последние минут 5 или больше для вашего бизнеса не критичны, то установите модель восстановления в «Простая». Этим вы ускорите в разы скорость при записи. Главное, чтобы дифференцированный бекап успевал выполняться за указанное время.

    Добиваемся улучшения при работе с TempDB при вводе/выводе посредством создания дополнительных файлов данных. Если логических процессоров меньше 8, рекомендуется создать файл данных для каждого логического процессора. Если логических процессоров больше 8, рекомендуется создать 8 файлов данных и, увеличивая на один при кратности 4, обязательно оценить нагрузку на TempDB.

    1 Ноя 2012 Преимущества использования свободно распространяемого программного обеспечения очевидны. К сожалению, очевидны и недостатки - нет официальной поддержки, зачастую документация противоречива, неполна и разбросана по разным источникам. Эта статья поможет разобраться с процессом установки PosgreSQL для "1С:Предприятие 8", избежав подводные камни, которые не описаны в официальной документации.

    Необходимые компоненты для установки

    СУБД PostgreSQL распространяется бесплатно и входит в комплект поставки сервера приложений "1С". Сервер приложений "1С:Предприятие 8" поставляется в двух вариантах: 32-разрядный и 64-разрядный. Postgre может работать с обоими.

    Итак, имеем на руках дистрибутивы:

    • Postgre: postgresql-9_1_2-1_1Cx64.zip, любезно предоставленный фирмой "1С".
    • Дистрибутив сервера приложений "1С:Предприятие" для Windows x64, версии 8.2.16.368.

    Казалось бы, чего проще - запусти и установится. Легко! Но установка в стандартном режиме даст одно небольшое ограничение: кластер у нас будут лежать в папке "Program Files". Не всем это понравится. Рассмотрим два варианта установки, простой и расширенный.

    Статья разбита на 5 разделов:

    1) Установка сервера 1C.

    2) Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек.

    3) Установка PostgreSQL с выбором папки хранения кластера.

    4) Создание новой информационной базы 1С.

    5) Указание папки хранения файлов базы данных на сервере СУБД.

    Перед установкой обязательно прочитайте всю статью целиком!

    Установка сервера приложений 1С

    Запускаем setup.exe из папки с дистрибутивом сервера 1С.

    В том случае, если вы установите сервер приложений не как сервис, нужно будет вручную его запускать каждый раз. Требуется такой вариант редко. Устанавливаем как службу (сервис), и решаем, под каким пользователем он будет запускаться. Из соображений безопасности лучше создать отдельного пользователя USR1CV82, а не разрешать сервису работать под полными правами.

    После установки сервера приложений система предложит установить драйвер ключа защиты HASP. Соглашаемся:

    Дожидаемся сообщения:

    Если сообщение будет другим, в системе, скорее всего, остались "хвосты" от предыдущих установок драйверов HASP. Удаляйте их все, и пробуйте заново.

    Готово, сервер приложений "1С:Предприятие 8" мы установили успешно.

    Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек

    Запускаем "postgresql-9.1.2-1.1C(x64).msi"

    Опции установки можно не менять, 1С работать будет. Далее.

    Postgre, как и сервер 1С, может сам создать пользователя, под которым будете запускаться служба. Обращаю ваше внимание на то, что если указать учетную запись с правами администратора, то служба корректно работать не будет. Обязательно создавайте нового пользователя.

    Следующее окно установки.

    Инициализируем кластер. Если у нас сервер баз данных и сервер приложений 1С находятся на разных компьютерах, тогда устанавливаем галочку «Поодерживать подсоединения с любых IP», иначе не трогаем. Обязательно указываем кодировку UTF8. Создаем суперпользователя СУБД. Далее…

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

    Результат наших усилий - готовый к работе PostgreSQL. Если нас устраивает, что базы будут лежать в Program Files\PostgreSQL\9.1.2-1.1C\data - заканчиваем на этом, раскрываем базы и наслаждаемся процессом. Однако, чаще все-таки базы данных "лежат" на специально предназначенных для этого дисковых массивах, а не на системном диске. Для того, чтобы настроить расположение данных, перед установкой прочитайте следующий раздел.

    Установка Postgre с выбором места хранения кластера

    Приступаем к установки Postgre и выполняем все шаги до тех пор, пока нам не предложат инициализировать кластер:

    Снимаем галочку "Инициализировать кластер базы данных" и нажимаем "Далее".

    Да, уверены.

    Снимаем галочку "По выходу запустить Stack Builder" и завершаем установку.

    1. Необходимо выдать полные права на папку в которую мы установили PostgreSQL, обычно это C:\Program Files\PostgreSQL

    2. Из под админских прав запускаем cmd. Если это делаете в win7, то запускаем от Администратора.

    3. Создаем папку где будет храниться кластер. Например d:\postgredata.

    md d:\postgredata

    4. Проводим инициализацию кластера вручную с указанием пути где он будет находиться.

    “C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\initdb.exe” -D d:\postgredata --locale=Russian_Russia --encoding=UTF8 -U postgres

    5. Удаляем службу PostgreSQL, которая была установлена в ходе установки.

    sc delete pgsql-9.1.2-1.1C-x64

    Где pgsql-9.1.2-1.1C-x64 - Это название службы. Если не знаете название точно, можно посмотреть свойствах службы “PostgreSQL Database Server…” (Пуск – Панель управления – Администрирование – Службы)

    6. Создаем новый сервис с указанием нашего кластера

    “C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_ctl” register -N pgsql -U postgresql -P пароль -D d:/postgredata

    7. Теперь заходим в службы. Пуск – Панель управления – Администрирование – Службы и стартуем нашу службу.

    Создание новой базы данных 1С на сервере с PostgreSQL

    Есть несколько вариантов создания базы данных. Можно попробовать создавать базу через pgAdmin3, консоль администрирования серверов 1С. Но тут вы столкнетесь с массой непонятных вопросов и кучей ошибок, ответы на которые будете долго искать. Оставьте это для специалистов. Наша задача получить работоспособную базу с минимальными усилиями. Опишем самый простой путь добиться этого.

    Запускаем клиент 1С.

    Нажимаем "Добавить...".

    Придумываем название базы, указываем "На сервере 1С:Предприятия", далее.

    Кластер серверов 1С:Предприятия – localhost, если мы создаем базу на том же компьютере, где установлен сервер 1С, или имя сервера приложений 1С, если на другом.

    Имя информационной базы в кластере - в дальнейшем это название будет указываться при подключении с других компьютеров.

    Тип СУБД – Выбираем PostgreSQL.

    Сервер баз данных - указываем название сервера PostgreSQL. Если создаем базу на сервере, так же указываем localhost.

    Имя базы данных – с таким название будет создана база в PostgreSQL.

    Пользователь, пароль – имя пользователя, которого мы указывали как суперпользователя при установке PostgreSQL. Обязательно поднимаем галочку "Создать базу данных в случае ее отсутствия".

    Возникает вопрос - а где база будет храниться физически? В папке Base указанного кластера. А если мы не хотим, чтоб она лежала там, где лежат все базы? Тут пока ничего поделать нельзя, просто создаем базу и двигаемся дальше. Далее…

    Указание папки хранения базы данных

    Итак, мы создали базу. В большинстве случаев на этом установка заканчивается. Однако, если баз много, и есть несколько дисковых массивов для разных групп баз, нужно указать, где физически должны располагаться базы. Чтобы сделать это, запускаем pgAdmin3 из Пуск – Программы – PostgreSQL. Подключаемся к нашему серверу.

    При первом подключении Postgre попросит пароль для пользователя postgres (которого мы создавали при установке).

    Создаем новый TableSpace, это будет та папка, в которой будут храниться наши базы.

    Указали место хранения файлов базы. Ок.

    Теперь открываем свойства уже созданной ранее базы данных, размещение которой мы хотим изменить.

    Меняем свойство Tablespace. После нажатия "ОК" файлы базы данных будут автоматически перемещены. Готово! Надеемся, что статья была вам полезна. Если это так - оставляйте комментарии, делитесь ссылками на эту страницу. Спасибо!

    PostgreSQL — достаточно современная и популярная СУБД в мире. Её не обошла и фирма 1С, выбрав в качестве одной из поддерживаемых для работы СУБД. Рассмотрим инструкцию по установке PostgreSQL и её первоначальной 8.3 под ОС Windows.

    PostgreSQL — бесплатная программа, это является одним из решающих факторов по выбору данной СУБД.

    Для установки сервера нам понадобится два архива — предприятия (х86-64) и дистрибутив PostgreSQL. В нашем примере платформа версии 8.3.4, а СУБД 9.1.2. Их лучше взять из официальных источников 1С — диска или сайта ИТС.

    Первым делом предприятия 8.3 (или 8.2). Для этого запустим файл setup.exe из архива. Установка мало чем отличается от обычной установки клиентского приложения, за исключением некоторых особенностей:

    1. Не забудьте выбрать в компонентах нужные пункты:

    2. Указать, от чьего имени будет запускаться приложение. Рекомендуется создавать нового пользователя «USR1Cv8». У этого пользователя должны быть установлены нужные права:

    Получите 267 видеоуроков по 1С бесплатно:

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

    Установка PostgreSQL

    Запустите файл postgresql-9.1.2-1.1C(x64).msi, в папке windows выбрать подпапку 64 или 86, в зависимости от разрядности ОС. Можно оставить практически всё по умолчанию. Необходимо обратить внимание на следующие моменты:

    1. Так же, как с 1С 8.3, СУБД устанавливается как сервис. Необходимо проверить права у используемого пользователя. Система по умолчанию создаст нового пользователя, от чего имени будет запускать службу:

    2. Настройка кластера 1C. Здесь необходимо указать пароль для пользователя:

    Для выполнения данного пункта должна быть запущена служба «Вторичный вход в систему» (secondary logon). Если он не запущен, его следует запустить в списке всех сервисов:

    Создание базы 1С на Постгри

    Создание базы — очень простой процесс. В списке баз необходимо нажать «Добавить», выбрать пункт «Создание новой информационной базы», указать название базы и выбрать вариант расположения — «На сервере 1С: Предприятия», где заполнить настройки подобно указанным на скриншоте:

    Где пароль и имя пользователя те, которые Вы указывали на этапе настройки кластера.

    Вот и всё — можно работать с системой.

    СУБД PostgreSQL весьма популярна среди пользователей, и причина тому — достойное качество при полной бесплатности. Высокая популярность привела к тому, что задачи на тему прямого доступа к базе PostgreSQL из 1С встречаются достаточно часто. Именно о том, как этот доступ организовать и поговорим ниже.

    Подготовка

    В начале нужно сказать, что все испытания проводились на ОС Windows 7 (64-bit) и Windows 10 (64-bit), а подключения производились к серверу PostgreSQL (64-bit) 9.4.2-1.1C.

    Первое, что нам потребуется это установленный драйвер psqlODBC. Установить его можно либо при помощи приложения Stack Builder (которое устанавливается вместе с PostgreSQL):

    Либо посетив страничку , на которой представлено множество версий нашего драйвера:


    Важно! Устанавливать нужно именно psqlODBC (32 bit).

    С драйвером psqlODBC (64 bit) мне не удалось подключиться к базе данных ни одним способом, ни в одной ОС. Весьма вероятно, что причина этого в моих кривых руках, но что есть, то и пишу.

    Так или иначе, после установки правильной версии драйвера у нас есть несколько способов получения данных.

    Подключение внешнего источника данных

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


    Затем указываем строку подключения примерно такова вида:

    Driver={PostgreSQL Unicode};Server=host ;Port=port ;Database=db_name ;Uid=user ;Pwd=password ;STMT=utf8


    И в результате получаем список таблиц:


    Отмечу, что при создании внешнего источника данных у меня не получилось использовать пользовательские источники данных, о которых ниже.

    Подключение при помощи ADODB

    Подключение к базе PostgreSQL и выполнение различных запросов при помощи библиотеки ADOdb выглядит приблизительно так:

    &НаКлиенте Процедура ЗапросКPostgreSQL(Команда) АДОСоединение = Новый COMОбъект("ADODB.CONNECTION"); АДОСоединение.Provider = "MSDASQL.1"; АДОСоединение.ConnectionString = "Driver={PostgreSQL Unicode};Server=localhost;Port=5432;Database=test;Uid=postgres;Pwd=123456;STMT=utf8"; Попытка АДОСоединение.Open(); Исключение Возврат; КонецПопытки; АДОНаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); АДОКоманда = Новый COMОбъект("ADODB.Command"); Попытка АДОКоманда.ActiveConnection = АДОСоединение; АДОКоманда.CommandText = "SELECT * FROM ""table"";"; АДОНаборЗаписей = АДОКоманда.Execute(); Исключение Возврат; КонецПопытки; КонецПроцедуры

    &НаКлиенте

    Процедура ЗапросКPostgreSQL(Команда)

    АДОСоединение= Новый COMОбъект("ADODB.CONNECTION" ) ;

    АДОСоединение. Provider= "MSDASQL.1" ;

    АДОСоединение. ConnectionString= "Driver={PostgreSQL Unicode};Server=localhost;Port=5432;Database=test;Uid=postgres;Pwd=123456;STMT=utf8" ;

    Попытка

    АДОСоединение. Open() ;

    Исключение

    Возврат;

    КонецПопытки;

    АДОНаборЗаписей= Новый COMОбъект("ADODB.RecordSet" ) ;

    АДОКоманда= Новый COMОбъект("ADODB.Command" ) ;

    Попытка

    АДОКоманда. ActiveConnection= АДОСоединение;

    АДОКоманда. CommandText= "SELECT * FROM " "table" ";" ;

    АДОНаборЗаписей= АДОКоманда. Execute() ;

    Исключение

    Возврат;

    КонецПопытки;

    КонецПроцедуры

    При этом есть возможность использовать пользовательский источник данных, который нужно сначала создать. Сделать это можно при помощи приложения ODBC Data Sources (32 бита), которое находится в панели управления (а в Windows 10 в папке «Администрирование» на панели управления). Важно использовать именно 32-х битную версию, так как каждая версия видит только «свои» драйверы. Если же, по какой-либо причине, на панели управления нет этого приложения, то его можно запустить напрямую, оно находится по адресу \Windows\SysWOW64\odbcad32.exe.