База 1С на PostgreSQL: создание, подключение и загрузка dt

Дата: 06.10.2026 16:54:16
PostgreSQL
Сервер 1С
Консоль кластера
Загрузка dt
Администрирование 1С
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Любые

База 1С на PostgreSQL — это информационная база в кластере сервера 1С плюс база данных в PostgreSQL, где лежат таблицы; связывают их параметры подключения к СУБД. Задача возникает при переезде с файловой базы, при развёртывании тестовой копии рабочей базы и при подготовке базы под обмен или разработку. Ниже — подготовка PostgreSQL, создание базы в консоли кластера и в окне запуска, загрузка .dt, код для развёртывания копий и ошибки аутентификации и кодировки.

Подготовка PostgreSQL: сборка, роль, pg_hba.conf

Базу данных платформа создаёт сама, если СУБД к этому готова:

  • Сборка для 1С. Для работы 1С с PostgreSQL нужна сборка с патчами — от фирмы «1С» или Postgres Pro: в каждой новой базе платформа подключает расширения mchar, fulleq и fasttrun. Установка — в статье «Установка сервера 1С 8.3».
  • Роль. Проще всего — отдельная роль с правом SUPERUSER: подключать расширения сборки, как правило, может только суперпользователь. Отдельная, а не postgres, — чтобы менять её пароль, не трогая служебную.
  • pg_hba.conf. К PostgreSQL подключаются рабочие процессы сервера 1С, а не компьютеры пользователей, — строка нужна для IP-адреса сервера 1С. В столбце баз оставьте all: при создании платформа подключается к служебной базе, новой ещё нет.
  • postgresql.conf. listen_addresses — не только localhost, если сервер 1С на другой машине; lc_messages — обязательно с кодировкой.
  • Локаль. Платформа создаёт базу в кодировке UTF8. На Linux кластер PostgreSQL инициализируют с локалью ru_RU.UTF-8, на Windows UTF8 сочетается с любой локалью.

Подготовка в psql и минимум в конфигурационных файлах:

-- psql под суперпользователем на сервере PostgreSQL
CREATE ROLE usr1c WITH LOGIN SUPERUSER;
\password usr1c

-- кодировка и локаль: у template0, template1 и новых баз - UTF8 и ru_RU.UTF-8
SELECT datname, pg_encoding_to_char(encoding) AS encoding, datcollate, datctype
FROM pg_database;

SHOW lc_messages;           -- значение с кодировкой после точки: ru_RU.UTF-8
SHOW password_encryption;   -- в этом формате сохранится пароль, заданный через \password
SELECT pg_reload_conf();    -- перечитать pg_hba.conf и postgresql.conf без перезапуска

-- база данных вручную, если нужны свой владелец или локаль
CREATE DATABASE trade_test OWNER usr1c ENCODING 'UTF8'
    LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' TEMPLATE template0;
# postgresql.conf
listen_addresses = '*'          # по умолчанию 'localhost'; меняется только с перезапуском службы
lc_messages = 'ru_RU.UTF-8'     # язык сообщений обязательно с кодировкой
password_encryption = scram-sha-256

# pg_hba.conf: адрес сервера 1С, а не компьютеров пользователей
# TYPE  DATABASE  USER   ADDRESS       METHOD
host    all       usr1c  10.0.0.5/32   scram-sha-256

Создание базы 1С на PostgreSQL в консоли кластера

В консоли «Администрирование серверов 1С Предприятия» раскройте «Центральные серверы 1С:Предприятия 8.3» → сервер → «Кластеры» → кластер и в контекстном меню узла «Информационные базы» выберите «Создать» → «Информационная база». Если в кластере заведены администраторы, консоль спросит их пароль. Версия консоли должна совпадать с версией сервера — подробнее в статье про консоль кластера.

ПолеЧто указатьПример
Имяимя в кластере, по нему подключаются пользователиtrade_test
Сервер баз данныхадрес PostgreSQL для сервера 1С, порт — через port=pg01 port=5433
Тип СУБДвыбрать из спискаPostgreSQL
База данныхимя в PostgreSQL, латиница в нижнем регистреtrade_test
Пользователь сервера БД, Пароль пользователя БДроль PostgreSQLusr1c
Разрешить выдачу лицензий сервером 1С:Предприятия«Да», если лицензии активированы на сервере 1СДа
Смещение дат0, смещение 2000 — только для MS SQL Server0
Создать базу данных в случае ее отсутствияесли базы данных ещё нетвключено
Установить блокировку регламентных заданийдля копии рабочей базывключено

