Где хранить учётные данные информационных баз 1С:Предприятия и что нельзя хранить в Git (env.json в 1С-проекте)

30.09.26

Разработка - DevOps и автоматизация разработки

Как вынести учётные данные баз в env.json, читать их из BSL и не коммитить в Git. Код чтения JSON и подключения через COMConnector прогнан на платформе 8.3.27.2130 (Windows). Linux не проверялся. Пароль в файле лежит открытым текстом; для продакшена нужно хранилище секретов.
КДПВ: Где хранить учётные данные информационных баз 1С:Предприятия и что нельзя хранить в Git (env.json в 1С-проекте)
🚀 DevOps, CI/CD & Архитектура

Для кого: разработчики 1С, DevOps, администраторы CI.

🎯 О ЧЁМ СТАТЬЯ ЗА 60 СЕКУНД

Учётные данные баз лежат в env.json вне Git, читаются из BSL штатным ЧтениеJSON, а для продакшена секреты передаются через хранилище CI. Код чтения и подключения через COMConnector прогнан на платформе 8.3.27.2130. Граница подхода: файл хранит пароль открытым текстом.

Пароль от базы в тексте обработки, строка подключения в модуле, логин и пароль в .bat-файле сборки. Такой код работает, пока не попадает в репозиторий, на тестовый стенд или к подрядчику. Дальше пароль живёт в истории Git, и удалить его оттуда сложнее, чем написать.

Простое решение: вынести параметры окружения в отдельный файл env.json, который лежит рядом с проектом, читается скриптами и кодом 1С и никогда не коммитится. В статье разберём структуру файла, чтение из BSL, правила для Git и права доступа, а также границы подхода.

📄 Что лежит в env.json

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

JSON UTF-8 Открыть файл
1
2
3
4
5
6
7
8
9
10
11
12
13
{
    "platform": {
        "path": "C:\\Program Files\\1cv8\\8.3.27.1000\\bin\\1cv8.exe"
    },
    "infobase": {
        "connection": "File=\"C:\\bases\\dev\";",
        "user": "Администратор",
        "password": "change_me"
    },
    "common": {
        "tempPath": "C:\\temp\\build"
    }
}

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

💻 Чтение из кода 1С

Штатные средства платформы читают JSON без внешних компонентов:

BSL UTF-8 Открыть файл
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Функция ПрочитатьОкружение(ПутьКФайлу) Экспорт

    Файл = Новый Файл(ПутьКФайлу);
    Если Не Файл.Существует() Тогда
        ВызватьИсключение "Файл окружения не найден: " + ПутьКФайлу;
    КонецЕсли;

    Чтение = Новый ЧтениеJSON;
    Чтение.ОткрытьФайл(ПутьКФайлу, "UTF-8");
    Окружение = ПрочитатьJSON(Чтение);
    Чтение.Закрыть();

    Возврат Окружение;

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

Путь к файлу передайте параметром запуска или переменной среды. Жёстко прописанный путь в модуле возвращает исходную проблему: конфигурация привязана к одной машине.

Подключение к файловой или клиент-серверной базе через COM-соединение выглядит так:

BSL UTF-8 Открыть файл
1
2
3
4
5
Окружение = ПрочитатьОкружение(ПутьКФайлу);
Коннектор = Новый COMОбъект("V83.COMConnector");
Соединение = Коннектор.Connect(
    Окружение.infobase.connection
    + "Usr=" + Окружение.infobase.user + ";Pwd=" + Окружение.infobase.password + ";");

Строка в connection в этом примере заканчивается точкой с запятой, поэтому параметры пользователя дописываются сразу. Проверьте формат строки на своей версии платформы: для клиент-серверной базы вместо File= указываются Srvr= и Ref=.

🌿 Правила для Git

  1. Добавьте env.json в .gitignore до первого коммита проекта. Если файл уже попал в историю, смена пароля обязательна: чистка истории не поможет против тех, кто успел клонировать репозиторий.
  2. Храните в репозитории шаблон env.template.json с заглушками вместо паролей. Он описывает структуру, а разработчик копирует его в env.json и заполняет.
  3. Не используйте пароли рабочей базы на машинах разработчиков. Для разработки заведите отдельного пользователя базы с ограниченными правами.
0
Ошибок /CheckModules
8.3.27
Платформа проверки
2 из 2
Функций прогнано

Я прогнала обе функции - ПрочитатьОкружение и подключение через V83.COMConnector - на файловой базе под Windows, платформа 8.3.27.2130 (x86). Отсутствующий файл даёт исключение. Linux я не проверяла.

🔒 Права на файл

На Linux ограничьте доступ владельцу командой chmod 600 env.json. На Windows уберите из свойств файла группы «Все» и «Пользователи» и оставьте учётную запись, от имени которой работает сборка или служба.

🧭 Пути и окружения

Платформу и каталоги удобно держать в том же файле, а окружения разделять именами: env.dev.json, env.test.json, env.prod.json. Скрипт получает имя файла параметром. Проверка существования файла в начале работы (пример выше) выявляет неверный путь сразу, до запуска сборки.

🚧 Где подход заканчивается

env.json хранит пароль открытым текстом. Он защищает от попадания в Git и от случайного просмотра, но не от человека с доступом к серверу. Для продакшена используйте хранилище секретов вашего CI-сервера или менеджера секретов и передавайте значения в скрипт через переменные среды на время запуска. Что подойдёт, зависит от инфраструктуры: этот вопрос решает администратор, и универсального ответа здесь нет.

