Тормозит 1С:Розница — как вернуть скорость работы

· 10 мин

Содержание

Касса открывает чек по три секунды, список товаров прокручивается рывками, закрытие смены висит минуту — чаще всего виновато одно из трёх: медленный диск, раздутая база или неверный режим работы (файловый там, где нужен серверный). Разберём по порядку, что даёт прирост скорости, а что — пустая трата денег.

Начните с диагностики, а не с покупки сервера. Замерьте, где именно подвисает 1С:Розница: открытие формы товара, проведение чека, формирование отчёта или обмен с товароучётной базой. Узкое место почти всегда одно, и лечится оно точечно.

Перед любыми работами с базой — настройкой обслуживания, тестированием, свёрткой — сделайте резервную копию. Это единственное действие, которое спасает при неудачной оптимизации.

Железо: что реально ускоряет 1С:Розница

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

Что даёт прирост по убыванию эффекта:

  • 💾 SSD, а лучше NVMe под базу и временные файлы. Переход с обычного HDD на NVMe ускоряет открытие форм и проведение в разы. Это самое дешёвое и заметное улучшение.
  • 🧠 Оперативная память. Для файловой базы на рабочем месте — от 8 ГБ. Для сервера 1С с SQL — считайте по нагрузке: ОС, службе 1С и SQL Server нужно оставить память с запасом, чтобы не было обращения к файлу подкачки.
  • ⚡ Частота процессора. Процессор с высокой частотой ядра обслужит один сеанс быстрее, чем «многоядерный, но медленный».
  • 🌐 Сеть. Для файловой базы по локальной сети задержка и скорость канала критичны — именно сеть, а не процессор, чаще тормозит работу нескольких касс с общей базой.

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

Файловая или клиент-серверная база

Файловый вариант (.1CD) прост и бесплатен, но плохо держит нагрузку: при нескольких одновременных кассах растут блокировки, а размер файла за пару гигабайт заметно замедляет работу.

Признаки, что пора на клиент-сервер с СУБД:

  • одновременно работают три кассы и больше;
  • база выросла за 3–4 ГБ;
  • появились «ожидания на блокировке» при проведении чеков;
  • несколько торговых точек подключаются к одной базе.
Файловая база или клиент-серверная?

Файловую базу нельзя держать в сетевой папке, доступной по медленному или перегруженному каналу. Это классическая причина тормозов, которую не лечит никакое железо на кассе.

Настройка SQL Server под 1С

Если база уже на MS SQL Server, добрая половина тормозов лечится настройками СУБД. Эти параметры 1С не выставляет сама — их задаёт администратор.

Базовый набор:

  • MAXDOP = 1. Для нагрузки 1С параллелизм запросов вреден — выставьте максимальную степень параллелизма в 1. Это рекомендация самой фирмы 1С для MS SQL.
  • Ограничьте max server memory. Оставьте память операционной системе и службе сервера 1С, иначе SQL Server заберёт всё и начнётся обращение к диску.
  • Простая модель восстановления (simple), если вы делаете резервные копии штатно и не используете журнал транзакций для восстановления на момент. Это удержит лог от бесконтрольного роста.
  • Отключите auto-shrink и auto-close. Автоматическое сжатие базы фрагментирует данные и тормозит работу.
  • tempdb — на быстрый диск, несколько файлов данных одинакового размера (ориентировочно по числу ядер, но не больше восьми). По возможности вынесите tempdb и журнал транзакций на отдельные диски от основных данных.

И главное, без чего настройки быстро обесцениваются, — регулярное обслуживание индексов и статистики. Фрагментированные индексы и устаревшая статистика замедляют запросы сильнее, чем нехватка памяти. Настройте план обслуживания: реиндексация (или перестроение индексов) и обновление статистики по расписанию, в нерабочее время.

Отдельно про диск под журнал транзакций: держите его на быстром носителе и не в одном разделе с резервными копиями. Когда лог и бэкап пишутся на один диск, во время резервного копирования проседает вся работа кассиров. Резервные копии вообще лучше уводить на отдельный накопитель или в сетевое хранилище — это и безопаснее, и не мешает продажам.