После «ОК» сервер 1С создаст базу данных и служебные таблицы. Конфигурации в базе нет — её загружают из .dt или .cf.

Создание базы через окно запуска 1С

  1. «Добавить…» → «Создание новой информационной базы».
  2. Под загрузку .dt — «Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной ранее информационной базы», под типовое решение — «Создание информационной базы из шаблона».
  3. Укажите наименование базы в списке и тип расположения «На сервере 1С:Предприятия».
  4. Поля — как в таблице, но называются «Кластер серверов 1С:Предприятия» (srv01 или srv01:2541), «Имя информационной базы в кластере», «Имя базы данных», «Пользователь базы данных» и «Пароль пользователя»; флажки те же.
  5. Параметры запуска оставьте по умолчанию и нажмите «Готово».

Если в кластере заведены администраторы, окно запуска спросит их пароль. Базу оно сразу добавляет в список; созданную в консоли добавляют вручную: «Добавить…» → «Добавление в список существующей информационной базы».

Параметры подключения к СУБД: где ошибаются

  • Сервер баз данных — с точки зрения сервера 1С. localhost — машина сервера 1С, а не ваша. Порт пишут через пробел: pg01 port=5433, так в справке ibcmd.
  • Имя в кластере и имя базы данных — разные. Пользователи подключаются по первому, PostgreSQL знает второе; удобно делать их одинаковыми.
  • Имя базы данных — в нижнем регистре. Платформа передаёт его в кавычках, и базу Trade в SQL-командах придётся писать в кавычках.
  • Пользователь — роль PostgreSQL, не пользователь 1С: пользователи придут вместе с .dt.

Загрузка dt в новую базу

Вручную: откройте новую базу в конфигураторе, «Администрирование» → «Загрузить информационную базу…», выберите .dt. Загрузка заменяет конфигурацию, данные и пользователей — дальше входите под пользователями исходной базы. В базу, где работают люди, грузите только после блокировки сеансов.

Из командной строки — три варианта. CREATEINFOBASE с /UseTemplate создаёт базу и загружает .dt одной командой: шаблоном может быть .cf или .dt. DESIGNER /RestoreIB загружает файл в готовую базу. ibcmd пишет данные прямо в PostgreSQL, минуя кластер, — потом базу регистрируют в кластере со снятым флажком «Создать базу данных в случае ее отсутствия».

rem Windows, cmd. Выполняйте в каталоге bin платформы той же версии, что сервер 1С:
rem cd /d "C:\Program Files\1cv8\<версия>\bin"
rem Пароль роли PostgreSQL заранее положите в переменную окружения PGPWD.

rem 1. Зарегистрировать базу в кластере, создать базу данных и загрузить .dt одной командой
1cv8.exe CREATEINFOBASE Srvr="srv01";Ref="trade_test";DBMS="PostgreSQL";DBSrvr="pg01";DB="trade_test";DBUID="usr1c";DBPwd="%PGPWD%";Locale="ru_RU";CrSQLDB="Y";SchJobDn="Y" /UseTemplate "D:\dt\trade.dt" /AddToList "Торговля (тест)" /Out "D:\dt\create.log" /DumpResult "D:\dt\create.txt"

rem 2. Загрузить .dt в уже созданную пустую базу
1cv8.exe DESIGNER /S "srv01\trade_test" /DisableStartupDialogs /RestoreIB "D:\dt\trade.dt" /Out "D:\dt\restore.log" /DumpResult "D:\dt\restore.txt"

rem 3. ibcmd: база данных и загрузка без кластера; -W спросит пароль СУБД в консоли
ibcmd.exe infobase create --dbms=PostgreSQL --db-server="pg01 port=5433" --db-name=trade_test --db-user=usr1c -W --locale=ru_RU --create-database --restore="D:\dt\trade.dt"

Ключ -JobsCount у /RestoreIB задаёт число потоков загрузки, по умолчанию — по числу процессоров. По справке ускорение есть, когда сервер 1С и PostgreSQL на одной машине или связаны каналом от 1 Гбит/с.

Блокировка регламентных заданий — свойство базы в кластере, загрузка .dt её не снимает. Типовые на БСП вдобавок замечают смену строки соединения и показывают окно «Информационная база была перемещена или восстановлена из резервной копии».

Код: развёртывание копии через АдминистрированиеСервера

