Устанавливаем PostgreSQL. Устанавливаем PostgreSQL Postgresql установка и настройка сервер 1с 8.2

Инструкция по установке PostgreSQL 9.0.3-3.1C на Windows Server 2008 x64

Для установки используем пакет - PostgreSQL 9.0.3-1C (x 86 или x 64).

Запускаем msi-пакет:

Отмечаем галочкой, если не отмечено «Директория с данными», «psql » и «pgAdmin III ». Далее.

Устанавливаем "как сервис". Для работы этого сервиса потребуется специальный пользователь. Указываем учетную запись, домен (если имеется) и пароль. Далее.

Если такого пользователя в системе нет, тогда мастер сам предложит создать нового. Отвечаем "да" - пользователь создается. Далее.

Теперь инициализируем БД. Указываем порт 5432. Проверяем, что кодировка UTF 8. Задаем логин и пароль пользователя PostgreSQL (система предупреждает, что пароль пользователя системы и пароль пользователя PostgreSQL НЕ ДОЛЖНЫ совпадать – учитываем это). Если кластер серверов 1С и PostgreSQL на разных машинах, то ставим галочку «Поддерживать подсоединения с любых IP , а не только с localhost ». Далее.

Может возникнуть ошибка «Secondary Logon » . Тогда идем в «Администрирование» – «Службы». Стартуем службу «Вторичный вход в систему» или «Secondary Logon »:


Программа устанавливается.

Через меню "Пуск" - "Все программы" запускаем утилиту администрирования «pgAdmin III ».

Подключаемся к серверу. Там вводим пароль для пользователя «postgres ». Если подключиться удалось, попробуем создать новую базу средствами самой 1С.

Запускаем клиентскую часть 1С. Жмем кнопку "Добавить", ставим галочку "Сервер предприятия 1С". Далее заполняем следующее: сервер базы данных (IP или DNS имя того сервера, куда ставили PostgreSQL) - если тот же, что и кластер 1С, то указываем 127.0.0.1. Имя базы данных: [любое_имя]. Пользователь: "postgres" Пароль: [ваш_пароль_postgres]. Далее.

Проверяем, что база 1С создается успешно.

Ниже указанные настройки не панацея, их надо корректировать с учетом реальных доступных мощностей. Реального количества пользователей и интенсивности (записываемой) ввода информации. При настройках системы также важно насколько профессионален тот, кто настраивает ее.

Какую ОС установить:

Процессор

autovacuum_max_workers = NCores/4..2 но не меньше 4

Количество процессов автовакуума. Общее правило — чем больше write-запросов, тем больше процессов. На read-only базе данных достаточно одного процесса.

Ssl = off

Выключение шифрования. Для защищенных ЦОД’ов шифрование бессмысленно, но приводит к увеличению загрузки CPU

Память

shared_buffers = RAM/4

Количество памяти, выделенной PgSQL для совместного кеша страниц. Эта память разделяется между всеми процессами PgSQL. Операционная система сама кеширует данные, поэтому нет необходимости отводить под кэш всю наличную оперативную память.

Temp_buffers = 256MB

Максимальное количество страниц для временных таблиц. Т.е. это верхний лимит размера временных таблиц в каждой сессии.

Work_mem = RAM/32..64 или 32MB..128MB

Лимит памяти для обработки одного запроса. Эта память индивидуальна для каждой сессии. Теоретически, максимально потребная память равна max_connections * work_mem, на практике такого не встречается потому что большая часть сессий почти всегда висит в ожидании. Это рекомендательное значение используется оптимайзером: он пытается предугадать размер необходимой памяти для запроса, и, если это значение больше work_mem, то указывает экзекьютору сразу создать временную таблицу. work_mem не является в полном смысле лимитом: оптимайзер может и промахнуться, и запрос займёт больше памяти, возможно в разы. Это значение можно уменьшать, следя за количеством создаваемых временных файлов:

Maintenance_work_mem = RAM/16..32 или work_mem * 4 или 256MB..4GB

