Развертывание хранилища конфигураций 1С — критически важный этап для командной разработки, когда несколько программистов одновременно работают над одной базой. Без правильно настроенного хранилища вы рискуете потерять изменения, столкнуться с конфликтами версий или даже блокировкой доступа к объектам. Эта статья поможет избежать типичных ошибок: от выбора аппаратной платформы до настройки прав доступа и автоматического резервного копирования.

Мы рассмотрим не только стандартную процедуру через Конфигуратор 1С, но и альтернативные способы развертывания (например, через rac или PowerShell), а также нюансы работы с 1С:Предприятие 8.3 в разных операционных системах. Особое внимание уделено проблеме "зависших" блокировок объектов при некорректном завершении сеансов разработчиков — одна из самых распространенных причин сбоев в командной работе.

Если вы админ или тимейт-лид, ответственный за инфраструктуру 1С, сохраните эту статью в закладки: здесь есть чек-листы для проверки конфигурации сервера, примеры скриптов для автоматического бэкапа и таблица сравнения файловой и серверной версий хранилища. Для новичков мы добавили FAQ с ответами на вопросы, которые редко освещают в официальной документации.

1. Выбор между файловой и серверной версией хранилища

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

Файловое хранилище (.cf-файлы) подходит для небольших команд (до 5 разработчиков) и тестовых сред. Его плюсы:

  • 🔹 Простота настройки — достаточно общей папки на файловом сервере или в облаке (Yandex Диск, Google Drive).
  • 🔹 Нет привязки к конкретной версии 1С:Предприятие — можно использовать даже с урезанными редакциями.
  • 🔹 Легко переносить между машинами — достаточно скопировать папку.

Серверное хранилище (на базе PostgreSQL или Microsoft SQL Server) необходимо для команд от 6 человек и для производственных систем. Его преимущества:

  • 🔹 Централизованное управление блокировками — меньше конфликтов при одновременной работе.
  • 🔹 Журналирование изменений — можно откатиться к любой версии объекта.
  • 🔹 Высокая производительность при большом количестве объектов (свыше 10 000).
📊 Какой тип хранилища 1С вы используете?
Файловое
Серверное на PostgreSQL
Серверное на MS SQL
Пока не развернул

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

Когда обязательно нужно серверное хранилище?

Если в команде есть разработчики, работающие удаленно через медленные каналы связи (например, VPN), или если конфигурация содержит более 20 000 объектов (включая реквизиты, формы, макеты). В таких случаях файловое хранилище будет тормозить и вызывать таймауты.

2. Требования к серверу и подготовка инфраструктуры

Минимальные требования к серверу для хранилища зависят от количества разработчиков и объема конфигурации. Для файлового варианта достаточно виртуальной машины с 2 ядрами и 4 ГБ ОЗУ. Для серверного хранилища на PostgreSQL рекомендуем:

Параметр Минимально Рекомендуемо Для больших команд (10+ чел.)
CPU 2 ядра 4 ядра 8 ядер
ОЗУ 4 ГБ 8 ГБ 16 ГБ
HDD/SSD 50 ГБ (HDD) 100 ГБ (SSD) 200 ГБ (NVMe)
Сеть 100 Мбит/с 1 Гбит/с 10 Гбит/с (для распределенных команд)

Для PostgreSQL также важно настроить параметры shared_buffers (рекомендуем 25% от общего ОЗУ) и work_mem (не менее 16 МБ). Эти настройки прописываются в файле postgresql.conf.

⚠️ Внимание: Если вы используете облачные серверы (например, AWS RDS или Yandex Cloud Managed PostgreSQL), проверьте лимиты на количество подключений. Некоторые тарифы ограничивают это значение 50–100 сессиями, что может блокировать работу разработчиков.

Для файлового хранилища критично:

  • 🔹 Отключить индексирование папки хранилища в Windows (через свойства папки).
  • 🔹 Настроить исключения в антивирусе для папки хранилища и процесса 1cv8.exe.
  • 🔹 Использовать сетевой диск с поддержкой SMB 3.0 (для Windows) или NFS 4.1 (для Linux).

☑️ Подготовка сервера для хранилища 1С

Выполнено: 0 / 5

3. Пошаговая инструкция по развертыванию файлового хранилища

Файловое хранилище развернуть проще всего. Вам понадобится:

  • 🔹 Общая сетевая папка (например, \\server\1CStorage).
  • 🔹 Права на запись для всех разработчиков.
  • 🔹 Конфигуратор 1С с правами администратора.

Шаг 1. Откройте конфигурацию в режиме Конфигуратор и перейдите в меню Файл → Открыть хранилище конфигурации.

Шаг 2. В окне подключения выберите Создать новое хранилище и укажите путь к сетевой папке. Например:

\\192.168.1.100\1C_Storage\MyConfig

Шаг 3. Задайте имя хранилища (например, Main_ERP_Storage) и пароль администратора. Используйте пароль длиной не менее 12 символов с цифрами и спецсимволами — это защитит от несанкционированного доступа к истории изменений.

