Существуют ли действительно крупные внедрения 1С на десятки тысяч рабочих мест и как они устроены?

Руководитель проекта 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

Исторически в ИТ-сообществе существовал стереотип, что программные продукты семейства «1С:Предприятие 8» ориентированы исключительно на малый и средний бизнес. Считалось, что системы свыше 1 000 – 2 000 одновременно работающих пользователей — это предел возможностей платформы, а для крупных транснациональных холдингов и корпораций подходят только тяжелые зарубежные ERP-системы. Однако масштабные процессы импортозамещения последних лет доказали обратное.

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

Крупнейшие подтвержденные проекты внедрения «1С»

Проанализируем официальные данные крупнейших проектов автоматизации, подтвержденных отзывами заказчиков и сертифицированными партнерами фирмы «1С»:

  1. АО «Почта России» (более 64 000 АРМ): Один из самых известных и масштабных проектов. Система охватывает кадровый учет и расчет заработной платы для сотен тысяч сотрудников по всей стране. Внедрение выполнено на базе конфигурации 1С:Зарплата и управление персоналом КОРП. Помимо этого, активно используется 1С:Управление холдингом для централизованного управления закупками, где одновременно работают более 1 500 специалистов по закупкам.
  2. Министерство сельского хозяйства РФ (более 65 000 АРМ): Абсолютный рекордсмен официального рейтинга. Помимо ведомственной автоматизации, успешно функционирует федеральная государственная информационная система ФГИС «Семеноводство» еще на 37 000 автоматизированных рабочих мест.
  3. АО «Трансмашхолдинг» (более 35 000 АРМ): Комплексная автоматизация машиностроительного холдинга, объединяющего десятки заводов. Проект начинался с отметки в 19 000 рабочих мест и планомерно масштабировался почти вдвое на современных ERP-решениях.
  4. ОАО «РЖД» (более 160 000 пользователей): Масштабная программа миграции с SAP на отечественные решения. Целевой показатель проекта — полный переход 260 000 сотрудников холдинга на системы 1С:ERP к 2028 году. Уже сейчас автоматизированы процессы управления автотранспортом, ремонтами и другими ключевыми активами.
  5. Госкорпорация «Росатом» (проект «Цифровой Росатом»): Перевод более 150 предприятий атомной отрасли на единое решение 1С:ERP Управление холдингом. Это уникальный пример масштабной ERP-системы, развернутой на полностью импортонезависимом технологическом стеке.

Архитектурные подходы: Единая база или распределенный «зоопарк»?

При проектировании систем для тысяч пользователей перед архитекторами всегда встает вопрос: объединять все процессы в одной информационной базе или строить распределенную систему (РИБ)? Выясним преимущества и особенности каждого подхода.

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

Однако современный тренд направлен на максимальную централизацию. Крупный бизнес выбирает работу в единой базе данных в ЦОД. Это обеспечивает:

Для реализации такой схемы требуются выделенные специалисты по технологическим вопросам «1С» (эксперты по производительности), которые контролируют весь жизненный цикл разработки и администрирования.

Технологический прорыв: Тестирование на 30 000 одновременных пользователей

Чтобы доказать скептикам возможность стабильной работы огромного числа сотрудников в единой базе, фирма «1С» совместно с технологическими партнерами провела официальное нагрузочное тестирование системы 1С:ERP Управление предприятием.

Проанализируем параметры этого теста:

Практические советы по оптимизации высоконагруженных систем 1С

Для того чтобы ваша система выдерживала тысячи пользователей без критических блокировок и зависаний, необходимо соблюдать строгие правила разработки. Рассмотрим основные методы борьбы с избыточными блокировками СУБД.

При выполнении массовой обработки данных в транзакции всегда следует разделять весь объем данных на небольшие пакеты. Это предотвращает эскалацию блокировок таблиц СУБД. Рассмотрим пример правильной организации пакетной обработки данных на встроенном языке «1С»:


// Пример оптимизированной пакетной обработки данных для высоконагруженных систем
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |	ЗаказыКлиентов.Ссылка КАК Ссылка
    |ИЗ
    |	Документ.ЗаказКлиента КАК ЗаказыКлиентов
    |ГДЕ
    |	ЗаказыКлиентов.Проведен И НЕ ЗаказыКлиентов.ПометкаУдаления";

Выборка = Запрос.Выполнить().Выбрать();

РазмерПакетнойТранзакции = 100;
Счетчик = 0;

НачатьТранзакцию();
Пока Выборка.Следующий() Цикл
    
    Попытка
        // Блокируем только конкретный документ для исключения взаимоблокировок
        Блокировка = Новый БлокировкаДанных;
        ЭлементБлокировки = Блокировка.Добавить("Документ.ЗаказКлиента");
        ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
        Блокировка.Заблокировать();
        
        // Выполняем действия с объектом
        ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
        ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
        
        Счетчик = Счетчик + 1;
        
        // Фиксируем транзакцию порциями для освобождения ресурсов СУБД
        Если Счетчик % РазмерПакетнойТранзакции = 0 Тогда
            ЗафиксироватьТранзакцию();
            НачатьТранзакцию();
        КонецЕсли;
        
    Исключение
        // В случае ошибки отменяем текущую транзакцию и продолжаем работу со следующим пакетом
        ОтменитьТранзакцию();
        ЗаписатьЛогОшибки(ОписаниеОшибки());
        НачатьТранзакцию();
    КонецПопытки;
    
КонецЦикла;

Если ТранзакцияАктивна() Тогда
    ЗафиксироватьТранзакцию();
КонецЕсли;

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

Неправильно (соединение с подзапросом):


ВЫБРАТЬ
	Товары.Ссылка,
	Цены.Цена
ИЗ
	Справочник.Номенклатура КАК Товары
	ЛЕВОЕ СОЕДИНЕНИЕ (
		ВЫБРАТЬ Номенклатура, Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних
	) КАК Цены ПО Товары.Ссылка = Цены.Номенклатура

Правильно (использование временной таблицы):


// Сначала выбираем данные во временную таблицу
ВЫБРАТЬ
	ЦеныСрез.Номенклатура КАК Номенклатура,
	ЦеныСрез.Цена КАК Цена
ПОМЕСТИТЬ ВТ_Цены
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныСрез;

// Индексируем временную таблицу по полям соединения
ИНДЕКСИРОВАТЬ ПО
	Номенклатура;

// Выполняем финальное соединение
ВЫБРАТЬ
	Товары.Ссылка,
	ЕСТЬNULL(ВТ_Цены.Цена, 0) КАК Цена
ИЗ
	Справочник.Номенклатура КАК Товары
	ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Цены КАК ВТ_Цены ПО Товары.Ссылка = ВТ_Цены.Номенклатура;

Подводя итоги

Практика крупнейших российских холдингов подтверждает: современные версии платформы «1С:Предприятие 8.3» способны эффективно решать задачи автоматизации на уровне 50 000 – 100 000+ рабочих мест. Успех таких проектов зависит от грамотного проектирования архитектуры, привлечения сертифицированных экспертов по производительности и строгого соблюдения стандартов разработки фирмы «1С».

← На главную