Лимит памяти для обслуживающих задач, например по сбору статистики (ANALYZE), сборке мусора (VACUUM), создания индексов (CREATE INDEX) и добавления внешних ключей. Размер выделяемой под эти операции памяти должен быть сравним с физическим размером самого большого индекса на диске.

Effective_cache_size = RAM - shared_buffers

Оценка размера кеша файловой системы. Увеличение параметра увеличивает склонность системы выбирать IndexScan планы. И это хорошо.

Диски

effective_io_concurrency = 2 (только для Linux систем, не применять для Windows)

Оценочное значение одновременных запросов к дисковой системе, которые она может обслужить единовременно. Для одиночного диска = 1, для RAID — 2 или больше.

Random_page_cost = 1.5-2.0 для RAID, 1.1-1.3 для SSD, 0.1 для NVMe

Стоимость чтения рандомной страницы (по-умолчанию 4). Чем меньше seek time дисковой системы тем меньше (но > 1.0) должен быть этот параметр. Излишне большое значение параметра увеличивает склонность PgSQL к выбору планов с сканированием всей таблицы (PgSQL считает, что дешевле последовательно читать всю таблицу, чем рандомно индекс). И это плохо.

Seq_page_cost = 0.1 для NVMe дисков autovacuum = on

Включение автовакуума.

Autovacuum_naptime = 20s

Время сна процесса автовакуума. Слишком большая величина будет приводить к тому, что таблицы не будут успевать вакуумиться и, как следствие, вырастет bloat и размер таблиц и индексов. Малая величина приведет к бесполезному нагреванию.

Bgwriter_delay = 20ms

Время сна между циклами записи на диск фонового процесса записи. Данный процесс ответственен за синхронизацию страниц, расположенных в shared_buffers с диском. Слишком большое значение этого параметра приведет к возрастанию нагрузки на checkpoint процесс и процессы, обслуживающие сессии (backend). Малое значение приведет к полной загрузке одного из ядер.

Bgwriter_lru_multiplier = 4.0 bgwriter_lru_maxpages = 400

Параметры, управляющие интенсивностью записи фонового процесса записи. За один цикл bgwriter записывает не больше, чем было записано в прошлый цикл, умноженное на bgwriter_lru_multiplier, но не больше чемbgwriter_lru_maxpages.

Synchronous_commit = off

Выключение синхронизации с диском в момент коммита. Создает риск потери последних нескольких транзакций (в течении 0.5-1 секунды), но гарантирует целостность базы данных, в цепочке коммитов гарантированно отсутствуют пропуски. Но значительно увеличивает производительность.

Checkpoint_segments = 32..256 < 9.5

Максимальное количество сегментов WAL между checkpoint. Слишком частые checkpoint приводят к значительной нагрузке на дисковую подсистему по записи. Каждый сегмент имеет размер 16MB

Checkpoint_completion_target = 0.5..0.9

Степень «размазывания» checkpoint’a. Скорость записи во время checkpoint’а регулируется так, что бы время checkpoint’а было равно времени, прошедшему с прошлого, умноженному на checkpoint_completion_ target.

Min_wal_size = 512MB .. 4G > =9.5 max_wal_size = 2 * min_wal_size > =9.5

Минимальное и максимальный объем WAL файлов. Аналогично checkpoint_segments

Fsync = on

Выключение параметра приводит к росту производительности, но появляется значительный риск потери всех данных при внезапном выключении питания. Внимание: если RAID имеет кеш и находиться в режиме write-back, проверьте наличие и функциональность батарейки кеша RAID контроллера! Иначе данные записанные в кеш RAID могут быть потеряны при выключении питания, и, как следствие, PgSQL не гарантирует целостность данных.

Commit_delay = 1000

паузу (в микросекундах) перед собственно выполнением сохранения WAL

Commit_siblings = 5

Минимальное число одновременно открытых транзакций, при котором будет добавляться задержка commit_delay

Групповой коммит нескольких транзакций. Имеет смысл включать, если темп транзакций превосходит 1000 TPS. Иначе эффекта не имеет.

Temp_tablespaces = "NAME_OF_TABLESPACE"

