|
v7: 1c 7.7 и Excel. Несовпадение типов #ССЫЛКА! | ☑ | ||
---|---|---|---|---|
0
Koliaff
16.01.12
✎
22:26
|
Доброго времени суток, господа форумчани. Пишу обработку загрузки данных из Excel в 1C 7.7.
В файле из которого идет загрузка присутствуют ячейки с формулами и из-за того что некоторые формулы написаны не правильно, в них пишется текст типа =D15-#ССЫЛКА!-K15 Удалять все такие ячейки в которых битая ссылка нет возможности, т.к. таких ячеек очень много и они в перемешку с нормальными ячейками. При попытке считать значение проблемной ячейки, например вот таким кодом : Excel.Cells(х, 15).Value Возникает ошибка "Несовпадение типов" и 1С виснет! Конструкция Попытка Исключение КонецПопытки не срабатывает ! Приходится снимать задачу с 1С. Подскажите пожалуйста как можно проверять такие ячейки чтобы 1С прололжала после этого работать ? ) Заранее большое спасибо ! |
|||
1
БибиГон
16.01.12
✎
22:29
|
что значит "Попытка не срабатывает"?
|
|||
2
Koliaff
16.01.12
✎
22:31
|
Для х = 1 По Строк Цикл
Попытка Состояние("Обрабатывается строка номер "+ Строка(х)); Колонка1 = СокрЛП(Строка(Excel.Cells(х, 1).Value)); Колонка2 = СокрЛП(Строка(Excel.Cells(х, 2).Value)); Колонка3 = СокрЛП(Строка(Excel.Cells(х, 3).Value)); Колонка4 = СокрЛП(Строка(Excel.Cells(х, 4).Value)); Колонка5 = СокрЛП(Строка(Excel.Cells(х, 5).Value)); Колонка6 = СокрЛП(Строка(Excel.Cells(х, 6).Value)); Колонка7 = СокрЛП(Строка(Excel.Cells(х, 7).Value)); Колонка8 = СокрЛП(Строка(Excel.Cells(х, 8).Value)); Колонка9 = СокрЛП(Строка(Excel.Cells(х, 9).Value)); Колонка10 = СокрЛП(Строка(Excel.Cells(х, 10).Value)); Колонка11 = СокрЛП(Строка(Excel.Cells(х, 11).Value)); Колонка12 = СокрЛП(Строка(Excel.Cells(х, 12).Value)); Колонка13 = СокрЛП(Строка(Excel.Cells(х, 13).Value)); Колонка14 = СокрЛП(Строка(Excel.Cells(х, 14).Value)); Колонка15 = СокрЛП(Строка(Excel.Cells(х, 15).Value)); Если (ПустоеЗначение(Колонка15)=0) Тогда Если СокрЛП(Колонка15)<>"долг" Тогда Если ПустоеЗначение(Колонка14)<>1 Тогда Если (Дата(Колонка14)>=НачДата) и (Дата(Колонка14)<=КонДата) Тогда ТЗ.НоваяСтрока(); ТЗ.Долг = Колонка15; ТЗ.Сумма = Колонка4; ТЗ.ДатаБухСпрвки=Колонка14; ТЗ.ДатаСФ = Колонка3; ТЗ.НомерСФ = Колонка7; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Исключение Сообщить("Не обработать строку номер "+ Строка(х)); КонецПопытки; Конеццикла; Вот код. 1С выдает сообщение Несовпадение типов и виснет ! Сообщение внизу не появляется о не удачной обработке строки... |
|||
3
filh
16.01.12
✎
22:34
|
попробуй через йоксель.
|
|||
4
IvanovIV
16.01.12
✎
22:35
|
http://zalil.ru/32512420
попробуй эту обработку когда-то скачал ее с инфостарта больше с загрузкой из xls не парюсь |
|||
5
Koliaff
16.01.12
✎
22:35
|
(filh) Сори, ВК не пользуюсь ...
|
|||
6
filh
16.01.12
✎
22:37
|
(5) внешнюю обработку сделай, в ней подгрузи ВК. Или через табло.
|
|||
7
Koliaff
16.01.12
✎
22:41
|
(filh) Я пользуюсь ВК только если стандартными способами не возможно сдлеать задуманное, пока я надеюсь найти выход ...
|
|||
8
Koliaff
16.01.12
✎
22:43
|
(IvanovIV) Спасибо, но эта обработка так же выпала с такой же ошибкой и подвесила 1С.
|
|||
9
ШтушаКутуша
16.01.12
✎
22:45
|
а если убрать СокрЛП и Строка?
|
|||
10
ШтушаКутуша
16.01.12
✎
22:46
|
+9 попробовать, пройдет ли?
|
|||
11
IvanovIV
16.01.12
✎
22:46
|
(8) ну извини, чем мог тем помог
а файл екселевский в каком екселе создан и как сохранен? |
|||
12
IvanovIV
16.01.12
✎
22:53
|
если не жалко
файлик выложи не надо цликом весь пару строк одну, которая проходит а другую, где ругается |
|||
13
filh
16.01.12
✎
22:54
|
(12) сделай сам :)
|
|||
14
Koliaff
16.01.12
✎
22:55
|
(IvanovIV) Сейчас выложу
(ШтушаКутуша) СокрЛП - не причем, пробовал и так и так |
|||
15
filh
16.01.12
✎
22:56
|
(14) ну попробуй еще для полного ой
Колонка1 = СокрЛП(""+Excel.Cells(х, 1).Value); |
|||
16
IvanovIV
16.01.12
✎
22:57
|
(13) ) Накуа я буду пытаться моделировать, то что есть уже ... и меня никак не касается?
|
|||
17
Koliaff
16.01.12
✎
22:58
|
||||
18
Koliaff
16.01.12
✎
23:00
|
(filh) В отладчике при попытке посмотреть значение Excel.Cells(х, 1).Value вылетает ошибка, так что по-любому не пойдет....
|
|||
19
filh
16.01.12
✎
23:00
|
(17) а сохранить в 2003 и попробовать?
|
|||
20
IvanovIV
16.01.12
✎
23:01
|
(17)
см 11 |
|||
21
Koliaff
16.01.12
✎
23:02
|
Файл изначально в 2003 был, просто пересохранял в 2007, так что не в Excel дело
|
|||
22
IvanovIV
16.01.12
✎
23:02
|
я сейчас у предков
офиса тут нет но думаю проблема в формате сохранения |
|||
23
IvanovIV
16.01.12
✎
23:03
|
тогда завтра посмотрю на работе)
|
|||
24
Koliaff
16.01.12
✎
23:04
|
Вот ссылка на файл в 2003 офисе http://file.qip.ru/document/DNQ4X0Sj/Для_примера.html
|
|||
25
filh
16.01.12
✎
23:10
|
(24) тоже посмотрю завтра с утра, сейчас лень.
|
|||
26
Koliaff
16.01.12
✎
23:17
|
Вопрос закрыт, друг помог, который ещё не спал )
Кому интересно код такой : Если Найти (Excel.Cells(х, 15).Formula,"#REF") =0 Тогда Колонка15 = СокрЛП(Строка(Excel.Cells(х, 15).Value)); Иначе Сообщить("Не удалось обработать строку номер "+ Строка(х)); Продолжить; КонецЕсли; |
|||
27
Tatitutu
16.01.12
✎
23:18
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |