Здравствуйте!
Обнаружилась очень странная ошибка.
Сделал класс "Т_Фабрика", который будет создавать все нужные мне объекты.
Объект этого класса создается в глобальном модуле и храниится в переменной глобального модуля "глФабрика".
В этом классе есть вот такая простая функция:
Функция СоздатьОбъектТест () Экспорт
лОбъект = СоздатьОбъект("Т_Тест");
Возврат лОбъект;
КонецФункции
Класс "Т_Тест" очень простой. Для отладки в конструкторе и в деструкторе этого класса просто выдается сообщение.
В модуле формы документа объявлена переменная "мТест", и в тексте этого же модуля (внизу модуля ниже всех процедур) создаю объект этого класса с помощью моей "фабрики":
мТест = глФабрика.СоздатьОбъектТест();
После запуска 1С при открытии документа объект создается.
Но после закрытия документа этот объект не уничтожается, его деструктор не срабатывает.
Это какой-то баг? Деструктор срабатывает только когда закрывается 1С.
Если это ошибка, то чья это ошибка? 1С или 1С++?
В ходе экспериментов выяснил, что если объект создавать "напрямую" в модуле формы вот так:
мТест = СоздатьОбъект("Т_Тест");
То при закрытии формы деструктор срабатывает!
Что за фигня?