Временные регистры (ВР) в 1С:Предприятие — это служебные объекты, которые система создаёт для хранения промежуточных данных при выполнении сложных операций: расчётов зарплаты, закрытия месяца, формирования отчётов или обмена данными. В норме они автоматически очищаются после завершения сеанса, но иногда остаются «висеть» в базе, занимая место и вызывая ошибки. Если вы столкнулись с сообщениями вроде «Не удалось заблокировать временный регистр» или «Превышен лимит временных данных», значит, пора чистить ВР вручную.

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

⚠️ Предупреждение: Не все временные регистры можно удалять без последствий. Например, регистры с префиксом _ВТ_РасчетЗарплаты могут содержать незавершённые расчёты по сотрудникам. Их очистка приведёт к необходимости пересчёта зарплаты за период.

Если вы не администратор , перед удалением ВР обязательно согласуйте действия с ответственным специалистом или сделайте резервную копию базы.

1. Почему временные регистры не очищаются автоматически?

Система 1С:Предприятие должна удалять ВР после завершения сеанса пользователя или транзакции, но на практике этого не происходит по нескольким причинам:

  • 🔴 Аварийное завершение работы: Если программа или сервер «упали» во время операции (например, из-за отключения электричества), временные данные остаются неочищенными.
  • 🔴 Длинные транзакции: Операции вроде закрытия месяца или массового перепроведения документов могут создавать ВР, которые не успевают удалиться из-за таймаута.
  • 🔴 Ошибки в коде: Некорректно написанные обработки или внешние отчёты могут не закрывать сессии с ВР.
  • 🔴 Настройки сервера: На кластерных установках 1С:Предприятие 8.3 лимит хранения временных данных может быть завышен, что маскирует проблему.

Чаще всего накопление ВР проявляется в тормозах системы, ошибках при сохранении документов или невозможности выполнить регламентные операции. Например, при попытке провести документ «Закрытие месяца» может появиться сообщение:

«Недостаточно памяти для выполнения операции. Очистите временные данные»

Это прямой сигнал к тому, что пора проверять ВР. В некоторых конфигурациях (например, 1С:ЗУП) накопление временных регистров может блокировать расчёт зарплаты за текущий месяц.

📊 С какой конфигурацией 1С вы работаете?
1С:Бухгалтерия
1С:Управление торговлей
1С:Зарплата и управление персоналом
1С:ERP
Другая конфигурация

2. Как проверить наличие временных регистров в базе?

Прежде чем удалять ВР, нужно убедиться, что они действительно есть и мешают работе. Для этого используйте встроенные инструменты или SQL-запросы (если есть доступ к серверу базы данных).

Способ 1: Через «Все функции» в 1С

  1. Откройте свою базу в режиме 1С:Предприятие (не конфигуратор!).
  2. Нажмите Ctrl+Shift+F12, чтобы открыть окно «Все функции».
  3. Введите в поиске ВременныеТаблицы и выберите метод ПолучитьВременныеТаблицы().
  4. В открывшемся окне вы увидите список всех активных временных регистров с указанием их размера и времени создания.

Способ 2: SQL-запрос для MS SQL Server (для администраторов)

SELECT

name AS 'ИмяВременнойТаблицы',

rows AS 'КоличествоСтрок',

CAST(RESERVED_PAGE_COUNT * 8.0 / 1024 AS DECIMAL(10,2)) AS 'РазмерМБ'

FROM

tempdb.sys.tables

WHERE

name LIKE '%VT%' OR name LIKE '%ТМП%'

ORDER BY

RESERVED_PAGE_COUNT DESC

Если запрос вернёт пустой результат, значит, временные регистры хранятся не в tempdb, а в основной базе. Тогда используйте альтернативный запрос:

SELECT * FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_NAME LIKE '%VT%' OR TABLE_NAME LIKE '%ТМП%'

💡

В конфигурациях на управляемых формах (8.3+) временные таблицы могут отображаться в списке СистемныеНастройки → ЖурналыРегистрации → ВременныеДанные.

3. Безопасные способы очистки временных регистров

Удалять ВР можно тремя основными методами: через конфигуратор, с помощью обработки или вручную via SQL. Выбор способа зависит от ваших прав доступа и технических навыков.

Метод 1: Очистка через конфигуратор (для пользователей с правами администратора)

  1. Закройте все сессии пользователей в базе (через Администрирование → Активные пользователи).
  2. Откройте базу в режиме Конфигуратор.
  3. Перейдите в Администрирование → Тестирование и исправление.
  4. Поставьте галочку Очищать временные таблицы и нажмите Выполнить.
  5. После завершения операции перезапустите сервер .

