Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
Добрый день, уважаумое сообщество. 1с77. Самописная. При чтении из Эксель файла есть ячкйка с значением #Н/Д. При попытке прочтения данной ячейки 1с77 вываливает ошибку "Несовпадение типов." а затем клент виснит. помогает только сняте задачи в диспечере устройств. Пробовал
Цена=Лист.Cells(НомерСтроки,НомерКолонки).Text;
также не помегает:
Попытка Исключение КонецПопытки;
Пдскажите пожалуйста, кто знает, как или прочитать эту ячейку или ее пропустить...
Если спОшибки.НайтиЗначение(СокрЛП(ЗагружаемаяОбласть.Cells(х,у).Text))<>0 Тогда значЕ=ЗагружаемаяОбласть.Cells(х,у).Text; Иначе значЕ=ЗагружаемаяОбласть.Cells(х,у).Value; КонецЕсли;
Не ловиться... Та сама помилка...
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
сч=0; НомерСтроки=1; пока сч<40 цикл //Сообщить(сч); колонка=спр2.цена; попытка Значение = Лист.Cells(НомерСтроки, колонка).Value; если ПустоеЗначение(Значение)=0 тогда Если (число(Значение)>0) и (СтрДлина(Значение)=СтрДлина(число(Значение))) Тогда спОшибки=СоздатьОбъект("СписокЗначений"); спОшибки.ДобавитьЗначение("#ПУСТО!");
спОшибки.ДобавитьЗначение("#ДЕЛ/0!");
спОшибки.ДобавитьЗначение("#ЗНАЧ!");
спОшибки.ДобавитьЗначение("#ССЫЛКА!");
спОшибки.ДобавитьЗначение("#ИМЯ?");
спОшибки.ДобавитьЗначение("#ЧИСЛО!");
спОшибки.ДобавитьЗначение("#Н/Д");
//Для англ. версии
спОшибки.ДобавитьЗначение("#NULL!");
спОшибки.ДобавитьЗначение("#DIV/0!");
спОшибки.ДобавитьЗначение("#VALUE!");
спОшибки.ДобавитьЗначение("#REF!");
спОшибки.ДобавитьЗначение("#NAME?");
спОшибки.ДобавитьЗначение("#NUM!");
спОшибки.ДобавитьЗначение("#N/A");
Если спОшибки.НайтиЗначение(СокрЛП(Лист.Cells(НомерСтроки,спр2.Цена).Text))<>0 Тогда Цена=Лист.Cells(НомерСтроки,спр2.Цена).Text; Иначе Цена=Лист.Cells(НомерСтроки,спр2.Цена).Text; КонецЕсли;
сообщить("Проверка на ошбку: "+Цена); позиции=позиции+1; Сообщить(НомерСтроки); сч=0; Название=Строка(Лист.Cells(НомерСтроки,спр2.Наименование_по_прайсу).Value);//Название ПолноеНазвание=Название; Если (пустоеЗначение(спр2.Доп_Наим_Полн_Колонка)=0) Тогда ПолноеНазвание=ПолноеНазвание+"**"+Строка(Лист.Cells(НомерСтроки,спр2.Доп_Наим_Полн_Колонка).Value);//Дополнительное название к колонке рядом КонецЕсли; Если (пустоеЗначение(спр2.Доп_Наим_Полн_Колонка1)=0) Тогда ПолноеНазвание=ПолноеНазвание+"**"+Строка(Лист.Cells(НомерСтроки,спр2.Доп_Наим_Полн_Колонка1).Value);//Дополнительное название к колонке рядом КонецЕсли; Если (пустоеЗначение(спр2.Доп_Наим_колонка)=0) и (пустоеЗначение(спр2.Доп_Наим_Строка)=0) Тогда ПолноеНазвание=ПолноеНазвание+"**"+Строка(Лист.Cells(спр2.Доп_Наим_Строка,спр2.Доп_Наим_колонка).Value);//Дополнительное название в ячейке Иначе Если (пустоеЗначение(спр2.Доп_Наим_колонка)=0) или (пустоеЗначение(спр2.Доп_Наим_Строка)=0) Тогда Сообщить("Ошибка в координатах допонительного наименования в "+Значение+" на листе № "+НомерЛиста); Эксель.Quit(); возврат; КонецЕсли; КонецЕсли; //сообщить(Название); Если пустоеЗначение(спр2.Код_по_прайсу)=0 Тогда код=Лист.Cells(НомерСтроки,спр2.Код_по_прайсу).Value;//Артикул //Сообщить(код); КонецЕсли; Если пустоеЗначение(спр2.ед_изм)=0 Тогда ед=Лист.Cells(НомерСтроки,спр2.ед_изм).Value;//Единицы измерения //сообщить(ед); КонецЕсли; ТЗ.НоваяСтрока(); ТЗ.Артикул=код; ТЗ.Наименование=Название; ТЗ.ПолноеНаименование=ПолноеНазвание; Если ПустоеЗначение(спр2.Валюта)=0 Тогда ТЗ.Валютная_Цена=ОКР(Число(Цена),2); ТЗ.Валюта=спр2.Валюта; ТЗ.Цена=""; Иначе ТЗ.Валютная_Цена=""; ТЗ.Валюта=спр2.Валюта; ТЗ.Цена=окр(Число(Цена),2); ТЗ.Сайт=спр.Сайт; ТЗ.ДатаЗагрузки=спр.ДатаЗагрузки; КонецЕсли; ТЗ.Наименование=сокрЛП(ТЗ.Наименование); ТЗ.ПолноеНаименование=СокрЛП(ТЗ.ПолноеНаименование);
ТЗ.ед_изм=ед; ТЗ.Сайт=спр.Сайт; ТЗ.ДатаЗагрузки=спр.Датазагрузки; Конецесли; Иначе сч=сч+1; Конецесли;
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Цитата(Naghual @ 27.02.18, 16:37)
Саме таке рішення я і запропонував:
Варіант, але чи сприймає сам Ексель це як помилку?
Там в коді - жорстке обмеження кількості рядків. Може, якщо зробити правильно - визначити робочу зону засобами Екселя - то проблема зникне? Просто файлів читав багато, з таким не стикався...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!