Где хранить учётные данные информационных баз 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, хранилище) Системный администратор Разработчик 1С 8.3 1С 8.5 Бесплатно (free)

В прошлой статье у ERP оставалось 89 отказов загрузки, у ЗУП — 19. Теперь обе конфигурации совпали с эталонами, а собранные файлы прошли круг через платформу. Развертка выделена в открытый репозиторий cf-unwrapper: библиотека на Rust и консольная утилита. Показываю результаты, объясняю границы «100%» и приглашаю к проверкам и развитию проекта.

02.11.2026    206    oyti    1    

1

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

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

02.11.2026    417    vanya_gonchar    2    

4

Файловый обмен (TXT, XML, DBF), FTP DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.5 Бесплатно (free)

В прошлой статье я выгрузил Бухгалтерию в XML байт в байт и спросил, на чем проверить дальше. Вы ответили: ERP, старые релизы, зарплата. Прогнал пять конфигураций, от клиента ЭДО до ERP на 120 тысяч файлов. Рассказываю, что сломалось после Бухгалтерии, почему эталону платформы нельзя верить на слово, как выгрузить одну конфигурацию в формат трех версий платформы - и почему cf-конвертер становится отдельным продуктом, Разверткой.

02.11.2026    268    oyti    2    

3

Инструментарий разработчика DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Как отличить срочное исправление от обычного вечернего коммита? Проверила расчёт показателей поставок по отчёту хранилища 1С и истории двух открытых проектов. На стенде счётчики совпали со сценарием, а в выборке открытого проекта правило «те же объекты» ошиблось во всех шести случаях. Показываю границы такого замера и отличие от метрик DORA. Прилагаются инструмент и материалы опыта.

1 стартмани

29.10.2026    274    Ninel_S    0    

0

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С 8.5 Бесплатно (free)

Выгрузка типовой Бухгалтерии в XML через базу занимает больше четырёх минут. Я написал движок, который читает файл конфигурации напрямую и выгружает его за 35 секунд, совпадая с выгрузкой платформы байт в байт во всех 90 385 файлах. Загрузка обратно тоже работает: круг через платформу совпадает полностью. Рассказываю, как ускоряли, как проверяем и что при загрузке XML теряет сама платформа. А в конце спрашиваю, нужно ли это кому-то, кроме меня, и на какой конфигурации проверить следующей.

27.10.2026    846    oyti    20    

16

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

Хук pre-commit проверяет полный снимок индекса Git в отдельной базе 1С. На «Нано-УТ» и платформе 8.3.27 повторила 12 попыток коммита: восемь прошли, четыре остановлены. Чистый коммит занял 31,8 с. Вызов несуществующего метода общего модуля хук останавливает только с ключом -ExtendedModulesCheck. В архиве версия 2, тесты, инструкция и журналы.

1 стартмани

26.10.2026    314    Ninel_S    2    

-1

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Я дала агенту Claude Code задачу словами: добавить в учебную конфигурацию документ «Внутреннее потребление товаров», который списывает товар по средней стоимости и не даёт уйти в минус. Три запуска с нуля, каждый принят проверкой на платформе 1С: 1 мин 49 с, 2 мин 33 с и 2 мин 56 с. Показываю, что агент поменял, где ошибался и почему на типовой УТ так быстро не будет.

1 стартмани

26.10.2026    556    Ninel_S    0    

-1

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

ИИ пишет код на 1С все быстрее, а разработчик по-прежнему носит вопросы, ответы и статусы между чатом с агентом, аналитиком и архитектором. Показываю другой подход и демо-стенд: задача из Яндекс Трекера сама идет по этапам, ИИ-агент работает в GitLab CI, а люди только утверждают спецификацию, архитектуру, план и код. Живой пример задачи от заявки до merge, честный отказ агента, права агента, время и стоимость: вся задача обошлась в 68 центов.

22.10.2026    696    maxrubtsoff    1    

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