📋 Чек-лист

  • env.json в .gitignore, шаблон в репозитории.
  • Секции разделены: информационная база 1С отдельно от СУБД.
  • Права на файл ограничены.
  • Для каждого окружения свой файл и свой пользователь.
  • Продакшен-пароли лежат в хранилище секретов.
  • Путь к файлу передаётся параметром.
 
Нинель Адольевна Щербакова
Нинель Адольевна Щербакова (Ninel_S)
Архитектор • SRE & DevOps инженер • HighLoad 1С
Автор 28+ технических публикаций на Infostart. Разработчик NOPik, SRE-Suite-for-1C и мультиагентных ассистентов для экосистемы 1С:Предприятие.

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

env.json Git .gitignore секреты пароли COMConnector ЧтениеJSON DevOps 1С 8.3

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

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

См. также

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) EDT Разработчик 1С 8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Разобрали, как выстроить CI для 1С 8.3 на EDT и Git: ветки с автослиянием, Jenkins и Pipeline Libraries, подготовка эталонной ИБ на каждый MR, Vanessa и xUnitFor1C в Allure. Материал для инструментальщика, который проектирует проверки до master, а не после релиза.

28.09.2026    291    zolotov7481    0    

0

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Бесплатно (free)

Подключаем Cursor к 1C: Platform Tools MCP на Windows: установка расширений, packagedef, IPC, токен и mcp.json. Восемь шагов со снимками экрана, проверка env_status, разбор MODULE_NOT_FOUND и конфликта портов. Исправляем ошибки предыдущей статьи и объясняем, как агент получает метаданные из XML. Стенд: Cursor 3.19.7, Platform Tools 0.9.6, MCP 0.3.0.

28.09.2026    3206    Ninel_S    0    

3

Архивирование (backup) DevOps и автоматизация разработки Системный администратор Разработчик 1С 8.3 Бесплатно (free)

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

28.09.2026    265    nedomolkov.ivan    0    

0

DevOps и автоматизация разработки Нейросети Разработчик 1С 8.3 Бесплатно (free)

Как связка редактора Cursor и протокола MCP через утилиту 1С: Platform Tools превращает ИИ-ассистента в полноценного участника разработки на 1С: видит структуру проекта, модули, формы и запросы, а также умеет выполнять действия прямо в конфигурации. Разбираем настройку MCP-сервера за 15 минут, роль файла packagedef и типичные ошибки подключения.

22.09.2026    8457    Ninel_S    15    

0

Инструментарий разработчика DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление холдингом Бесплатно (free)

Практическое руководство по выстраиванию процессов версионирования в экосистеме «1С:Предприятие 8»: разбор физики сериализации метаданных, скрытые риски построчного слияния XML, сайзинг 1C:EDT vs gitsync/ibcmd и поэтапный конвейер миграции без остановки релизов.

22.09.2026    567    Ninel_S    0    

0

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Информационная безопасность Инструменты администратора БД Системный администратор Разработчик 1С 8.3 Беларусь Россия Казахстан Абонемент ($m)

Как реализовать безопасное маскирование данных в процессе CI/CD без создания промежуточных копий баз. Объясняем, как использовать инструмент pg_anon для автоматизации скрытия персональных данных при тестировании и развёртывании, сохраняя целостность и структуру информации. Материал объединяет практику Site Reliability Engineering (SRE) с задачами защиты данных, демонстрируя подход, при котором разработчики и DevOps;инженеры могут работать с реалистичными, но обезличенными данными, не нарушая требования безопасности и конфиденциальности.

1 стартмани

11.09.2026    1088    Ninel_S    0    

0

DevOps и автоматизация разработки Администрирование СУБД Групповая разработка (Git, хранилище) Системный администратор Разработчик Руководитель проекта Стажер 1С 8.3 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1C:ERP Беларусь Россия Казахстан Абонемент ($m)

В четвёртой части серии SRE-Suite-for-1C-platform мы переходим к практической автоматизации развёртывания отказоустойчивого кластера PostgreSQL для высоконагруженных систем 1С на Linux. В материале подробно разбирается инженерное решение без HAProxy — с использованием виртуального IP-адреса и vip-manager от CYBERTEC, обеспечивающего прямое подключение к активному мастеру без лишних задержек и точек отказа. Показана структура Ansible-модуля: подготовка ОС, развёртывание etcd, настройка Patroni с параметрами для больших нагрузок 1С. В конфигурационный шаблон Patroni автоматически закладываются параметры, критически важные для высоконагруженных баз данных, запуск vip-manager и полная автоматизация создания трёхнодового кластера. В конце — пошаговый Quick Start и планы развития модуля, включая резервное копирование, оптимизацию ОС Linux и rolling updates PostgreSQL.

1 стартмани

11.09.2026    948    Ninel_S    0    

0

DevOps и автоматизация разработки Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1C:ERP 1С:УТ Бесплатно (free)

Я автоматизировал доставку доработок в базы 1С, к которым можно подключиться только по RDP через шлюз. У меня не было ни SSH, ни WinRM, ни общих папок, ни права устанавливать на сервер свои программы. Каналом связи стал диск рабочей станции, проброшенный в RDP-сеанс, а исполнителем команд служит PowerShell-агент в этом сеансе. В статье расскажу о захвате объектов и помещении изменений в хранилище, динамическом обновлении боевой базы с автоматической остановкой, установке расширений и доступе к базе через MCP по COM без клиента 1С. Ещё разберу несколько неочевидных ограничений платформы и RDP, с которыми столкнулся по ходу работы. Часть из них описана на форумах, а упоминаний о других я не нашёл.

10.09.2026    881    BiLBelarus    0    

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