Выживалово. 70 баз и один админ, Или атака клонов

19.11.25

База данных - Администрирование СУБД

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

Когда читаешь статьи про базы на 200 терабайт, команды из 450 разработчиков и системы с 200 тысячами пользователей, это напрягает и пугает. Возникает вопрос: а как живут остальные?

 

 

Я занимаюсь 1С с 2000 года. На последнем месте работы, когда я туда пришёл, было 20 расширений без описания и комментариев, 55 баз Бухгалтерии и 15 ЗУП. О том, что их столько, я узнал лишь недели через три. Видимо, побоялись сказать сразу, чтобы я не убежал. Меня одного сразу посадили и на Бухгалтерию, и на ЗУП.

 

Первые шаги: разбор завалов и анализ баз

 

Что ж, как сапёры, надеваем перчатки и начинаем разгребать. Смотрим: одно большое расширение. Проверяем соседнюю базу — там другой вариант. Где-то блоков нет, где-то что-то добавлено. Уже интересно. Постепенно я просмотрел все 55 баз и составил карту: что в них есть и как это работает.

Параллельно возникали проблемы. Нужно, например, сделать в одной базе то же самое, что в соседней. Как? Вроде бы одинаковые релизы, одна и та же платформа, даже расширения называются одинаково, но их содержимое различается: где-то нет подсистемы, где-то не добавили документы.

 

Проблемы с печатными формами и обменами

 

И зарплатчики, и кадровики оказались людьми творческими. Их удовлетворяли как могли, и в итоге появилось 150 разных шаблонов печатных форм. Это не просто «Заявление №1», «Заявление №2 для увольнения», а действительно разные варианты под разные задачи.

Наши проблемы во многом были именно из-за этих форм. Иногда без видимых причин падали обмены между базами. В однотипных системах наблюдалось разное поведение: здесь для приёмной работы выполняются одни движения, там — другие. Из-за этого обновление релизов и расширений занимало неприлично много времени.

Когда бухгалтерии стало нужно, они всё-таки решились выделить на это время. Мы посчитали: все базы Бухгалтерии и ЗУП на четырёх ключевых релизах удалось обновить за две недели по рабочим дням. В среднем — около четырёх часов на 5–6 баз, больше физически переключиться не успеваешь. Так, порционно, закончили за две недели. После этого я взял два отгула, отдохнул — и снова можно было работать.

 

Отсутствие инструментов и переход к централизации

 

Инструментов для администрирования баз у нас не было. Хотя на одной из предыдущих работ мы использовали хитрый метод: все базы были прицеплены к одному хранилищу конфигурации. Был мастер, который в своей базе смотрел, что изменилось в новом обновлении, добавлял нужное, ставил, тестировал. После этого наши 20–30 баз пачками подключались к хранилищу: загружали конфигурацию, применяли изменения — и готово. На одну базу уходило минут 20–30, зато был гарантированно одинаковый результат. Здесь же ничего подобного внедрено не было. Я уже начал планировать это сделать, но в итоге всё-таки согласовали и купили обновлятор.

 

Оптимизация расширений и внедрение версионности

 

Поставили КОРП-версию, нашли под неё место и ресурсы — жить стало легче. Примерно за полгода была составлена и отредактирована карта расширений. Мы посмотрели, какие расширения нам действительно нужны, а какие можно было убрать. Из порядка двадцати осталось двенадцать.

 

 

На изображении одно из расширений и его варианты: где-то есть, где-то нет, где-то добавлено что-то дополнительно.

Чтобы разобраться с этим, в каждом расширении, каждой печатной форме и каждой внешней обработке мы стали указывать номер версии — не типовой «1-2-3-4», а дату в формате «год, месяц, день». Благодаря этому в сводном отчёте сразу видно: где обновление прошло, где всё в порядке, а где дата отличается — значит, что-то забыли обновить или остались экспериментальные данные.

Чтобы управлять этим удобнее, мы сделали так называемую «базу баз» на 1С. Она опрашивает серверы и кластеры, показывает, какие базы развернуты, их статус, платформу, релиз, объём и так далее. Таких разработок тоже было около десятка.

Для администраторов мы добавили сводные отчеты по объектам баз. Теперь не нужно вручную проверять и выписывать — достаточно нажать кнопку.