Шаг 4. Нажмите Готово и дождитесь создания структуры хранилища. В папке появятся файлы:

  • 🔹 1Cv8.1CD — база данных хранилища.
  • 🔹 1Cv8.lck — файл блокировок.
  • 🔹 config — папка с версиями объектов.
⚠️ Внимание: Если при создании хранилища возникает ошибка "Недостаточно прав для создания файла", проверьте не только права на папку, но и права на родительские каталоги. В Windows это делается через icacls:

icacls "C:\Storage" /grant "DOMAIN\DevTeam:(OI)(CI)F"

4. Развертывание серверного хранилища на PostgreSQL

Для серверного варианта сначала установите PostgreSQL (версия не ниже 10.0) и создайте базу данных для хранилища. Используйте кодировку UTF-8 и сортировку C:

CREATE DATABASE config_storage

WITH

OWNER = postgres

ENCODING = 'UTF8'

LC_COLLATE = 'C'

LC_CTYPE = 'C'

TABLESPACE = pg_default

CONNECTION LIMIT = -1;

Далее в Конфигураторе 1С:

  1. Выберите Файл → Открыть хранилище конфигурации → Создать новое.
  2. Укажите тип Серверное хранилище на PostgreSQL.
  3. Введите параметры подключения:
    • 🔹 Сервер: localhost или IP-адрес (например, 192.168.1.200).
    • 🔹 Порт: 5432 (по умолчанию).
    • 🔹 База данных: config_storage (созданная ранее).
    • 🔹 Пользователь/пароль: данные для подключения к PostgreSQL.
  • Задайте имя хранилища и пароль администратора (как в файловом варианте).
  • После создания хранилища проверьте его работоспособность через pgAdmin или команду:

    psql -U postgres -d config_storage -c "\dt"

    В выводе должны отобразиться таблицы config, configsave и locks.

    💡

    Если хранилище тормозит при большом количестве объектов, увеличьте параметр maintenance_work_mem в PostgreSQL до 512 МБ и выполните команду VACUUM ANALYZE config; для оптимизации таблиц.

    5. Настройка прав доступа и блокировок

    По умолчанию в хранилище 1С есть две роли:

    • 🔹 Администратор — полный доступ ко всем объектам и настройкам.
    • 🔹 Разработчик — может редактировать объекты, но не может управлять пользователями.

    Чтобы добавить нового пользователя:

    1. В Конфигураторе откройте хранилище и перейдите в Администрирование → Пользователи.
    2. Нажмите Добавить и введите имя пользователя (например, Ivanov_P).
    3. Задайте пароль и роль (Администратор или Разработчик).
    4. На вкладке Права укажите, какие объекты конфигурации пользователь может редактировать (по умолчанию — все).

    Для предотвращения конфликтов блокировок:

    • 🔹 Настройте таймаут блокировки в параметрах хранилища (рекомендуем 30 минут).
    • 🔹 Используйте комментарии к изменениям — это поможет отслеживать, кто и зачем блокирует объект.
    • 🔹 Регулярно проверяйте зависшие блокировки через Администрирование → Блокировки.
    ⚠️ Внимание: Если разработчик не освободил блокировку (например, из-за падения 1С:Предприятие), ее можно снять принудительно через Администрирование → Блокировки → Снять блокировку. Однако это может привести к потере несохраненных изменений!
    💡

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

    6. Автоматическое резервное копирование хранилища

    Резервное копирование хранилища должно выполняться ежедневно, особенно если в команде более 3 разработчиков. Для файлового хранилища достаточно скопировать папку с помощью robocopy (Windows) или rsync (Linux):

    robocopy \\server\1CStorage\ D:\Backups\1CStorage /MIR /Z /R:3 /W:5 /LOG:backup.log

    Для серверного хранилища на PostgreSQL используйте pg_dump:

    pg_dump -U postgres -F c -b -v -f "D:\Backups\config_storage_$(date +%Y%m%d).backup" config_storage

    Автоматизировать процесс можно через Планировщик задач (Windows) или cron (Linux). Пример задачи для cron:

    0 2   * /usr/bin/pg_dump -U postgres config_storage > /backups/config_storage_$(date +\%Y\%m\%d).sql

    Храните резервные копии не менее 30 дней, а для критически важных проектов — до 90 дней. Проверяйте целостность бэкапов раз в неделю, пытаясь восстановить их на тестовом сервере.

    Как восстановить хранилище из бэкапа?

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

    pg_restore -U postgres -d config_storage -c D:\Backups\config_storage_20260501.backup

    После восстановления проверьте права доступа и блокировки через Конфигуратор 1С.

    7. Типичные ошибки и их решения

    Даже при правильной настройке хранилища могут возникать сбои. Вот самые распространенные:

    Ошибка Причина Решение
    Не удалось подключиться к хранилищу Нет прав на папку или база PostgreSQL не запущена Проверьте права и статус службы postgresql
    Объект заблокирован другим пользователем Зависшая блокировка или сеанс разработчика Снимите блокировку через Администрирование или перезапустите сервер 1С
    Недостаточно памяти для операции Мало ОЗУ на сервере или не оптимизирован PostgreSQL Увеличьте shared_buffers и work_mem в postgresql.conf
    Ошибка чтения файла хранилища Повреждение файлов .1CD или .lck Восстановите из бэкапа или используйте chdbfl.exe для ремонта

    Если хранилище работает медленно:

    • 🔹 Проверьте фрагментацию диска (для файлового хранилища).
    • 🔹 Оптимизируйте таблицы в PostgreSQL командой VACUUM FULL ANALYZE;.
    • 🔹 Отключите антивирусное сканирование папки хранилища в реальном времени.

    8. Альтернативные способы развертывания (для опытных)

    Помимо стандартного развертывания через Конфигуратор, можно использовать:

    1. Командная строка (rac):

    Утилита rac.exe (Расширение администрирования кластера) позволяет управлять хранилищем без графического интерфейса. Пример создания хранилища:

    rac storage create --name=MainStorage --location=\\server\storage --user=admin --pwd=SecurePass123!

    2. PowerShell-скрипты:

    Для автоматизации развертывания на Windows:

    $storagePath = "\\server\1CStorage"
    

    $storageName = "ERP_Storage"

    $adminPwd = ConvertTo-SecureString "YourPassword" -AsPlainText -Force

    New-1CStorage -Path $storagePath -Name $storageName -AdminPassword $adminPwd

    3. Docker-контейнеры:

    Для серверного хранилища на PostgreSQL можно использовать готовый образ:

    docker run --name pg-1c-storage -e POSTGRES_PASSWORD=postgres -p 5432:5432 -v /data/pg:/var/lib/postgresql/data -d postgres:13

    Эти методы удобны для CI/CD-пайплайнов или развертывания в облачных средах (AWS, Azure).

    💡

    Для командной работы с хранилищем через Git используйте утилиту OneScript + vanessa-runner. Она позволяет экспортировать объекты 1С в репозиторий и обратно, сохраняя историю изменений.

    FAQ: Частые вопросы по развертыванию хранилища 1С

    Можно ли использовать облачные диски (Google Drive, Yandex Диск) для файлового хранилища?

    Технически да, но это не рекомендуется для производственных систем. Облачные диски могут вызывать задержки при блокировке объектов из-за синхронизации. Для тестовых целей подойдет, но для работы команды лучше использовать локальный сервер или VPN.

    Как перенести хранилище с файлового на серверное?

    Сначала создайте новое серверное хранилище, затем экспортируйте объекты из старого через Конфигуратор:

    1. Откройте исходную конфигурацию из файлового хранилища.
    2. Выгрузите объекты в .cf-файл (Файл → Выгрузить конфигурацию в файл).
    3. Подключитесь к новому серверному хранилищу и загрузите .cf-файл (Файл → Загрузить конфигурацию из файла).
    Важно: История изменений при этом не переносится!

    Что делать, если хранилище "зависло" и не отвечает?

    Порядок действий:

    1. Проверьте, не заняты ли все подключения к PostgreSQL (SELECT count(*) FROM pg_stat_activity;).
    2. Перезапустите службу 1С:Предприятие и PostgreSQL.
    3. Если не помогло — восстановите хранилище из последнего бэкапа.

    Частая причина зависаний — длинные транзакции (например, при массовом изменении объектов). Ограничьте время блокировки в настройках хранилища.

    Как настроить уведомления о новых версиях объектов?

    В 1С нет встроенных уведомлений, но можно использовать:

    • 🔹 Скрипт на PowerShell, который проверяет изменения в хранилище и отправляет email через Send-MailMessage.
    • 🔹 Интеграцию с Telegram-ботом через OneScript.
    • 🔹 Плагины для Jira или Redmine, если вы ведете задачи там.

    Пример скрипта для проверки изменений:

    $lastVersion = (Get-Content "D:\Storage\version.txt")
    

    $currentVersion = (rac storage info --name=MainStorage | Select-String "Версия")

    if ($lastVersion -ne $currentVersion) { Send-MailMessage -To "team@company.com" -Subject "Новые изменения в хранилище 1С" -Body "Обновлена версия $currentVersion" }

    Можно ли развернуть хранилище на Linux-сервере?

    Да, но с нюансами:

    • 🔹 Для файлового хранилища используйте Samba с поддержкой SMB 3.0.
    • 🔹 Для серверного хранилища на PostgreSQL никаких ограничений нет — 1С полностью поддерживает Linux-версию СУБД.
    • 🔹 Убедитесь, что у пользователя, под которым работает 1С, есть права на запись в папку хранилища (chmod 775 /mnt/1c_storage).

    Пример монтирования сетевой папки в Linux:

    sudo mount -t cifs //192.168.1.100/1CStorage /mnt/1c_storage -o username=admin,password=pass,vers=3.0