Kenny00
@Kenny00

Почему база созданная через psql не пригодна для использования в 1С?

После создания базы 1С в psql при попытке добавления базы в кластер появляется сообщение об ошибке, что:
DATABASE не пригоден для использования
4evkgrgrp-6g6rjbi0cdbv4izx0.png
Создавал базу 2 способами:
-- Database: MyTest

-- DROP DATABASE "MyTest";

CREATE DATABASE "MyTest"
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'ru_RU.UTF-8'
LC_CTYPE = 'ru_RU.UTF-8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
\q

и
CREATE DATABASE MyTest WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8';

Почему 1С не позволяет работать с такой пустой базой?
Какой минимальный набор в базе должен быть, для "пригодной" среды?

Конечно же если создать пустую базу через консоль кластера или саму 1С, и выгрузить дамп в sql и его потом загрузить на нужный сервер, всё работает, но там создается еще куча объектов, все ли они нужны?

pg_dump -C -h localhost -U postgres usos_test > MyTest.sql

-- DROP DATABASE "MyTest";

CREATE DATABASE "MyTest"
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'ru_RU.UTF-8'
LC_CTYPE = 'ru_RU.UTF-8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
\q

psql -h remote.app.serv01 -U postgres --single-transaction < MyTest.sql

Можно ли в обще создавать пустые базы средствами PostgreSQL?
  • Вопрос задан
  • 6606 просмотров
Решения вопроса 1
Mikhail_E
@Mikhail_E
1С, SQL
Вручную, базы для 1С обычно не создаются по нескольким причинам.
Одна из основных - структура таблиц, (в т.ч. имена полей и таблиц) должна быть в точности как 1С планируется её использовать. (Имена таблиц, далее будут записаны в соответствие, в отдельной таблице)
Также после создания , эта структура бд, должна быть в опр. виде в двоичных данных в нескольких "Служебных таблицах", в точности воссоздать которую - дело крайне проблематичное.
Если у вас есть желание создавать базы скриптом, самый простой способ - создать "пустышку" из 1С, создать бэкап, а далее его разворачивать там, где вам необходимо.
З.Ы.: даже пустая база, созданная из 1С, по факту будет не пустой, в ней будет куча служебных данных. Именно поэтому, ваша база выдала ошибку при подключении к кластеру (не были обнаружены, служебные данные в служебных таблицах)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@twistfire92
Python backend developer
Создайте пустую серверную базу в 1С, укажите "создать базу в случае ее отсутствия" и посмотрите как выглядит "пустая" 1С база в постгре.
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Да, 1С использует постгрес в особо извращённой форме. Лучше лишний раз руками в этот набор гирь и противовесов не влезать...
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Почему база созданная через psql не пригодна для использования в 1С?
Потому что база кривая. Вы нужные таблицы создали?

Почему 1С не позволяет работать с такой пустой базой?
Потому что 1с не умеет работать с пустыми базами.

но там создается еще куча объектов, все ли они нужны?
Они вообще не нужны, просто без них не работает.

Можно ли в обще создавать пустые базы средствами PostgreSQL?
Разумеется. Ищите формат хранения данных и метаданных в 1с, вникайте, и разбирайтесь какие объекты должны быть созданы в пустой базе, после чего создавайте их средствами постгресс, уж не знаю зачем это вам нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы