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

1. request4t 18.06.19 16:25 Сейчас в теме
привет!

конфа УТ 11. написал код движения по регистру.
	
Движения.РасчетыСПоставщиками.Записывать = Истина;
Движение = Движения.РасчетыСПоставщиками.Добавить();
Движение.ВидДвижения  = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.АналитикаУчетаПоПартнерам = текспр.Ссылка;
Движение.Сумма = стр.СуммаФакт;


при проведении ошибка: "Попытка использования закрытого менеджера временных таблиц"

ошибка указывает на строку в Модуле набора записей регистра:
"Запрос.МенеджерВременныхТаблиц = ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;"

расшифруйте, пожалуйста, что оно от меня хочет)
По теме из базы знаний
Найденные решения
6. alex-l19041 8 18.06.19 16:37 Сейчас в теме
(1) попробуйте
ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц
strelvan; ankr; ital; request4t; +4 Ответить
10. request4t 18.06.19 17:36 Сейчас в теме
Итак, Правильное решение!

Код движений по регистру я размещал в самом конце процедуры ОбработкаПроведения. Это и вызывало ошибку.

Необходимо код разместить ДО строк процедуры:

СформироватьСписокРегистровДляКонтроля();
ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
ПроведениеСервер.ЗаписатьПодчиненныеНаборамЗаписейДанные(ЭтотОбъект, Отказ);
ДоставкаТоваров.ОтразитьСостояниеДоставки(Ссылка, Отказ);
ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);
user1882613; Help-GROUP; kamis; COMPER; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. alex-l19041 8 18.06.19 16:37 Сейчас в теме
(1) попробуйте
ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц
strelvan; ankr; ital; request4t; +4 Ответить
7. request4t 18.06.19 16:46 Сейчас в теме
(6)
да, заплатка работает, спасибо) НО! эта заплатка повлияет на проведение других документов т.к. ее код в Модуле набора записей регистра. Этого нужно избежать. Как добавить условие типа: Если док = этот док, то Новый менеджер таблиц?
8. alex-l19041 8 18.06.19 16:57 Сейчас в теме
(7) это нетиповой документ ? тогда используйте ТипЗНЧ
9. request4t 18.06.19 17:11 Сейчас в теме
(8)
дело в том, что в момент проведения документа в процедуре ОбработкаПроведения
ДополнительныеСвойства.ДляПроведения.Ссылка = текущий документ,

а в Процедура ПередЗаписью() в Модуле набора записей регистра поле Ссылка уже отсутствует.

Не могу понять в какой момент изменяется структура ДополнительныеСвойства
15. AlX0id 12.08.22 09:33 Сейчас в теме
(7)
слоупока пост.


ДвиженияЗаказы.ДополнительныеСвойства.РассчитыватьИзменения = Ложь;


И не нужно трогать ни модуль набора записей, ни менеджер.
strelvan; SLukin; +2 Ответить
16. ankr 19 01.05.23 13:15 Сейчас в теме
(7) можно этот код добавить прямо в модуле объекта документа:
ЭтотОбъект.ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц
2. mrx2012 18.06.19 16:29 Сейчас в теме
а вы это делаете в обработке?
4. request4t 18.06.19 16:33 Сейчас в теме
(2)нет, в модуле объекта
3. tvm 18.06.19 16:30 Сейчас в теме
Сообщение, возникающее при попытке создания временной таблицы в запросе в том случае, если установленный менеджер временных таблиц уже закрыт к моменту выполнения запроса, вводило в заблуждение. Текст ошибки был следующим Не установлен менеджер временных таблиц/

Не оно?
5. request4t 18.06.19 16:34 Сейчас в теме
(3) текст в моем случае: Попытка использования закрытого менеджера временных таблиц
10. request4t 18.06.19 17:36 Сейчас в теме
Итак, Правильное решение!

Код движений по регистру я размещал в самом конце процедуры ОбработкаПроведения. Это и вызывало ошибку.

Необходимо код разместить ДО строк процедуры:

СформироватьСписокРегистровДляКонтроля();
ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
ПроведениеСервер.ЗаписатьПодчиненныеНаборамЗаписейДанные(ЭтотОбъект, Отказ);
ДоставкаТоваров.ОтразитьСостояниеДоставки(Ссылка, Отказ);
ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);
user1882613; Help-GROUP; kamis; COMPER; +4 Ответить
11. tvm 18.06.19 17:40 Сейчас в теме
12. request4t 18.06.19 17:56 Сейчас в теме
(11) не смог понять о чем речь)
13. Hans 2 31.01.20 12:59 Сейчас в теме
(10) Так это надо снимать с поддержки.
14. mr.ado 20.05.20 02:46 Сейчас в теме
Такая ошибка может возникать, если не вызвать
Объект.Движения.Записать();
17. SLukin 43 22.02.24 09:09 Сейчас в теме
У меня данная проблема возникла при смене статуса и повторном проведении документа во внешней обработке. Обработка формирует цепочку документов по складу...
Решил проблему методом ПолучитьОбъект() из ссылки документа.
Тем самым очистив структуру ДополнительныеСвойства

ДокОНПТ.Записать(РежимЗаписиДокумента.Проведение);
ДокОтбор.Записать(РежимЗаписиДокумента.Проведение);
					
//Повторно инициализируем объект для очистки ДокОтбор.ДополнительныеСвойства
ДокОтбор = ДокОтбор.Ссылка.ПолучитьОбъект();

ДокОтбор.Статус = Перечисления.СтатусыОтборовРазмещенийТоваров.ВыполненоБезОшибок;
					
Если ДокОтбор.ТоварыОтбор[0].Серия = Справочники.СерииНоменклатуры.ПустаяСсылка() Тогда
	ДокОтбор.ТоварыОтбор[0].Серия = СтрОтгр.Серия;
	ПараметрыУС_ОТ = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(ДокОтбор, Документы.ОтборРазмещениеТоваров));
        НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ДокОтбор,ПараметрыУС_ОТ.Отбор);
КонецЕсли;
					
ДокОтбор.Записать(РежимЗаписиДокумента.Проведение);
Показать
pieceofmind; +1 Ответить
18. pieceofmind 29.02.24 18:06 Сейчас в теме
(17) Спасибо, есть аналогичный код, где объект записывается несколько раз, была та же проблема, Вы сэкономили мне кучу времени.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот