Конфигурация для управления базами данных 1С с основными функциями ibcmd и возможностью восстановления резервных копий PG из снимков ZFS

09.06.26

База данных - Инструменты администратора БД

Панель для управления базами 1С, сочетающая в себе функции управления кластером 1С посредством RAS сервера, основные возможности утилиты ibcmd (выгрузка/загрузка dt,cf,cfe, репликация) и управление резервными копиями, развернутыми на ZFS (через снимки). Представляет из себя конфигурацию на 1С 8.5, способную работать обособленно в docker контейнере (посредством ibsrv).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Конфигурация для управления базами данных 1С
.zip 839,44Kb
0 4 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Слон — это панель для управления базами 1С, сочетающая в себе функции управления кластером 1С посредством RAS-сервера, основные возможности утилиты ibcmd (выгрузка/загрузка dt, cf, cfe, репликация), а также управление резервными копиями, развёрнутыми на ZFS (через снимки). Представляет собой конфигурацию на 1С 8.5, способную работать обособленно в Docker-контейнере (посредством ibsrv).

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


 

Изначально Слон разрабатывался именно для управления Docker-контейнерами с PG, развёрнутыми на ZFS-массиве, для оперативного получения копий баз из снимков. Но по мере наращивания функций работы с базами переориентирован и на обычный способ подключения к БД. ZFS интересна далеко не каждому, поэтому покажу сначала Слона без неё, а в заключение — с ней.

 

Запуск в контейнере

Слон может работать как на Windows, так и на Linux. На Linux ibcmd не может работать с MSSQL, и Слон тоже не будет. Если вам нужен только Postgres, вы можете запустить Слона в Docker-контейнере, который приготовлен для этого случая:

https://github.com/kot-camojiet/1c-single

Создайте docker-compose.yml:

services:
  slon:
    image: camojiet/1c-single:latest
    container_name: slon
    ports:
      - "8314:8314"
    volumes:
      - ./fs-data:/fs-data
      - ./storage:/storage
    security_opt:
      - apparmor=unconfined
    restart: unless-stopped
    environment:
      PORT: 8314
      TZ: Asia/Vladivostok

Создайте в папке с compose папку с базой и хранилище:

mkdir -p ./fs-data/db-data
mkdir ./storage

Поместите 1Cv8.1CD в ./fs-data/db-data/

Запустите:

docker compose up -d

После запуска контейнера база будет доступна через http на порту 8314.

 

Основные функции

Зайдите в базу через браузер, авторизуйтесь под Администратором без пароля.

Зайдите в настройки:

 


В настройках для работы без ZFS достаточно установить пароль, каталог хранилища (там будут храниться dt, cf, cfe и временные папки для ibcmd) и путь к бинарным файлам платформы (для запуска ibcmd).

 

 

Далее необходимо добавить сервер 1С.



Укажите название, адрес и порт RAS-сервера, администратора сервера и пароль, администратора кластера и пароль (если есть).

Заблокируйте по умолчанию фоновые задания, чтобы случайно не запустить их во время ознакомления. Установленные по умолчанию параметры будут применяться для создаваемых на этом сервере баз:


 

Добавьте сервер БД:



Введите необходимые данные для работы с БД:



Теперь можете добавить базу:

 

 

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

После подключения базы можете загрузить файлы dt, cf, cfe в хранилище (2), затем загрузить в базу (3,4):

 

 

Есть возможность загружать файл по прямой ссылке и ссылке из Nextcloud. Можно загружать несколько файлов в облако по ссылке на расшаренную папку (тестировал на Nextcloud 32.0.3).

После загрузки в базе будет гореть бордовым, если база не авторизована:


 

Заполните пользователя, пароль, запишите. Бордовая рамка должна исчезнуть, если авторизация пройдена (пользователь должен обладать ролью «Администрирование»).

Допускается загрузка cf или cfe в несколько баз из контекстного меню списка баз:



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


 

Если будет выбрана последовательная загрузка, то запустится одно фоновое задание, которое загрузит файл в базы одну за другой. Если параллельная — на каждую базу будет запущено своё фоновое задание.

Из контекстного меню списка баз можно заблокировать пользовательские сеансы (по одной базе):


 

задействовать ibcmd replicate:


 

удалить базу:

 

 

а также снять/установить признак «Считывать данные» для множества баз.

В списке баз отражается информация о блокировке заданий (БЗ), блокировке сеансов (БС), количестве запущенных приложений 1CV8C (КП — количество пользователей):



