Имя: Пароль:
1C
1C 7.7
v7: не получается обработать ошибку Эксель #Н/Д
0 tgu82
 
27.08.26
22:40
1С 7.7 ТИС. Загружаю шьрихкоды из эксель-таблицы поставщика. Но у него в колонке Штрихкод если он пуст то пишет #Н/Д то есть неопределенные данные.
Если в Эксель функции Если Ошибка и ЕСНД, которые должны обрабатывать эту ситуацию. Но как их задействовать в 1С 7.7 не понятно
ЕСНД(Штрихкод для проверки;0) Так хотелось бы...Но синтаксис использования ее в 1С 7.7 мне непонятен. Может кто знает подскажите
1 tgu82
 
27.08.26
22:50
Сначала пробовал Попытка Исключение КонецПопытки. Не получилось....Видимо надо именно функцией проверки ошибки из Эксель
3 Garykom
 
гуру
28.08.26
00:06
Попытка загрузить данные из файла экселя с формулами?
Если читаешь через OLE (СоздатьОбъект("Excel.Application")) то используй функции экселя же через COM/OLE
https://share.google/aimode/ztMcxylOaRBpQuXrY
4 ADirks
 
28.08.26
07:48
например так:
    //Обработка ошибок
    фОшибка = 0;
    Если фНеОбрабатыватьПотенциальныеОшибки <> 1 Тогда
        Text = СокрЛП(cell.Text);
        Если Text = "#ЗНАЧ!" Тогда
            фОшибка = 1;
        ИначеЕсли Text = "#ССЫЛКА!" Тогда
            фОшибка = 1;
        ИначеЕсли Text = "#Н/Д" Тогда
            фОшибка = 1;
    
        Иначе
            Errors = cell.Errors; //странноватая, но более-менее гарантированная отработка ошибок
            xlEvaluateToError = 1;
            xlInconsistentFormula = 4;
    
            фОшибка = 0;
            Попытка
                Если Errors.Item(xlEvaluateToError).Value = True  Тогда
                    фОшибка = 1;
                КонецЕсли;
                Если Errors.Item(xlInconsistentFormula).Value = True  Тогда
                    фОшибка = 1;
                КонецЕсли;
            Исключение
            КонецПопытки;
        КонецЕсли;
    КонецЕсли;
    
    Если фОшибка = 1 Тогда
        яч = "";
    Иначе
        яч = СокрЛП(cell.Value);
    КонецЕсли;
5 tgu82
 
28.08.26
08:06
Читаю через OLE.Спасибо. Попробую отпишусь
6 tgu82
 
28.08.26
08:25
ПровШК=Excel.Cells(Сч,6).Text;  
          Если ПровШК="#Н/Д" Тогда
              ТЗНом.Штрихкод="";
          Иначе    
           ТЗНом.Штрихкод=Сред(СокрЛП(Excel.Cells(Сч,6).Value),2);    
         Состояние(""+Сч+" , "+Артикул);
       КонецЕсли;
Да. Вот так работает
Закон Брукера: Даже маленькая практика стоит большой теории.