Сканер Штрихкода: Зависание На Процедуре Отключить(объект)

Тема в разделе "1C и всё что с ней связано", создана пользователем Надя, 1 май 2012.

  1. Надя

    Надя Well-Known Member

    Регистрация:
    1 май 2012
    Сообщения:
    46
    Симпатии:
    0
    Здавствуйте! Может быть кто-нибудь сталкивался, помогите, пожалуйста! В типовой конфигурации УПП 8.2 был запрограммирован выбор сканером штрихкода номенклатуры в документе "передача материалов в эксплуатацию". С помощью вашего форума )большое спасибо) запрограммировала выбо в этом же документе сотрудника тоже при помоще сканера штрихкода. После этого в терминальном режиме программа попадает при считывании штрихкода номенклатуры в обработку 1СScanOPOSScan_v2.epf и там "виснет" на строке Объект.Драйвер.Отключить(); Подскажите, пожалуста, что делать?
     
  2. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Непростой вопрос. А в обычном режиме как ведет себя?
     
  3. Надя

    Надя Well-Known Member

    Регистрация:
    1 май 2012
    Сообщения:
    46
    Симпатии:
    0
    В обычном режиме не зависает.
     
  4. Nikolon

    Nikolon Гость

    А не смотрела в режиме отладки к чему он там обращается?
    Вполне может быть, что он отключает драйвер, а потом пытается вытянуть из него данные...
    А вообще совет пройдись отладчиком и посмотри что ему надо, откуда ссылаются объекты, есть ли доступ к ним?)
     
  5. Надя

    Надя Well-Known Member

    Регистрация:
    1 май 2012
    Сообщения:
    46
    Симпатии:
    0
    Процедура ОтключитьОборудование(Клиент)

    ТО = ПолучитьТО();
    Клиенты = ПолучитьПараметрСервераТО("Клиенты", "Соответствие");
    ВидТО = Неопределено;
    СтруктураПоиска = Новый Структура("Вид");

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

    Клиенты.Удалить(Клиент);

    КонецПроцедуры // ОтключитьОборудование()

    После того, как добавила считывание штрихкода для сотрудника СтрокаТО.Ссылки стало =1, и программа переходит на СтрокаТО.Обработка.Отключить(СтрокаТО.Объект); и там "виснет". Когда штрихкод был только для номенклатуры,
    СтрокаТО.Ссылки было =2 и на строку СтрокаТО.Обработка.Отключить(СтрокаТО.Объект); программа не переходила.
     
  6. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Начну с замечания: текст не читаем, пож. пользуйтесь при написании кнопочкой "подсветка 1С".

    Странноватый он, этот текст:
    Код ( (Unknown Language)):
    СтрокиТО = ТО.НайтиСтроки(СтруктураПоиска);
    Для Каждого СтрокаТО Из СтрокиТО Цикл
    А если "ТО.НайтиСтроки" ничего не найдет?

    Давайте задумаемся над сравнением "в терминале" / "без". Соблюдена чистота эксперимента? Та же база физически? То же оборудование?
     
  7. Надя

    Надя Well-Known Member

    Регистрация:
    1 май 2012
    Сообщения:
    46
    Симпатии:
    0
    Нет, все то же. Насчет подсветки - спасибо, учту.
     
Загрузка...

Поделиться этой страницей