Список установленных расширений доступен на форме базы. Множеству выбранных расширений можно установить параметры:



или удалить их. Удаление всех расширений производится за одну итерацию (с ключом -all), удаление нескольких (но не всех) — по одной итерации на расширение.

 

Использование Slon-pg + ZFS

Slon-pg — это Docker-образ, предназначенный для запуска инстанса PG для 1С в Docker-контейнере. Он разрабатывался как универсальный инструмент для запуска одиночного PG-инстанса и пары мастер-реплика через штатный механизм PG. В Слоне выведены настройки по запуску мастера и реплики, но в деле испытан только одиночный запуск, и в рамках этой статьи мы не будем затрагивать другие.

Исходные файлы для сборки по ссылке:

https://github.com/kot-camojiet/slon-pg

При заполнении объекта slon-pg будет запущен инстанс PG, данные которого будут расположены на массиве ZFS. На машине с ZFS настраивается sanoid, который обеспечивает создание снимков с нужной периодичностью (например, раз в час). Слон может создать клон из выбранного снимка и запустить на этих данных новый инстанс slon-pg на другом порту. Если данные и WAL находятся в одном снимке, то копия будет консистентной. Таким образом, мы можем получить копию всего инстанса для оперативной копии в нужд поддержки. При этом не надо ждать копирования данных, и такая копия не занимает место — необходимо только немного подождать, пока PG проиграет журнал транзакций до корректного состояния.

Для того чтобы это всё заработало, необходима Linux-машина с OpenZFS на борту, с настроенным массивом и пользователем, которому доступен целевой датасет, с настроенным доступом через SSH. Слон будет отдавать команды по SSH, обеспечивающие запуск PG и управление ZFS. Если Слон располагается на Windows-машине, то имейте в виду, что на Windows 2012 R2 нет SSH-клиента, а на более новых — есть. Без SSH-клиента ничего не получится; как его ставить на старые Windows-машины — я не знаю.

 

ZFS

Создайте массив:

zpool create -o ashift=13 postgres mirror nvme-HP_SSD_EX950_1TB_HBSE45350300040 nvme-HP_SSD_EX950_1TB_HBSE45350300043 log mirror nvme-INTEL_MEMPEK1J016GAL_BTBT84050517016N-part1 nvme-INTEL_MEMPEK1J016GAL_PHBT844300QV016N-part1

В моём случае это зеркало из двух основных дисков + отдельное зеркало для синхронных записей на Optane. Задумка была интересной, но целесообразность под вопросом. Возможно, удачнее расположить на Optane только метаданные. Не будем на этом останавливаться; надеюсь, найдутся товарищи, которым есть что сказать в части развёртывания Postgres на ZFS.

Выделите отдельный датасет:

zfs create postgres/slon

Настройте:

zfs set recordsize=128k postgres/slon 
zfs set atime=off postgres/slon
zfs set primarycache=all postgres/slon
zfs set secondarycache=all postgres/slon
zfs set logbias=throughput postgres/slon
zfs set sync=standard postgres/slon
zfs set compression=lz4 postgres/slon 
zfs set dnodesize=auto postgres/slon

Экспериментировал с recordsize=8k (32, 64) и не увидел особой разницы по сравнению с 128k в тестах того же Гилёва, поэтому оставил большее значение в угоду сжимаемости.

С ZFS возможны различные варианты, позволяющие получить приемлемую производительность с недорогого железа. Чем больше дисков, тем производительнее можно получить массив. Например, 8 10k SAS по 1 ТБ с двумя недорогими Optane превратились в приемлемый массив для небольших экспериментов.

Создайте пользователя, сохраните его пароль — он понадобится в дальнейшем:

useradd slon
passwd slon

mkdir /home/slon
chown slon:slon /home/slon

zfs allow -u slon clone,create,destroy,hold,mount,mountpoint,receive,rename,send,snapshot postgres/slon
apt install sudo

Мне не удалось без костылей примонтировать под пользователем slon массив в Debian — монтирует только root, чтобы я ни делал. Вышел из положения дополнительными sudo-скриптами:

cat > /usr/local/bin/zfsmount.sh << 'EOF'
#!/bin/bash
# Обёртка для безопасного монтирования датасетов slon

DATASET="$1"

# Разрешаем только датасеты внутри postgres/slon/* или storage/slon/*
if [[ "$DATASET" =~ ^(postgres/slon/|storage/slon/) ]]; then
    /usr/sbin/zfs mount "$DATASET"