Кроме того, внедрили мониторинг доступности баз. Каждые 5 минут система отправляет запрос и, если что-то не так, сразу сигнализирует в Telegram.

Мы также составили единый центральный список внешних обработок. Теперь пользователь не может самостоятельно добавлять новые обработки, даже если у него есть права. Расширение контролирует соответствие: если в базе появляется что-то лишнее, оно помечается на удаление.

Аналогично мы централизовали 150 шаблонов печатных форм в Word. Пользователь может сделать форму, передать аналитику, а тот добавляет её в общий список. При необходимости можно внести параметры, и дальше форма автоматически распространяется по всем базам.

Для этого в центральной базе сделано расширение и справочник с данными для подключения — путь, логин, пароль. Всё работает автоматически и без потерь.

 

 

Обмен Summary — это регламентное задание, которое синхронизирует «священную» бухгалтерскую дату запрета синхронизации и наши дополнительные обработки.

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

 

 

В центральном сервисе обмена мы сделали размещение обработок по базам. Если узел не заполнен — обработка уходит во все базы. Если заполнен — только в нужную.

 

 

Чтобы это работало, мы сделали расширение HTTP GET DATA. Через HTTP мы получаем текст запроса и его параметры. Параметры — примитивные: число, строка, дата.

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

 

 

Вот так выглядят сообщения от нашего робота. У нас есть «обновлятор», который обновляет базы — и он тоже работает в потоке, аккуратно обрабатывая их «пальчиками». Мы можем в любой момент посмотреть, какие базы сейчас обрабатываются.

 

Борьба с конфликтами расширений

 

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

Конфликты, когда модуль вместо основного используется в расширении №1, а тебе нужно, чтобы он использовался в расширении №2, были устранены.

Свели их по блокам на те, что отвечают за:

  • Обмены,
  • Интерфейс,
  • Расчётные механизмы,
  • Локальные патчи (иногда при обновлениях в 1С всё-таки случаются ошибки, мы их оперативно заливаем в одно централизованное расширение),
  • То, что общается с внешними системами: ЭДО, КЭДО, СБИС, прочие ФНС.

Чтобы уменьшить головную боль, мы снизили порог вхождения, потому что этим занимается администратор. Нам не нужен какой-то высококвалифицированный специалист, который бы за большие деньги отвечал за эти задачи. Меньше стек, ниже порог вхождения и быстрее готовы специалисты. Все сделано чисто штатными средствами 1С.

Мы полностью отказались от COM-соединений между базами. Все работает на HTTP – на одном и универсальном методе.

У нас снизилось количество запросов к отделу системного администрирования, потому что безопасность у них на высоте, запросы анализируются, рассматриваются со всех сторон, и это занимает небольшое количество времени, а меньше запросов – меньше проблем.

На картинке один из наших сводных отчетов показывает состояние наших объектов.

 

 

Сводный отчет делается по любой константе. Выбрал по какой (текст запроса в принципе не меняется), нажал на кнопку и получил свой результат.

 

 

Состояние обработок. Указана версия и можно посмотреть по какой-то одной базе, что входит в ее состав.

 

 

Можно посмотреть по внешней обработке, какая версия у нее в разных базах. Все это быстро и эффективно пишется на 1С.

 

 

И еще одно нововведение — изменение и контроль функции при получении регистрационных данных. В центральной базе загружается внешняя обработка, у нее принудительно задается версия. Мы имеем четкий контроль, где что стоит и когда было поставлено.

 

Техническая реализация обмена данными между базами

 

Два этих блока закрыли 90% задач.

 

 

Это исходящий – дополнить набор по удаленной базе данных. То есть сделать какую-нибудь болванку запроса, выбрать первые ноль текста запроса, чтобы получить поля. Мы получаем пустую таблицу значений и ее, как параметр, закидываем в HTTP-запрос, который обрабатывает базы, которые находятся в справочнике.

 

 

Они получают этот запрос, устанавливают параметры, которые с ним пришли, и отправляют ответ в таблице значений.

Это позволило нам работать быстро, эффективно, и без какого-то перенапряжения. Когда Бухгалтерию для обновления счетов фактур нужно обновить, это занимает субботу и воскресенье. 2 недели или 2 дня – разница существенная.

 

 

