Почему долго пробивается чек и зависает табличная часть в 1С:Розница 2.3 на платформе 8.3.27?

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

Многие пользователи и администраторы 1С столкнулись с неприятной ситуацией после обязательного обновления платформы до версий 8.3.25 и 8.3.27. Ситуация выглядит следующим образом: касса (ККТ) печатает чек мгновенно, но интерфейс программы "зависает" (поможет инструмент для работы с онлайн-кассами без зависаний) на 10–30 секунд. Табличная часть товаров не очищается, и кассир не может приступить к обслуживанию следующего покупателя. При этом откат на старую платформу (например, 8.3.24) решает проблему, но часто невозможен из-за требований конфигурации или законодательства.

Давайте подробно разберем, почему это происходит, проанализируем результаты замера производительности и рассмотрим действенные методы решения этой проблемы для файловых баз данных.

Диагностика проблемы: анализ замера производительности

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

Результат замера указывает на строку кода в общем модуле проведения:


Объект.Движения.Записать();

Это означает, что проблема носит не аппаратный характер (связь с кассой, драйверы), а сугубо "платформенный". Время тратится на физическую запись наборов записей регистров (Продажи, ТоварыНаСкладах и т.д.) в файл базы данных. Если ваша база работает в файловом режиме и имеет внушительный размер (в данном случае более 10 ГБ), то обновление платформы могло вскрыть проблемы производительности дисковых операций. В некоторых случаях минимизировать задержки в интерфейсе помогает механизм гарантированного фонового проведения документов.

Причина 1: Размер файловой базы и размер страницы БД

На платформах 8.3.25 и выше изменились внутренние механизмы оптимизации работы с файловыми базами. Если база была создана давно (например, в 2018 году) на старых версиях платформы, она, скорее всего, имеет стандартный размер страницы данных (обычно 4К или 8К).

При достижении файлом базы .1CD размера 10 ГБ и более, работа с маленькими страницами на новых платформах может вызывать существенные задержки при блокировках таблиц во время транзакций записи. Именно это мы наблюдаем при методе Записать().

Решение: Изменение размера страницы базы данных

Для оптимизации работы большой файловой базы нам понадобится утилита cnvdbfl.exe, которая находится в папке с установленной платформой (обычно C:\Program Files\1cv8\8.3.xx.xxxx\bin\).

  1. Сделайте резервную копию базы данных (просто скопируйте файл 1Cv8.1CD).
  2. Запустите cnvdbfl.exe.
  3. Выберите файл вашей базы данных.
  4. Обратите внимание на текущий размер страницы. Если он 4096 (4К) или 8192 (8К), это вероятная причина тормозов.
  5. Выберите новый размер страницы: 16384 (16К) или даже 32768 (32К) для очень больших баз.
  6. Нажмите кнопку "Изменить".

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

Причина 2: Актуальность итогов регистров

Если база ведется много лет, а регламентные операции выполняются нерегулярно, период рассчитанных итогов может отставать от текущей даты. При каждой записи документа (чека) системе приходится "на лету" пересчитывать виртуальные таблицы остатков, что занимает время.

Решение: Управление итогами

Давайте проверим и исправим настройки итогов:

  1. Зайдите в базу в режиме "1С:Предприятие" под правами администратора.
  2. Откройте "Функции для технического специалиста" (если недоступно, включите в Параметрах).
  3. Найдите пункт Стандартные - Управление итогами.
  4. Убедитесь, что "Дата актуальности итогов" установлена на конец текущего или следующего месяца.
  5. Если дата старая, нажмите кнопку Установить период рассчитанных итогов (выберите дату с запасом, например, конец следующего месяца).
  6. Выполните Полный пересчет итогов. Обратите внимание: эта операция может занять много времени, ее нужно делать, когда в базе никто не работает.

Причина 3: Влияние антивирусного ПО

Хотя это кажется банальным, но с выходом новой версии платформы (изменился исполняемый файл 1cv8.exe) старые правила исключений антивируса могут перестать работать корректно. Файл базы весит 11 ГБ. При каждой записи транзакции антивирус может пытаться просканировать этот огромный файл на предмет изменений.

Решение: Настройка исключений

Добавьте в исключения антивируса (включая Windows Defender):

  1. Папку с платформой 1С.
  2. Папку, где лежит сама база данных.
  3. Процессы: 1cv8.exe, 1cv8c.exe.
  4. Временные папки пользователей (TEMP), куда 1С пишет кэш.

Причина 4: Проверка марок и разрешительный режим

В современных реалиях (2024–2025 гг.) при пробитии чека происходит обращение к серверам ИС МП ("Честный ЗНАК") или к локальному кэшу марок. Даже если товар не маркированный, механизмы проверки могут инициализироваться внутри транзакции проведения. Для стабильной работы крайне важно настроить корректный механизм проверки QR марок через площадки CDN.

Если у вас наблюдаются сетевые задержки или проблемы с токенами авторизации, транзакция записи может "висеть", ожидая ответа от подсистемы интеграции. Чтобы избежать подобных простоев, рекомендуется настроить автоматическое обновление токенов ИС МП .

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

Кардинальное решение: Переход на Клиент-сервер или Свертка базы

В обсуждении проблемы справедливо замечено, что размер файловой базы в 10–12 ГБ является критическим для комфортной работы, особенно в высоконагруженном сценарии розничной торговли.

Если вышеуказанные методы оптимизации (размер страницы, итоги) не помогли, необходимо рассмотреть два варианта:

  1. Свертка базы данных. Обрежьте историю (например, оставьте документы только за последние 2 года). Это уменьшит размер файла .1CD, ускорит работу таблиц и уменьшит нагрузку на диск. Если стандартные инструменты не справляются, можно использовать решение, позволяющее выполнить свертку базы в один клик — поможет универсальная свертка базы для сокращения объема данных.
  2. Переход на клиент-серверный вариант (SQL). Это наиболее надежный способ. Использование PostgreSQL (бесплатная СУБД) или MS SQL Server позволит уйти от проблем файловой блокировки таблиц. В SQL-версии блокировки накладываются на уровне записей, что исключает монопольный захват всей таблицы при проведении чека.

Резюме

Проблема долгого пробития чека после обновления на платформу 8.3.27 в файловом варианте чаще всего связана не с кодом конфигурации, а с возросшей нагрузкой на дисковую подсистему при работе с большими файлами базы данных. Последовательно примените описанные шаги: измените размер страницы БД, пересчитайте итоги и настройте антивирус. Если это не поможет — планируйте свертку или переход на SQL — для этого подойдёт свертка и сжатие базы для уменьшения размера.

← На главную