else
    echo "Error: you can only mount datasets under postgres/slon/* or storage/slon/*" >&2
    exit 1
fi
EOF
chmod +x /usr/local/bin/zfsmount.sh

cat > /usr/local/bin/zfsumount.sh << 'EOF'
#!/bin/bash
# Обёртка для безопасного размонтирования датасетов slon

DATASET="$1"

if [[ "$DATASET" =~ ^(postgres/slon/|storage/slon/) ]]; then
    /usr/sbin/zfs unmount "$DATASET"
else
    echo "Error: you can only unmount datasets under postgres/slon/* or storage/slon/*" >&2
    exit 1
fi
EOF
chmod +x /usr/local/bin/zfsumount.sh

echo "slon ALL=(ALL) NOPASSWD: /usr/local/bin/zfsmount.sh, /usr/local/bin/zfsumount.sh" >> /etc/sudoers

Поставьте docker

Включите пользователя в группу docker:

usermod -aG docker slon

 

Настройка slon-pg

Заполните в настройках Слона адрес, порт подключения, пользователя:


 

Введите пароль пользователя slon, который на сервере с ZFS:


 

Нажмите «Проверить» ещё раз, при успешной установке вы должны увидеть ответ команды uptime на удалённом сервере. 

Данный способ работает только с установленной утилитой sshpass на 1С сервере. Если её нет, нужно установить ключ из под серверного пользователя 1С вручную.

Создайте массив ZFS в Слоне:




Будут созданы подразделы для оригиналов и клонов (они должны находиться в одном массиве)

~$ zfs list postgres/slon -r
NAME                      USED  AVAIL     REFER  MOUNTPOINT
postgres/slon            7.33M   802G       25K  /postgres/slon
postgres/slon/clon         24K   802G       24K  /postgres/slon/clon
postgres/slon/orig       7.28M   802G       25K  /postgres/slon/orig

Создайте инстанс PG:


 

Первая запись будет долгой, пока образ не загрузится.

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

~$ docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS         PORTS                                         NAMES
372e20f0a2b4   camojiet/slon-pg:latest   "entrypoint.sh postg…"   9 minutes ago   Up 9 minutes   0.0.0.0:5500->5432/tcp, [::]:5500->5432/tcp   test

Теперь можно создать базу на этом инстансе PG:

 

 

Снимки

Снимки, доступные из базы - это снимки всего PG-инстанса. В боевой обстановке с настроенными sanoid и syncoid на датасет postgres/slon/orig/test список похожим на этот:


 

Не снимаю копий syncoid и удаляю свои снимки, чтобы из-за неудалённого снимка не кончилось место на ZFS.

Сделайте снимок:

 

 

Теперь можно получить копию базы из снимка ZFS:



На этом этапе можно поменять имя базы клона, а сервер 1С — на отладочный (он поменяется сам, если указан в настройках отладочный сервер):


 

Появится база и фоновое задание, отслеживающее факт готовности клона после запуска:


 

После уведомления о готовности базы в клоне можно работать, снять копию в dt или реплицировать на другой инстанс.

Удалите клон после того, как закончите с ним работу:



и свой снимок:


 

Это необходимо, чтобы освободить снимок, который не будет удалён после устаревания и может занять всё место на диске, если про него забыть. Также будет удалён родительский PG-инстанс, который потребляет ресурсы сервера.

Клонируется всегда весь инстанс, но интерфейс построен так, что как будто делается копия только одной базы. Сделать клон инстанса можно и из формы объекта slon-pg, но в обоих случаях можно обращаться ко всем базам инстанса.

Запуск производился на платформе 8.5.1.1343.

Вступайте в нашу телеграмм-группу Инфостарт

1C ibcmd ibsrv docker postgre zfs slon-pg postgres postgresql slon

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    71266    365    170    

317

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    25696    94    46    

102

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

24400 руб.

06.12.2023    23227    81    10    

114

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    50446    137    162    

92

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

Это специализированное решение для глубокого анализа и мониторинга серверов и баз данных 1С. Продукт позволяет выявлять причины замедлений, блокировок и ошибок, объединяя данные технологического журнала, СУБД и оборудования в единой интерактивной системе.

90000 руб.

13.05.2026    667    1    0    

2

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2087    6    0    

20

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    46329    32    13    

50
Для отправки сообщения требуется регистрация/авторизация