Дисковое пространство для временных таблиц/индексов. Помещение временных таблиц/индексов на отдельные диски может увеличить производительность. Предварительно надо создать tablespace командой CREATE TABLESPACE. Если характеристики дисков отличаются от основных дисков, то следует в команде указать соответствующий random_page_ cost. См. .

row_security = off >= 9.5

Отключение контроля разрешения уровня записи

Max_files_per_process = 1000 (default)

Максимальное количество открытых файлов на один процесс PostreSQL. Один файл это как минимум либо индекс либо таблица, но таблица/может состоять из нескольких файлов. Если PostgreSQL упирается в этот лимит, он начинает открывать/закрывать файлы, что может сказываться на производительности. Диагностировать проблему под Linux можно с помощью команды lsof.

Сеть

max_connections = 500..1000

Количество одновременных коннектов/сессий
Если у Вас больше 100 пользователей, то лучше указать вручную значение для этого параметра по количеству пользователей

Типовая проблема в Windows

Ошибка СУБД: could not send data to server: No buffer space available (0x00002747/10055)

При использовании операционной системы Windows, максимальное стандартное число временных TCP-портов равно 5000. При попытке установить TCP-соединение через порты, номера которых превышают 5000, выдается сообщение об ошибке. Другими словами, надо увеличить количество доступных портов в реестре, где выберите Parameters (HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\ Tcpip\Parameters) и добавьте следующий параметр реестра MaxUserPort с типом: DWORD и значением: 65534 (Допустимые значения: 5000-65534)

Блокировки

max_locks_per_transaction = 256

Максимальное число блокировок индексов/таблиц в одной транзакции

Настройки под платформу 1С

standard_conforming_strings = off

Разрешить использовать символ \ для экранирования

Escape_string_warning = off

Не выдавать предупреждение о использовании символа \ для экранирования

Shared_preload_libraries = "online_analyze, plantuner"

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

Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику после операций INSERT, UPDATE, DELETE или SELECT INTO в целевых таблицах.
Модуль plantuner добавляет поддержку указаний для планировщика, позволяющих отключать или подключать определённые индексы при выполнении запроса.

Online_analyze.enable = on

Включает анализ статистики временных таблиц, часто используемых в 1С

Оптимизатор

default_statistics_target = 1000 -10000

(Улучшение статистики оптимизатора)

Enable_nestloop=off, enable_mergejoin=off

(Изменение параметров оптимизатора)
● Включает или отключает использование планировщиком планов соединения с вложенными циклами
● Включает или отключает использование планов соединения слиянием.
Например ошибки типа out of memory

Join_collapse_limit=1

(отключение при понимании порядка соединений таблиц!)
● При значении, равном 1, предложения JOIN переставляться не будут, так что явно заданный в запросе порядок
соединений определит фактический порядок, в котором будут соединяться отношения.
Прочие настройки влияющие на оптимизатор

From_collapse_limit = 20

● Задаёт максимальное количество элементов в списке FROM, до достижения которого планировщик будет сносить в него явные конструкции JOIN (за исключением FULL JOIN). При меньших значениях сокращается время планирования, но план запроса может стать менее эффективным.
● seq_page_cost = 0.1 random_page_cost = 0.4 cpu_operator_cost = 0.00025

Online_analyze.table_type = "all"

(больше нагрузка)
Типы таблиц, для которых выполняется немедленный анализ: all (все), persistent (постоянные), temporary (временные), none (никакие).

Online_analyze.threshold = 50

● Минимальное число изменений строк, после которого может начаться немедленный анализ (этот параметр подобен autovacuum_analyze_threshold).

Online_analyze.scale_factor = 0.1

Процент от размера таблицы, при котором начинается немедленный анализ (этот параметр подобен autovacuum_analyze_scale_factor).

Online_analyze.min_interval = 10000

● Минимальный интервал времени между вызовами ANALYZE для отдельной таблицы (в миллисекундах).

Online_analyze.local_tracking = off

● Включает в online_analyze отслеживание временных таблиц в рамках обслуживающего процесса. Когда эта переменная отключена (off), online_analyze использует для временных таблиц системную статистику по умолчанию.

Online_analyze.verbose = "off"

● Отключает подробные сообщения расширения online_analyze