Для регулярных тестовых копий удобна внешняя обработка администратора. С версии 8.3.14 кластером управляют объектом АдминистрированиеСервера через службу ras (порт 1545), без COM. Первый листинг регистрирует базу и создаёт базу данных в PostgreSQL.

// Модуль формы внешней обработки «Развертывание копии». Платформа 8.3.14 и новее,
// на сервере 1С запущена служба ras. Пароли берутся из полей формы, в коде их нет.

&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыНовойБазыPostgreSQL()

	Настройки = Новый Структура;
	// Кластер: адрес службы ras, ее порт и порт менеджера кластера
	Настройки.Вставить("АдресRAS", "srv01");
	Настройки.Вставить("ПортRAS", 1545);
	Настройки.Вставить("ПортКластера", 1541);
	Настройки.Вставить("АдминистраторКластера", ""); // пусто, если администраторы не заведены
	Настройки.Вставить("ПарольАдминистратораКластера", "");
	// Информационная база в кластере и база данных в PostgreSQL
	Настройки.Вставить("ИмяВКластере", "trade_test");
	Настройки.Вставить("Описание", "Копия торговли для тестов");
	Настройки.Вставить("СерверСУБД", "pg01"); // нестандартный порт: "pg01 port=5433"
	Настройки.Вставить("ИмяБазыДанных", "trade_test");
	Настройки.Вставить("ПользовательСУБД", "usr1c");
	Настройки.Вставить("ПарольСУБД", "");
	Настройки.Вставить("ЗапретитьРегламентныеЗадания", Истина); // копия не должна слать обмены

	Возврат Настройки;

КонецФункции

// Регистрирует базу в кластере и создает базу данных в PostgreSQL. Возвращает имя в кластере.
&НаСервереБезКонтекста
Функция СоздатьБазуВКластере(Знач Настройки)

	ПроверитьИмяБазыДанных(Настройки.ИмяБазыДанных);

	Агент = Новый АдминистрированиеСервера(Настройки.АдресRAS, Настройки.ПортRAS);
	Кластер = Неопределено;
	Для Каждого Элемент Из Агент.ПолучитьКластеры() Цикл
		Если Элемент.Порт = Настройки.ПортКластера Тогда
			Кластер = Элемент;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Если Кластер = Неопределено Тогда
		ВызватьИсключение СтрШаблон("Служба ras %1:%2 не видит кластер с портом %3", Настройки.АдресRAS,
			Формат(Настройки.ПортRAS, "ЧГ="), Формат(Настройки.ПортКластера, "ЧГ="));
	КонецЕсли;
	Кластер.ВыполнитьАутентификацию(Настройки.АдминистраторКластера, Настройки.ПарольАдминистратораКластера);

	Для Каждого Зарегистрированная Из Кластер.ПолучитьИнформационныеБазы() Цикл
		Если НРег(Зарегистрированная.Имя) = НРег(Настройки.ИмяВКластере) Тогда
			ВызватьИсключение СтрШаблон("В кластере уже есть база ""%1""", Настройки.ИмяВКластере);
		КонецЕсли;
	КонецЦикла;

	База = Кластер.СоздатьИнформационнуюБазу();
	База.Имя = Настройки.ИмяВКластере;
	База.Описание = Настройки.Описание;
	База.СУБД = "PostgreSQL";
	База.СерверБазДанных = Настройки.СерверСУБД;
	База.ИмяБазыДанных = Настройки.ИмяБазыДанных;
	База.ПользовательБазыДанных = Настройки.ПользовательСУБД;
	База.ПарольПользователяБазыДанных = Настройки.ПарольСУБД;
	База.КодЯзыка = "ru_RU";
	База.СмещениеДат = 0;            // 2000 - только для MS SQL Server
	База.СоздатьБазуДанных = Истина; // флажок «Создать базу данных в случае ее отсутствия»
	База.РазрешитьВыдачуЛицензий = Истина;
	База.БлокировкаРегламентныхЗаданий = Настройки.ЗапретитьРегламентныеЗадания;

	Попытка
		База.Записать(); // в этот момент сервер 1С подключается к PostgreSQL
	Исключение
		ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
		ВызватьИсключение ТекстОшибки + Символы.ПС + ПодсказкаПоОшибкеСУБД(ТекстОшибки);
	КонецПопытки;

	Возврат База.Имя;

КонецФункции