Большое спасибо Владимиру Милькину, который написал «Обновлятор». Для администратора баз данных 1С это великий механизм, который закрывает практически все задачи.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

Инфостарт A&PM Event 2026

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

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

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

См. также

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

После миграции с MS SQL на PostgreSQL закрытие месяца в 1С:ERP стало идти 8 часов вместо 12 минут. Рассказываем, как мы нашли причину в оценке Hash Join, которую планировщик завышал в миллионы раз, и как исправили её так, что проблемный запрос теперь выполняется за 18 секунд вместо часа.

19.10.2026    934    Tantor    0    

10

Администрирование СУБД HighLoad оптимизация Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Большинство материалов о компрессии в PostgreSQL отвечают на вопрос «во сколько раз удалось уменьшить базу». Мы предлагаем посмотреть на проблему с другой стороны — какой ценой достигается эта экономия? В статье разбираем архитектурные компромиссы различных подходов к компрессии страниц, объясняем, почему при разработке CSM в Tantor Postgres отказались от погони за максимальным коэффициентом сжатия, и показываем результаты нагрузочных испытаний на реальных базах 1С.

01.10.2026    1431    Tantor    6    

17

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

В корпоративных инсталляциях «1С:Предприятие 8.3» под управлением PostgreSQL всё чаще проявляются архитектурные пределы масштабирования: рост числа пользователей, обязательная маркировка, плотный поток API-интеграций и высокая стоимость простоя. Вводная часть цикла разбирает ключевые факторы современной эксплуатационной нагрузки и формирует инженерную методологию эволюционной модернизации без остановки продуктивного контура. Материал основан на практическом кейсе «Торговый контур» и показывает, как определить целевые метрики (p95, MTTR, APDEX), выстроить наблюдаемость, стабилизировать работу кластера и подготовить инфраструктуру к дальнейшему масштабированию. Публикация задаёт фундамент для последующих частей, посвящённых телеметрии, оптимизации PostgreSQL, CI/CD и архитектурному росту.

1 стартмани

10.09.2026    1507    Ninel_S    0    

6

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

В рамках 18 релиза СУБД Tantor Postgres мы рассказывали об оптимизациях, которые помогают планировщику сделать более точный выбор между Nested Loop и Hash Join. В следующем релизе у нас планируются оптимизации, которые позволят ускорить выполнение как Nested Loop, так и Hash Join. Сегодня мы расскажем об одном из таких методов - фильтре Блума.

31.08.2026    6107    Tantor    3    

18

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

Мы подготовили для сообщества Infostart.ru практическое занятие, в котором каждый желающий сможет: научиться собирать реальные данные о процессах кластера 1С; выявлять «перестарков» — процессы старше периода и без соединений; выполнять безопасный перезапуск (с dry-run и подтверждением); настраивать автоматическую проверку через systemd на Linux; отправлять уведомления (Telegram, почта) при обнаружении проблем; работать с логами, ротацией, профилями кластеров и конфигурацией; развернуть полноценный учебный проект AdminClusterMonitor у себя в тестовой среде.

30.08.2026    1718    Ninel_S    2    

6

Администрирование СУБД Системный администратор 1С:Предприятие 8 Бесплатно (free)

На infostart.ru вышел разбор Ивана Недомолкова «Сервер 1С падает: настройка сбора дампов (logcfg.xml), лимиты памяти и передача дампа в поддержку» - это хорошая инструкция, как ловить и разбирать падение rphost постфактум: logcfg.xml, procdump, анализ дампа. Но там нет ответа на вопрос «а почему кластер вообще прибил процесс сам, ещё до всякого краша». Мы дополняем разбор тремя сводными таблицами лимитов памяти и автомасштабирования кластера - и заодно фиксируем, чем в этой части лицензия ПРОФ урезана относительно КОРП.

12.08.2026    2352    Ninel_S    5    

6

Администрирование СУБД Системный администратор Разработчик Бесплатно (free)

5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.

11.08.2026    3394    jul.dolganova    9    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. VladimirArtyushin 12 19.11.25 22:14 Сейчас в теме
"в итоге всё-таки согласовали и купили обновлятор" - было смешно!
Стоимость проф-версии составляет 950 рублей.
Award; Bob_D; +2 – Ответить
Для отправки сообщения требуется регистрация/авторизация