Plantuner.fix_empty_table = "on"

● plantuner будет обнулять число страниц/кортежей в таблице, которая не содержит никаких блоков в файле

Как только размер файловой базы данных 1С:Предприятие одного из наших клиентов достиг размера в 32Гб (да, 32Гб), в следствии чего всё постепенно начало тормозить, а потом и встало намертво, наши клиенты попросили нас решить эту проблемы. SSD Enterprise класса ненадолго подсластил пилюлю, но через некоторое время всё вернулось в исходную точку. Ну что ж, тут и к бабке не ходи - переходим на SQL версию БД.

Поскольку мы ярые пользователи Windows, доступно нам только два варианта СУБД - это MSSql и PostgreSQL. Первый хорош до безумия, но стоимость не порадовала. А ещё больше не порадовала новость о дополнительных лицензиях 1С для работы с MSSQL. Поэтому PostgreSQL.

Подробная инструкция с видео доступна . В этой статье мы пройдёмся по ключевым моментам.

Не забываем про резервное копирование баз данных 1С!

Исходные данные:

  • ОС Windows Server 2008R2,
  • Intel Core i7-2600K 3.40GHz,
  • 32Gb RAM,
  • Intel SSD DC3700 100Gb (только под БД, ОС на отдельном SSD),
  • от 10 до 20 пользователей в БД ежедневно,
  • обмен с 5 узлами распределённой БД в фоне.

Зловеще, не правда ли? Приступим.

1. Установка PostgreSQL и pgAdmin.

Никаких откровений по поводу того, откуда качать PostgreSQL не будет — это наш любимый сайт https://releases.1c.ru , раздел «Технологические дистрибутивы». Скачиваем, ставим. Не забываем установить MICROSOFT VISUAL C++ 2010 RUNTIME LIBRARIES WITH SERVICE PACK 1, который идёт в архиве с дистрибутивом. Сами попались на это: не установили, испытали много боли.

Инициализируем кластер базы данных (галочка). А вот здесь задаём параметры учётной записи для PostgreSQL! Важно: у Вас должна быть запущена служба «Secondary Logon» (или на локализированных ОС: «Вторичный вход в систему» ). Кодировка UTF8 — это тоже важно!

pgAdmin в этой сборке староват. Идём на https://www.postgresql.org/ftp/pgadmin3/release/ . На момент написания статьи самая свежая версия 1.22.1. Качаем её, ставим. Заходим.

На процессе установки оснастки «Администрирование серверов 1С Предприятия» не будем останавливаться. Это совсем другая тема. Да и сложного там ничего нет.

Создаём SQL БД в этой оснастке, проверяем в pgAdmin — БД там появиться, если всё указано верно.

2. Тюнинг PostgreSQL 9.4.2.

  • pg_hba.conf
  • postgresql.conf
  • pgpass.conf

которые лежат здесь:

C:\Program Files\PostgreSQL\9.4.2-1.1C\data

Если Вы ошибётесь хоть в одной букве, после обновления конфигурации PostgreSQL не запуститься. Выяснить что же стало причиной будет сложно, даже смотря в журналы Windows. Поэтому не меняйте много параметров сразу и делайте резервные копии.

Для правки конфига есть удобный инструмент, доступный прямо из главного окна pgAdmin. Вот он:

