А не смотрела в режиме отладки к чему он там обращается?
Вполне может быть, что он отключает драйвер, а потом пытается вытянуть из него данные...
А вообще совет пройдись отладчиком и посмотри что ему надо, откуда ссылаются объекты, есть ли доступ к ним?)
Процедура ОтключитьОборудование(Клиент)
ТО = ПолучитьТО();
Клиенты = ПолучитьПараметрСервераТО("Клиенты", "Соответствие");
ВидТО = Неопределено;
СтруктураПоиска = Новый Структура("Вид");
Для Каждого ВидТО Из Перечисления.ВидыТорговогоОборудования Цикл
Если Клиент.ПоддерживаетсяВидТО(ВидТО) Тогда
СтруктураПоиска.Вид = ВидТО;
СтрокиТО = ТО.НайтиСтроки(СтруктураПоиска);
СтрокаТО = Неопределено;
Для Каждого СтрокаТО Из СтрокиТО Цикл
Если СтрокаТО.Ссылки = 1 Тогда
СтрокаТО.Ссылки = 0;
СтрокаТО.Обработка.Отключить(СтрокаТО.Объект);
ИначеЕсли СтрокаТО.Ссылки > 1 Тогда
СтрокаТО.Ссылки = СтрокаТО.Ссылки - 1;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Клиенты.Удалить(Клиент);
КонецПроцедуры // ОтключитьОборудование()
После того, как добавила считывание штрихкода для сотрудника СтрокаТО.Ссылки стало =1, и программа переходит на СтрокаТО.Обработка.Отключить(СтрокаТО.Объект); и там "виснет". Когда штрихкод был только для номенклатуры,
СтрокаТО.Ссылки было =2 и на строку СтрокаТО.Обработка.Отключить(СтрокаТО.Объект); программа не переходила.