Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 июн 2021, 12:38

Ошибка: Не выбран элемент!

Автор sandrowild, 16 мая 2017, 18:21

0 Пользователей и 2 гостей просматривают эту тему.

sandrowild

Уважаемые!

Подскажите пожалуйста по ошибке в 1С 7.7.

Вкратце ситуация.
Мне досталась 1С 7.7 Предприятие с самописной базой для контроля производства.
На линии установлен ПК с программой в которой заведена наменклатура продукции.
Это нужно для подсчета произведенный продукции + для печати этикеток на Зебре.
Для получения этикетки оператору нужно отсканировать 3 разных комплектующих входящих в состав этой продукции.

Ошибка возникает когда оператор случайно или по ошибке отсканировал одну из комплектующих повторно. После ошибки больше ничего не сканируется, приходится перегружать 1С.
Раньше это работало так, что 1С сама удаляла повторные сканирования.

Комментарий 1С:
Т32.УдалитьСтроку();// удаление совпавшего ШК
{Обработка.ПечатьЭтикеток.Форма.Модуль(875)}: Не выбран элемент!

Посмотрел в модуле, вот кусок кода:
ТЗ2.Сортировать("ШК+");
ТЗ2.ВыбратьСтроки(); //перебор ШК во вспомогательной ТЗ
Пока ТЗ2.ПолучитьСтроку()=1 Цикл
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
  Сооб("Сравление штрих-кодов: ["+СокрЛП(ТЗ.ШК)+"] versus ["СокрЛП(ТЗ2.ШК)+"]");
  Если СтрЗаменить(СокрЛП(ТЗ.ШК), "-", "") = СтрЗаменить(СокрЛП(ТЗ2.ШК), "-", "") Тогда
    Сооб("==> СОВПАДЕНИЕ <==");
    itWas = 1;
    ТЗ2.УдалитьСтроку(); //удаление совпавшего ШК
  ИначеЕсли флНеполноеСовпадение = 1 Тогда
    ШКскан = ВРег(СтрЗаменить(СокрЛП(ТЗ.ШК), "-", ""));
    ШКбаза = ВРег(СтрЗаменить(СокрЛП(ТЗ2.ШК), "-", ""));
    Если СтрДлина(ШКскан) > СтрДлина(ШКбаза) Тогда
        Если Лев(ШКскан, СтрДлина(ШКбаза)) = ЩКбаза Тогда
             Сооб("==> СОВПАДЕНИЕ <==");
             itWas = 1;
             ТЗ2.УдалитьСтроку(); // удаление совпавшего ШК
        КонецЕсли;
     КонецЕсли;
    КонецЕсли;
  КонецЦикла;
КонецЦикла;

Не могу понять откуда исходит ошибка.
Помогите разобраться.
:dfbsdfbsdf::dfbsdfbsdf:
Буду много благодарен!
:):)


Mitay_D

Нужно в отладчике смотреть, скорее всего ошибка в том, что он удаляет
Цитата: sandrowild от 16 мая 2017, 18:21Пока ТЗ2.ПолучитьСтроку()=1 Цикл
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
  Сооб("Сравление штрих-кодов: ["+СокрЛП(ТЗ.ШК)+"] versus ["СокрЛП(ТЗ2.ШК)+"]");
  Если СтрЗаменить(СокрЛП(ТЗ.ШК), "-", "") = СтрЗаменить(СокрЛП(ТЗ2.ШК), "-", "") Тогда
    Сооб("==> СОВПАДЕНИЕ <==");
    itWas = 1;
    ТЗ2.УдалитьСтроку(); //удаление совпавшего ШК
Потом он сравнивает вот этот код
Если СтрЗаменить(СокрЛП(ТЗ.ШК), "-", "") = СтрЗаменить(СокрЛП(ТЗ2.ШК), "-", "") Тогда
Но так как текущая строка "ТЗ2" удалена он ее видит пустой и вылетает такая ошибка. Скорее всего раньше там была метка перехода в начло перыого цикла по ТЗ2


sandrowild

Победил!
Большое спасибо.

Тема закрыта :ooifh::ooifh::ooifh:

Теги:
Рейтинг@Mail.ru Rambler's Top100

Поиск