Что мы здесь меняем:

  • shared_buffers — Количество памяти, выделенной PgSQL для совместного кеша страниц. Эта память разделяется между всеми процессами PgSQL. Делим доступную ОЗУ на 4. В нашем случае это 8Gb.
  • effective_cache_size — Оценка размера кэша файловой системы. Считается так: ОЗУ — shared_buffers. В нашем случае это 32Gb — 8Gb = 24Gb. Но лично я оставляю этот параметр ещё ниже, где-то 20Gb — всё-таки ОЗУ нужна не только для PostgreSQL.
  • random_page_cost = 1.5 — 2.0 для RAID, 1.1 — 1.3 для SSD. Стоимость чтения рандомной страницы (по-умолчанию 4). Чем меньше seek time дисковой системы тем меньше (но > 1.0) должен быть этот параметр. Излишне большое значение параметра увеличивает склонность PgSQL к выбору планов с сканированием всей таблицы (PgSQL считает, что дешевле последовательно читать всю таблицу, чем рандомно индекс). И это плохо.
  • temp_buffers = 256Mb. Максимальное количество страниц для временных таблиц. То есть это верхний лимит размера временных таблиц в каждой сессии.
  • work_mem — Считается так: ОЗУ / 32..64 — в нашем случае получается 1Gb. Лимит памяти для обработки одного запроса. Эта память индивидуальна для каждой сессии. Теоретически, максимально потребная память равна max_connections * work_mem, на практике такого не встречается потому что большая часть сессий почти всегда висит в ожидании.
  • bgwrite_delay — 20ms. Время сна между циклами записи на диск фонового процесса записи. Данный процесс ответственен за синхронизацию страниц, расположенных в shared_buffers с диском. Слишком большое значение этого параметра приведет к возрастанию нагрузки на checkpoint процесс и процессы, обслуживающие сессии (backend). Малое значение приведет к полной загрузке одного из ядер.
  • synchronous_commit — off. ОПАСНО! Выключение синхронизации с диском в момент коммита. Создает риск потери последних нескольких транзакций (в течении 0.5-1 секунды), но гарантирует целостность базы данных, в цепочке коммитов гарантированно отсутствуют пропуски. Но значительно увеличивает производительность.

Это далеко не всё, что удалось узнать из Интернета и статей на https://its.1c.ru . НО! Даже этих настроек хватит, чтобы видимо ускорить работу 1С:Предприятие на PostgreSQL.

В этом конкретном случае после перехода на PostgreSQL пользователи стали жаловаться, что 1С начала тормозить ещё сильнее, чем в файловом варианте. Но после этого тюнинга база «полетела». Теперь все наслаждаются быстрой работой. Однако есть и свои минусы в виде блокировок. Останавливаться на это мы не планируем, будем копать дальше и выкладывать полезные изменения конфигурации 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).

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

В этой статье я попробую рассказать об установке сервера 1С и сервера PostgreSQL на операционной системе Ubuntu 16.04/18.04. В статье используется версия сервера 1С - 8.3.13.1472 и версия PostgreSQL - 10.3-2.1C. Кроме этого в статье приведена информации о некоторых дополнительных настройках.

Установка PostgreSQL

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

sudo dpkg-reconfigure locales


sudo apt-get install libicu55

wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7ubuntu0.4_amd64.deb

sudo dpkg -i libicu55_55.1-7ubuntu0.4_amd64.deb

Раньше пакет «postgresql-common» входил в состав дистрибутива который размещался на сайте «1С», теперь же (начиная с PostgreSQL 9.6.3-1.1C) этот пакет нужно устанавливать из стандартных репозиториев.

Тут возникает небольшое затруднение, связанное с тем, что мы устанавливаем PostgreSQL 10: на момент написания статьи стандартный репозиторий содержит неподходящую для PostgreSQL 10 версию пакета «postgresql-common».

Чтобы исправить это нужно создать файл /etc/apt/sources.list.d/pgdg.list и записать в него строку, для Ubuntu 16.04:

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

для Ubuntu 18.04:

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

Затем нужно выполнить следующие команды:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt-get update

После этого можно установить нужную нам версию пакета «postgresql-common»:

sudo apt-get install postgresql-common

Подготовительные работы закончены, скачиваем дистрибутив PostgreSQL 10 с сайта «1С», распаковываем его (там всего три пакета) и устанавливаем именно в таком порядке:

sudo dpkg -i libpq5_10.3-2.1C_amd64.deb

sudo dpkg -i postgresql-client-10_10.3-2.1C_amd64.deb

sudo dpkg -i postgresql-10_10.3-2.1C_amd64.deb

Если все прошло нормально, то выглядеть это будет приблизительно так:


Настройка PostgreSQL

После установки можно сделать некоторые настройки PostgreSQL.

От имени суперпользователя открываем файл /etc/postgresql/10/main/pg_hba.conf и меняем в нем строку:

local all postgres peer

local all postgres trust

Это позволит войти под пользователем postgres без пароля.