// Только латиница в нижнем регистре, цифры и подчеркивание: платформа передает имя
// в кавычках, и базу "Trade" в SQL-командах пришлось бы всегда писать в кавычках.
&НаСервереБезКонтекста
Процедура ПроверитьИмяБазыДанных(Знач Имя)

	Если ПустаяСтрока(Имя) Или СтрДлина(Имя) > 63 Тогда
		ВызватьИсключение "Имя базы данных пустое или длиннее 63 символов";
	КонецЕсли;
	Для Номер = 1 По СтрДлина(Имя) Цикл
		Буква = Сред(Имя, Номер, 1);
		Если СтрНайти("abcdefghijklmnopqrstuvwxyz0123456789_", Буква) = 0 Тогда
			ВызватьИсключение СтрШаблон("Символ ""%1"" в имени базы данных ""%2"": допустимы a-z, 0-9 и _",
				Буква, Имя);
		КонецЕсли;
	КонецЦикла;

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

Второй превращает текст ошибки СУБД в подсказку — при создании базы и при разборе журнала загрузки.

// Подсказка по тексту ошибки СУБД. Ошибки входа PostgreSQL присылает на языке lc_messages
// сервера, остальные платформа получает на английском, поэтому признаки - на двух языках.
// Порядок правил важен: срабатывает первое совпадение.
&НаКлиентеНаСервереБезКонтекста
Функция ПодсказкаПоОшибкеСУБД(Знач ТекстОшибки)

	Правила = Новый Массив;
	ДобавитьПравило(Правила, "lc_messages",
		"Укажите в postgresql.conf lc_messages с кодировкой ('ru_RU.UTF-8') и выполните SELECT pg_reload_conf().");
	ДобавитьПравило(Правила, "pg_hba.conf",
		"В pg_hba.conf нет строки для адреса сервера 1С: host all <роль> <IP сервера 1С>/32 scram-sha-256.");
	ДобавитьПравило(Правила, "password authentication failed|проверку подлинности",
		"Неверный пароль роли. Если пароль верный, а метод scram-sha-256, задайте его заново через \password.");
	ДобавитьПравило(Правила, "authentication method 10 not supported|requires libpq version 10",
		"Библиотека libpq этой платформы не умеет SCRAM: обновите платформу или временно перейдите на md5.");
	ДобавитьПравило(Правила, "connection refused|could not connect|is the server running|timeout expired",
		"PostgreSQL не отвечает: проверьте службу, listen_addresses, брандмауэр и порт (pg01 port=5433).");
	ДобавитьПравило(Правила, "permission denied|must be superuser|must be owner",
		"Роли не хватает прав: для базы данных нужен CREATEDB, для расширений сборки 1С - SUPERUSER.");
	ДобавитьПравило(Правила, "mchar|fulleq|fasttrun",
		"PostgreSQL без патчей 1С: нужна сборка от фирмы «1С» или Postgres Pro.");
	ДобавитьПравило(Правила, "does not match locale|incompatible with the encoding|кодировк",
		"Кластер PostgreSQL не в UTF-8: создайте базу данных из template0 с локалью ru_RU.UTF-8.");
	ДобавитьПравило(Правила, "does not exist|отсутствует в сервере баз данных",
		"Нет базы данных или роли: сверьте имена и флажок «Создать базу данных в случае ее отсутствия».");
	ДобавитьПравило(Правила, "администратор кластера не аутентифицирован",
		"Передайте имя и пароль администратора кластера.");
	ДобавитьПравило(Правила, "уже зарегистрирована|уже существует|already exists",
		"Имя уже занято в кластере или в PostgreSQL: выберите другое.");

	Текст = НРег(ТекстОшибки);
	Для Каждого Правило Из Правила Цикл
		Для Каждого Признак Из Правило.Признаки Цикл
			Если СтрНайти(Текст, Признак) > 0 Тогда
				Возврат Правило.Подсказка;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;

	Возврат "Готовой подсказки нет: смотрите текст после «Ошибка СУБД:» и журнал PostgreSQL.";

КонецФункции

&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьПравило(Правила, Знач Признаки, Знач Подсказка)

	Правила.Добавить(Новый Структура("Признаки, Подсказка", СтрРазделить(НРег(Признаки), "|", Ложь), Подсказка));

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

Третий загружает .dt пакетным конфигуратором и читает его журнал.

