04.09.2012

Разрешение возможных проблем при работе с COM-объектами

Если при работе с COM-объектами из встроенного языка 1С:Предприятия возникают необъяснимые ошибки и/или поведение кода оказывается нестабильным от одного исполнения к другому, то рекомендуется не использовать выражений, содержащих длинные цепочки обращений к свойствам и методам через точку. Например, вместо:

Копировать в буфер обмена
ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1.Документ.parentWindow.ClipboardData.GetData("Text");

лучше записать:

Копировать в буфер обмена
ПолеHtmlДокумента = ЭтаФорма.ЭлементыФормы.ПолеHTMLДокумента1;
HtmlДокумент = ПолеHtmlДокумента.Документ;
Окно = HtmlДокумент.parentWindow;
ДанныеБуфераОбмена = Окно.ClipboardData;
ДанныеБуфераОбмена.GetData("Text");

Такая последовательность строк будет работать надежней благодаря явно заданному времени удерживания COM-объектов на ссылках в соответствии с временем жизни используемых для их временного хранения переменных встроенного языка.