PostgreSQL для 1С настраивается своими параметрами (shared_buffers, work_mem, автовакуум), но логика та же: память под СУБД, обслуживание по расписанию, быстрый диск.

Что можно отключить в настройках 1С:Розница

Часть нагрузки создаёт сама конфигурация — фоновыми заданиями и функциями, которые конкретному магазину не нужны.

Загляните в раздел Администрирование (в части редакций — НСИ и администрирование) и оцените:

  1. Регламентные и фоновые задания. Найдите список регламентных операций в обслуживании базы. Отключите или перенесите на ночь то, что не нужно в часы продаж: обмены с товароучётной базой, обновление курсов валют, рассылки. Каждое задание в рабочее время — это конкуренция за ресурсы с кассой.
  2. Полнотекстовый поиск. Если поиском по данным почти не пользуются, обновление индекса можно перевести на ночное расписание — его перестроение заметно грузит базу.
  3. Лишняя функциональность. Отключите то, что магазин не ведёт: подарочные сертификаты, бонусные программы, доставку, лишние виды оплат. Чем меньше включённых подсистем, тем легче формы и проведение.
  4. Настройки РМК. На рабочем месте кассира уберите неиспользуемые кнопки и информеры — каждый элемент на экране кассы запрашивает данные при открытии смены.

Не выключайте то, в назначении чего не уверены, особенно обмены с маркировкой и ЕГАИС — их отключение чревато штрафами, а не ускорением.

Обслуживание базы: чистка и тестирование

База растёт, накапливает «мусор» и фрагментируется. Регулярное обслуживание — половина скорости.

Журнал регистрации. Это частый тихий пожиратель места и скорости. За годы он разрастается до гигабайтов. Сократите срок хранения событий и понизьте детализацию протоколирования (не обязательно писать каждое открытие формы). Старые записи можно сократить штатными средствами.

Тестирование и исправление. Для файловой базы запустите chdbfl.exe (проверка физической целостности) или откройте базу в режиме Конфигуратор и выполните тестирование и исправление с реструктуризацией и реиндексацией. Для серверной базы то же делается при подключении к ней Конфигуратором или через утилиту администрирования.

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

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

Свёртка базы. Радикальный способ для очень старых и больших баз: перенести документы прошлых лет в архив, оставив входящие остатки. Делайте только на копии и только если база реально огромна — свёртка необратима и может нарушить аналитику за прошлые периоды.

Регламент обслуживания базы 1С:Розница
Выполнено: 0 / 6

Терминальный сервер и сеть магазинов

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

  • Терминал (RDP). Держите базу и службу 1С на том же сервере, что и терминальные сеансы, — тогда между приложением и базой нет сети, только локальная шина. Так работают сети с несколькими магазинами на одной базе.
  • Тонкий клиент вместо толстого. Тонкий клиент передаёт по сети меньше данных и терпимее к задержкам канала — для удалённых точек он предпочтительнее.
  • Ресурсы терминального сервера. Каждый сеанс 1С съедает память и процессорное время. Считайте: несколько касс в одном терминале требуют запаса ОЗУ, иначе сервер начнёт свопить и затормозит всех сразу.
  • Распределённая база (РИБ). Для сети магазинов со слабыми каналами разнесите точки на узлы распределённой базы: каждая касса работает со своей локальной базой, обмен идёт пакетами. Это убирает зависимость кассы от качества связи с центром.

Если удалённая точка работает рывками именно по вечерам — это почти всегда перегрузка интернет-канала, а не 1С. Проверьте загрузку канала в часы пик, прежде чем менять что-то в базе.

Оборудование и обмены, из-за которых подвисает касса

