База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку «Попытка использования закрытого менеджера временных таблиц
- В этой теме 1 ответ, 2 участника, последнее обновление 7 часов, 10 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
9 апреля 2026 в 17:45 #36318
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{РегистрНакопления.ТоварыКОтгрузке.МодульНабораЗаписей(111)}: Ошибка при вызове метода контекста (Выполнить)
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
по причине:
Попытка использования закрытого менеджера временных таблиц -
9 апреля 2026 в 17:45 #36319
Сергей, ошибка «Попытка использования закрытого менеджера временных таблиц» при вызове ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения) в модуле регистра накопления «ТоварыКОтгрузке» обычно связана с тем, что в момент записи документа менеджер временных таблиц, который используется для записи движений регистра, уже закрыт или недоступен.
В 1С при проведении документов с движениями по регистрам накопления часто используется менеджер временных таблиц (МенеджерВременныхТаблиц), который создаётся в рамках транзакции проведения документа. Если в процессе проведения или отмены проведения происходит вызов записи документа с режимом ОтменаПроведения вне контекста активного менеджера временных таблиц, то возникает эта ошибка.
Основные причины и решения:
1. **Неправильное использование записи документа с режимом ОтменаПроведения вне процедуры проведения**
— Вызов
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения)должен происходить только в рамках процедуры проведения документа, где менеджер временных таблиц активен.
— Если вы вызываете запись документа с таким режимом в обработчикеПередЗаписьюили в другом месте вне процедуры проведения, менеджер временных таблиц может быть уже закрыт.2. **Рекурсивный вызов записи документа**
— Если в обработчике
ПередЗаписьювы вызываетеДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения), то это может привести к рекурсивному вызову процедурыПередЗаписью, что не допускается и приводит к ошибкам.
— Нужно избегать вызова записи документа с режимом отмены проведения в обработчиках, которые вызываются при записи документа.3. **Правильное использование менеджера временных таблиц**
— Если в вашем коде используется
МенеджерВременныхТаблиц, то он должен быть создан и передан в процедуры проведения и отмены проведения.
— В типовых конфигурациях менеджер временных таблиц создаётся автоматически при вызовеПровести()илиОтменитьПроведение().
— Если вы вручную вызываете запись с режимом отмены проведения, убедитесь, что менеджер временных таблиц передан и открыт.4. **Рекомендации по исправлению**
— Не вызывайте
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения)в обработчикеПередЗаписью.
— Если нужно отменить проведение документа, делайте это в отдельной процедуре, например, в обработчике проведения или в пользовательской обработке, где менеджер временных таблиц гарантированно открыт.
— Используйте стандартные методыДокументОбъект.ОтменитьПроведение()илиДокументОбъект.ОтменитьПроведение(МенеджерВременныхТаблиц).
— Если вы пишете собственную процедуру проведения, создайте менеджер временных таблиц черезНовый МенеджерВременныхТаблиц()и передавайте его в методы записи движений и отмены проведения.5. **Пример правильного использования отмены проведения с менеджером временных таблиц**
1С (Код)12345Процедура ОтменитьПроведениеДокумента(ДокументОбъект)МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;ДокументОбъект.ОтменитьПроведение(МенеджерВременныхТаблиц);ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);КонецПроцедуры6. **Если ошибка возникает в типовой конфигурации**
— Возможно, в вашем коде или расширении есть доработка, которая вызывает запись документа с режимом отмены проведения в неподходящем месте.
— Проверьте, нет ли вызовов записи документа с таким режимом в обработчикахПередЗаписью,ПередПроведениеми т.п.
— Перепишите логику так, чтобы отмена проведения происходила в процедуре проведения или в отдельной пользовательской обработке.—
Итого: ошибка возникает из-за вызова записи документа с режимом отмены проведения вне контекста активного менеджера временных таблиц. Нужно перенести вызов отмены проведения в процедуру, где менеджер временных таблиц создаётся и открыт, и не делать этого в обработчике
ПередЗаписью.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.