Метод 2: Специальная обработка для очистки ВР

Если стандартный метод не сработал, используйте обработку «ОчисткаВременныхДанных.epf» (её можно скачать с портала 1С:ИТС или из каталога обработок). Алгоритм действий:

  1. Загрузите обработку в базу через Файл → Открыть.
  2. Выберите режим Полная очистка (удалит все ВР, включая заблокированные).
  3. Нажмите Выполнить и дождитесь завершения.

Метод 3: Ручное удаление через SQL (для опытных пользователей)

Если временные регистры хранятся в tempdb, выполните команду:

DBCC FREEPROCCACHE

DBCC FREESYSTEMCACHE('tempdb')

Для очистки конкретной таблицы (например, VT12345):

DROP TABLE tempdb.dbo.VT12345

Закрыты все пользовательские сессии|Создана резервная копия базы|Проверены права на изменение системных таблиц|Отключены фоновые задачи (если есть)-->

4. Какие временные регистры удалять нельзя?

Не все ВР одинаково безопасны для очистки. Ниже — таблица регистров, которые трогать не рекомендуется, так как они могут содержать критичные данные:

Префикс регистра Назначение Риск при удалении
_ВТ_РасчетЗарплаты Хранение промежуточных данных расчёта зарплаты Потеря расчётов по сотрудникам за период
_ВТ_ЗакрытиеМесяца Данные для регламентных операций Нарушение бухгалтерских итогов
_ВТ_ОбменДанными Пакеты для обмена с другими системами Потеря данных при синхронизации
_ВТ_Отчеты Кэш сформированных отчётов Некритично, но отчёты придётся переформировать

⚠️ Внимание: Если в имени временного регистра есть дата (например, _ВТ_Зарплата_202605), это означает, что он содержит данные за май 2026 года. Удаление такого регистра приведёт к необходимости полного перерасчёта зарплаты за этот период.

Чтобы минимизировать риски, перед очисткой проверьте:

  • 🔍 Есть ли в имени регистра указание на текущий расчётный период?
  • 🔍 Связан ли регистр с незавершёнными транзакциями (можно увидеть в журнале регистрации)?
  • 🔍 Используется ли он в фоновых задачах (например, в 1С:ERP для планирования производства)?

5. Как предотвратить накопление временных регистров?

Лучше не допускать накопления ВР, чем потом их очищать. Вот профилактические меры, которые снизят риск проблемы:

  • 🛠 Настройка сервера 1С: В файле srvinfo.ini (для кластерных установок) установите параметр MaxTempTablesMemory=1024 (значение в МБ), чтобы ограничить объём временных данных.
  • Регулярная очистка: Запускайте обработку ОчисткаВременныхДанных.epf еженедельно (можно автоматизировать через Регламентные задания).
  • 🔄 Контроль транзакций: В конфигураторе проверьте длительные операции (например, закрытие месяца) на наличие незакрытых транзакций с помощью запроса:
    SELECT * FROM v8trans WHERE status = 'active'
  • 📊 Мониторинг: Используйте 1С:Администрирование сервера для отслеживания роста временных таблиц.

В многопользовательских базах (например, в 1С:УТ с 50+ пользователями) настройте автоматическое удаление ВР старше 24 часов через SQL-агент:

-- Пример задачи для MS SQL Server

DECLARE @sql NVARCHAR(MAX) = '';

SELECT @sql = @sql + 'DROP TABLE tempdb.dbo.' + name + ';' + CHAR(10)

FROM tempdb.sys.tables

WHERE name LIKE 'VT%' AND create_date < DATEADD(day, -1, GETDATE());

EXEC sp_executesql @sql;

Что будет, если не очищать ВР долгое время?

Скопление временных регистров может привести к:

1. Зависанию базы при выполнении операций с большими объёмами данных (например, инвентаризация на складе).

2. Ошибкам блокировок, когда новые сессии не могут создать свои временные таблицы.

3. Утечке памяти на сервере , что вызовет его аварийную перезагрузку.

4. Потере данных, если система начнёт перезаписывать старые ВР новыми без предупреждения.

6. Частые ошибки при работе с временными регистрами