Торговое оборудование и внешние обмены — отдельная причина пауз на кассе, которую легко спутать с «тормозами 1С».

  • 🖨 ККТ и фискальный накопитель. Пауза при печати чека — это скорость самой кассы и драйвера, а не базы. Обновите драйвер торгового оборудования до актуальной версии.
  • 📷 Сканеры и весы. Медленный ответ при сканировании часто связан с настройкой COM-порта или устаревшим драйвером, а не с поиском товара в базе.
  • 🏷 Маркировка (Честный знак) и ЕГАИС. Проверка кодов маркировки и подтверждение по алкоголю идут через внешние сервисы и УТМ. Задержка ответа сервиса ощущается как «зависла касса». Лечится не базой, а стабильным интернетом и свежими версиями модулей обмена.
  • 🔄 Обмен с товароучётной базой (УТ, Бухгалтерия). Если обмен настроен на выгрузку в реальном времени, он конкурирует с продажами. Переведите регулярный обмен на расписание и на нерабочее время.
  • 💳 Эквайринг. Долгое ожидание ответа банковского терминала — это сеть и сам терминал, а не 1С. Отделяйте эту задержку от тормозов базы при диагностике.

Отдельно про УТМ (универсальный транспортный модуль ЕГАИС) и модуль обмена с «Честным знаком»: это самостоятельные службы на компьютере кассы. Если они переполнены неотправленными документами или работают на старой версии, запросы к ним копятся и касса ждёт ответа. Следите за очередью документов в этих модулях и обновляйте их вовремя — это снимает значительную часть «зависаний» на кассе с алкоголем и маркированным товаром.

Главное правило: прежде чем винить базу, определите, ждёт ли 1С ответа от внешнего устройства или сервиса. Если ждёт — ускорять надо канал и оборудование.

Профилактика: как не дать базе снова затормозить

Разовая чистка даёт эффект на месяц-другой, дальше база снова обрастает. Чтобы скорость держалась, настройте процесс.

  • Платформа. Работайте на актуальном релизе платформы 8.3 с интерфейсом «Такси». В новых релизах регулярно правят производительность; версия не ниже рекомендованной для вашей конфигурации.
  • Кэш платформы. Если у конкретного пользователя формы открываются всё медленнее и появляются странные ошибки, помогает очистка кэша: закрыть 1С и удалить каталог кэша в профиле пользователя (%LOCALAPPDATA%\1C\1cv8\...) либо запустить с ключом /ClearCache. Делайте это при закрытой программе.
  • План обслуживания СУБД по расписанию. Реиндексация, обновление статистики, резервное копирование — ночью, автоматически. Это закрывает большинство будущих тормозов серверной базы.
  • Контроль размера. Раз в квартал смотрите на рост файла базы и журнала регистрации. Резкий скачок — сигнал, что где-то копится лишнее (чаще всего журнал или временные данные обмена).
  • Замер производительности. Если тормоза вернулись, не гадайте: используйте встроенный замер или журнал регистрации, чтобы увидеть, какая операция и сколько времени занимает. Точечный замер экономит дни бессмысленной оптимизации.

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

Частые вопросы

Поможет ли переход на SSD, если база маленькая?
Да, открытие форм и проведение ускорятся в любом случае — SSD быстрее HDD на случайных операциях чтения, которых у 1С много. На маленькой файловой базе это самое заметное улучшение за небольшие деньги.
Нужен ли MS SQL Server для одного магазина с одной кассой?
Нет. Одна-две кассы прекрасно работают на файловой базе, если она лежит на локальном SSD/NVMe, а не в сетевой папке. СУБД нужна при росте числа касс и размера базы.
Что быстрее тормозит кассу — сама база или оборудование?
Паузы при печати чека, сканировании и оплате картой — это обычно оборудование, драйверы и сеть, а не база. Тормоза при открытии форм и отчётов — это база, диск и настройки СУБД. Разделяйте эти случаи при диагностике.
Можно ли ускорить 1С, просто удалив старые документы?
Прямое удаление документов опасно — нарушатся остатки и движения регистров. Для разгрузки большой базы применяют свёртку (перенос старых периодов в архив с вводом остатков) на копии базы, а не ручное удаление.
Как часто делать тестирование и исправление базы?
Для активно работающей кассовой базы — ориентировочно раз в месяц, в нерабочее время и с резервной копией. Если появляются ошибки проведения или замедление — внепланово. Обязательно в монопольном режиме.