// Загрузка .dt в пустую серверную базу пакетным конфигуратором на компьютере администратора.
// Платформа 8.3.18+ (Асинх и Ждать). Нужна полная установка с конфигуратором той же версии,
// что сервер 1С; на Linux имя файла - без ".exe".
&НаКлиенте
Асинх Функция ЗагрузитьВыгрузкуАсинх(Знач АдресКластера, Знач ИмяВКластере, Знач ФайлВыгрузки)

	ФайлЖурнала = ПолучитьИмяВременногоФайла("log");
	ФайлРезультата = ПолучитьИмяВременногоФайла("txt");

	// Пользователей в новой базе нет, поэтому ключи /N и /P не нужны
	Команда = СтрШаблон("""%1"" DESIGNER /S ""%2\%3"" /DisableStartupDialogs /RestoreIB ""%4"" /Out ""%5"" /DumpResult ""%6""",
		КаталогПрограммы() + "1cv8.exe", АдресКластера, ИмяВКластере, ФайлВыгрузки, ФайлЖурнала, ФайлРезультата);
	Попытка
		КодВозврата = Ждать ЗапуститьПриложениеАсинх(Команда, , Истина);
	Исключение
		// нет 1cv8.exe: на машине установлен только тонкий клиент
		Возврат Новый Структура("Успех, Журнал", Ложь,
			"Конфигуратор не запущен: " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
	КонецПопытки;

	Результат = Новый Структура("Успех, Журнал", Ложь, "");
	Документ = Новый ТекстовыйДокумент;
	Попытка
		Ждать Документ.ПрочитатьАсинх(ФайлРезультата);
		Результат.Успех = (СокрЛП(Документ.ПолучитьТекст()) = "0"); // /DumpResult: 0 - успех
		Ждать Документ.ПрочитатьАсинх(ФайлЖурнала, КодировкаТекста.UTF8); // /Out пишет в UTF-8
		Результат.Журнал = Документ.ПолучитьТекст();
	Исключение
		Результат.Журнал = СтрШаблон("Конфигуратор не записал результат (код возврата %1). Проверьте %2",
			КодВозврата, КаталогПрограммы() + "1cv8.exe");
	КонецПопытки;

	Если Не Результат.Успех Тогда
		Результат.Журнал = Результат.Журнал + Символы.ПС + ПодсказкаПоОшибкеСУБД(Результат.Журнал);
	КонецЕсли;

	Для Каждого ИмяФайла Из СтрРазделить(ФайлЖурнала + "|" + ФайлРезультата, "|") Цикл
		Попытка
			Ждать УдалитьФайлыАсинх(ИмяФайла);
		Исключение
			// не страшно: временные файлы платформа удалит при следующем запуске
		КонецПопытки;
	КонецЦикла;

	Возврат Результат;

КонецФункции

Четвёртый собирает шаги вместе, его вызывают из команды формы.

// Команда формы: база в кластере -> загрузка .dt -> итог администратору. Настройки берутся
// из ПараметрыНовойБазыPostgreSQL() и заполняются из полей формы, пароли - в полях с режимом пароля.
&НаКлиенте
Асинх Функция РазвернутьКопиюАсинх(Знач Настройки, Знач ФайлВыгрузки)

	Попытка
		ИмяВКластере = СоздатьБазуВКластере(Настройки);
	Исключение
		Сообщить("База не создана: " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
		Возврат Ложь;
	КонецПопытки;

	// Для /S нужен адрес менеджера кластера; здесь он на той же машине, что и ras
	АдресКластера = Настройки.АдресRAS;
	Если Настройки.ПортКластера <> 1541 Тогда
		АдресКластера = АдресКластера + ":" + Формат(Настройки.ПортКластера, "ЧГ=");
	КонецЕсли;

	Результат = Ждать ЗагрузитьВыгрузкуАсинх(АдресКластера, ИмяВКластере, ФайлВыгрузки);
	Если Результат.Успех Тогда
		Сообщить(СтрШаблон("База %1 создана, выгрузка загружена. Регламентные задания заблокированы: %2",
			ИмяВКластере, Формат(Настройки.ЗапретитьРегламентныеЗадания, "БЛ=нет; БИ=да")));
	Иначе
		Сообщить("Выгрузка не загружена:" + Символы.ПС + Результат.Журнал);
	КонецЕсли;

	Возврат Результат.Успех;

КонецФункции

Разбор ключевых строк

  • Кластер.ВыполнитьАутентификацию(...) — без неё не работают ПолучитьИнформационныеБазы() и СоздатьИнформационнуюБазу(). У Агент.ВыполнитьАутентификацию (администратор центрального сервера) порядок параметров обратный: сначала пароль, потом имя.
  • СоздатьИнформационнуюБазу() возвращает объект с пустыми свойствами, в кластер он попадает после Записать(). В этот момент сервер 1С подключается к PostgreSQL, поэтому вызов обёрнут в Попытка с подсказкой.
  • СоздатьБазуДанных = Истина — флажок «Создать базу данных в случае ее отсутствия»: существующую базу данных платформа подключает, а не пересоздаёт.
  • БлокировкаРегламентныхЗаданий — обмены и рассылки в копии не запустятся. Об управлении заданиями — в статье про регламентные задания.
  • СтрДлина(Имя) > 63 — предел длины имени в PostgreSQL: длиннее он обрезает.
  • /S без /N и /P — в пустой базе нет пользователей. КаталогПрограммы() указывает на каталог тонкого клиента: его версия совпадает с сервером, а 1cv8.exe там есть, если установлена полная платформа.
  • /DumpResult пишет 0 при успехе, журнал /Out — в UTF-8, отсюда КодировкаТекста.UTF8.

Типичные ошибки

Текст PostgreSQL платформа выводит после слов «Ошибка СУБД:».

Аутентификация

  • no pg_hba.conf entry for host "10.0.0.5", user "usr1c", database … — нет строки для адреса сервера 1С: добавьте её и выполните SELECT pg_reload_conf();.
  • password authentication failed for user "usr1c" (по-русски «…не прошёл проверку подлинности (по паролю)») — неверный пароль. Если он верный, а метод scram-sha-256, пароль мог остаться в md5 после переноса кластера — задайте его заново через \password.
  • authentication method 10 not supported — libpq старого релиза платформы не умеет SCRAM: обновите платформу или временно перейдите на md5.
  • «Администратор кластера не аутентифицирован. Создание информационной базы невозможно» — передайте администратора кластера: в коде АдминистраторКластера, в CREATEINFOBASE — ключи SUsr и SPwd.
  • permission denied to create database — у роли нет права создавать базы: выдайте SUPERUSER (минимум CREATEDB) или создайте базу данных заранее.

Кодировка и локаль

  • «Неправильная конфигурация кластера PostgreSQL: выбранный язык сообщений (lc_messages) требует указания кодировки, однако она не указана.» — укажите lc_messages = 'ru_RU.UTF-8' и перечитайте настройки.
  • encoding "UTF8" does not match locale "ru_RU.CP1251" (в пояснении — The chosen LC_CTYPE setting requires encoding "WIN1251") или new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) — кластер PostgreSQL не в UTF-8. Создайте базу данных из template0 с локалью ru_RU.UTF-8 (последняя команда в листинге psql) или переинициализируйте кластер, предварительно перенеся рабочие базы.

Прочее

  • В тексте ошибки есть mchar — PostgreSQL без патчей 1С.
  • «Информационная база … уже зарегистрирована в кластере серверов 1С:Предприятия» (в консоли — «Информационная база с таким именем уже существует») — имя занято.
  • Connection refused или таймаут — не запущена служба PostgreSQL, listen_addresses ограничен localhost, порт закрыт брандмауэром или указан не через port=.

Частые вопросы

Подойдёт ли обычный PostgreSQL без патчей 1С?

Нет: строки платформа хранит в типах mchar и mvarchar из расширений сборки для 1С. Версию PostgreSQL сверяйте со списком поддерживаемых СУБД для своей версии 1С 8.3 на v8.1c.ru.

Нужно ли создавать базу данных в PostgreSQL заранее?

Нет, с флажком «Создать базу данных в случае ее отсутствия» платформа создаст её сама. Заранее создают, когда нужны свой владелец, табличное пространство или локаль: укажите это имя при регистрации, и платформа создаст таблицы в готовой базе.

После загрузки копии появилось окно «Информационная база была перемещена или восстановлена из резервной копии». Что нажать?

Это механизм БСП: заметив смену строки соединения, он до решения администратора не выполняет по расписанию синхронизацию, отправку почты и другую работу с внешними ресурсами. Для тестовой копии нажмите «Это копия информационной базы», для переезда — «Информационная база перемещена» (так в УТ 11.4 и КА 2.5).

Как перенести файловую базу на PostgreSQL?

Выгрузите её в .dt («Администрирование» → «Выгрузить информационную базу…»), создайте пустую серверную базу и загрузите файл. До переключения пользователей сформируйте в копии тяжёлые отчёты и проведите документы: на PostgreSQL запросы выполняются иначе, чем в файловой базе.

Когда проще заказать

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

По теме

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.