Кроме этого можно открыть файл /etc/postgresql/10/main/postgresql.conf (тоже от имени супер пользователя) и поменять в нем строку:

listen_addresses = "*"

listen_addresses = "localhost"

Это ограничит подключения к PostgreSQL локальной машиной. Таким образом, если сервер 1С и PostgreSQL находятся на разных компьютерах, то это либо вообще не нужно делать, либо вместо «*» нужно указать IP-адрес сервера 1С.

После всех этих манипуляций перезапускаем сервер PostgreSQL:

Теперь у нас есть возможность поменять пароль суперпользователя postgres :

psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD "password""

Отключаем безпарольный доступ: вновь от имени суперпользователя открываем файл /etc/postgresql/10/main/pg_hba.conf и меняем в нем строку:

local all postgres trust

local all postgres md5

В заключении еще раз перезапускаем сервер:

sudo service postgresql restart

Установка сервера 1С

Начать, как обычно, нужно с установки дополнительных библиотек:

sudo apt-get install imagemagick

sudo apt-get install unixodbc

sudo apt-get install ttf-mscorefonts-installer

sudo apt-get install libgsf-1-114

Для версии 8.3.13 и выше используется библиотека ImageMagick входящая в состав дистрибутива, так что устанавливать пакет imagemagick не обязательно (хотя вреда от этого не будет).

Пакет ttf-mscorefonts-installer в процессе установки попросит принять лицензионное соглашение:


На момент написания статьи в репозиториях Ubuntu 18.04 не было актуальных версий требуемых пакетов. Если в настоящее время их все еще нет, то можно попробовать добавить репозитории с неактуальными версиями пакетов. Создаем файл /etc/apt/sources.list.d/raring.list и записываем в него следующие строки:

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse

После этого выполнить команду:

sudo apt-get update

После установки дополнительных библиотек скачиваем с сайта 1С все необходимые файлы (Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем) и устанавливаем их в таком порядке:

sudo dpkg -i 1c-enterprise83-common_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-common-nls_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-server_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-server-nls_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-ws_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-ws-nls_8.3.13-1472_amd64.deb

Пакеты с приставкой «-nls» нужны для поддержки дополнительных языков и не являются обязательными к установке. Пакеты с приставкой «-ws» нужны для работы веб-клиента и также не являются необходимыми.

Теперь изменим владельца каталога /opt/1C:

sudo chown -R usr1cv8:grp1cv8 /opt/1C

И запустим сервер 1С:

sudo service srv1cv83 start


Если у Вас правильно настроена сеть и компьютеры видят друг друга, то ничего больше делать не нужно. Если же нет, то необходимо сделать так, что бы сервер 1С видел сервер PostgreSQL, а клиентские машины видели сервер 1С. Для этого в файлы /etc/hosts или C:\Windows\System32\drivers\etc\hosts нужно добавить строки:

<результат команды hostname -f> <результат команды hostname>

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

Дополнительные настройки

Все приведенные ниже действия не являются обязательными.

Установка Apache

Начиная с версии 8.3.8 платформа 1С поддерживает Apache 2.4, поэтому можно просто установить текущую версию:

sudo apt-get install apache2

Если по каким-то причинам Вам требуется Apache 2.2 то для начала нужно добавить репозитории с неактуальными версиями пакетов, как описано выше (если, конечно, Вы уже этого не сделали). Затем выполнить команду:

sudo apt-cache showpkg apache2

Команды выдаст список версий доступных к установке, затем, выбрав нужную версию сделать так:

sudo apt-get install apache2=<номер версии>

Например:

sudo apt-get install apache2=2.2.22-6ubuntu5.1

Проверить версию Apache можно так:

Включение отладки на сервере

Останавливаем сервер:

sudo service srv1cv83 stop

В файле /etc/init.d/srv1cv83 находим строку:

Приводим ее к виду:

Запускаем сервер:

sudo service srv1cv83 start

В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:

  • «Устанавливать режим разрешения отладки»
  • «Начинать отладку при запуске»

Настройка UFW

UFW - это простая утилита для конфигурирования файрвола Netfilter.