Даже опытные администраторы иногда допускают ошибки, которые усугубляют проблему с ВР. Рассмотрим топ-5 промахов и как их избежать:

  • Удаление ВР во время рабочего дня: Это может прервать текущие операции пользователей. Очищайте временные регистры вне рабочих часов или в окне технического обслуживания.
  • Игнорирование резервных копий: Перед массовой очисткой ВР всегда делайте бэкап. Восстановление базы после потери критичных регистров (например, _ВТ_Налоги) может занять дни.
  • Ручное удаление без анализа: Не стирайте все таблицы с префиксом VT подряд. Сначала проверьте их содержимое через SELECT TOP 10 * FROM tempdb.dbo.VT12345.
  • Отсутствие мониторинга: Если не отслеживать рост ВР, проблема обнаружится только при критическом сбое. Настройте оповещения в 1С:Администрирование сервера на превышение лимита временных данных.
  • Использование устаревших обработок: Скрипты для очистки ВР из 1С 8.2 могут не работать в 8.3.20+. Всегда проверяйте совместимость обработки с вашей версией платформы.

⚠️ Внимание: В облачных версиях (например, 1С:Fresh) прямой доступ к SQL-запросам и временным таблицам ограничен. Для очистки ВР обращайтесь в техническую поддержку провайдера с указанием:

  • Имени базы,
  • Времени последнего успешного входа,
  • Текста ошибки (если есть).
💡

Регулярная очистка временных регистров должна быть частью регламента обслуживания базы 1С. Автоматизируйте процесс через регламентные задания или SQL-агент, чтобы избежать ручной работы.

7. Альтернативные решения, если очистка не помогла

Если после удаления ВР проблема сохраняется (например, ошибка «Недостаточно памяти для временных данных» появляется снова), рассмотрите альтернативные подходы:

  • 🔧 Увеличение памяти сервера: В файле conf.cfg (для файлового варианта) или настройках кластера добавьте параметры:
    MaxMemoryUsage = 4096  // в МБ
    

    TempTablesMemoryLimit = 2048

  • 🔄 Перезапуск сервера 1С: Иногда помогает простая перезагрузка служб:
    net stop srv1cv83
    

    net start srv1cv83

  • 📂 Выгрузка/загрузка базы: Для файлового варианта выполните выгрузку (Файл → Выгрузить информационную базу) и загрузку в новую папку. Это сбросит все временные данные.
  • 🛠 Обновление платформы: В старых версиях 1С 8.3.8–8.3.12 были баги с очисткой ВР. Обновите платформу до актуальной версии (на момент написания статьи — 8.3.22+).

Если ни один из методов не сработал, проблема может крыться не в временных регистрах, а в:

  • 🔹 Переполнении транзакционного журнала (для SQL-варианта),
  • 🔹 Повреждении индексов таблиц,
  • 🔹 Нехватке дискового пространства на сервере.

В таких случаях потребуется полная диагностика базы с помощью chdbfl.exe (утилита для проверки целостности) или обращение к специалистам .

FAQ: Ответы на частые вопросы

Можно ли очищать временные регистры в 1С:ЗУП во время расчёта зарплаты?

Нет, это приведёт к потере промежуточных данных и необходимости пересчёта. Дождитесь завершения всех расчётных операций или отмените их через Операции → Зарплата → Отменить расчёт.

Почему после очистки ВР ошибка «Недостаточно памяти» появляется снова?

Вероятно, в системе есть процесс, который постоянно создаёт новые временные регистры (например, фоновое задание или внешняя обработка). Проверьте активные сессии через Администрирование → Активные пользователи и завершите подозрительные.

Как очистить ВР в облачной версии 1С (1С:Fresh, 1С:Линк)?

Самостоятельно — никак. Обратитесь в поддержку провайдера с запросом на очистку, указав ID базы и время последней успешной работы. В некоторых тарифах эта услуга платная.

Можно ли восстановить данные из удалённого временного регистра?

Только если у вас есть резервная копия базы, сделанная до очистки. В противном случае данные потеряны безвозвратно. Исключение — если регистр был часть транзакции, не завершённой в базе (можно откатить транзакцию через ROLLBACK в SQL).

Какие настройки сервера 1С влияют на работу с временными регистрами?

Ключевые параметры:

  • MaxTempTablesMemory — лимит памяти под ВР,
  • TempTablesAutoDrop — автоматическое удаление (1 — включено, 0 — выключено),
  • SessionTimeout — время жизни неактивной сессии (по умолчанию 60 минут).

Эти параметры настраиваются в файле srvinfo.ini (для кластерных установок) или через 1С:Администрирование сервера.