Ошибка при выборе листа эксель |
Я |
21.03.19 — 10:34
Использую обработку для загрузки данных с эксель листов.
На форме появилось дерево, файла эксель и его листов. Выбираю лист.
Жму прочитать, в тз появляются данные.
Но если выбрать другой лист и нажать прочитать, то, выходит ошибка
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)
Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
по причине:
Произошла исключительная ситуация (0x800a03ec)
То есть как её исключить? Что бы перечитывался другой выбранный лист?
1 — 21.03.19 — 10:39
Вижу ошибку, Excel — не определена в этом случае. Наверное в этом дело.
2 — 21.03.19 — 10:44
Все же ошибка идет, не подскажете почему?
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)
Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
по причине:
Произошла исключительная ситуация (0x800a03ec)
3 — 21.03.19 — 10:44
ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?
4 — 21.03.19 — 10:51
Почему вот это бывает пустое?????
При первой загрузке там COMОбъект
(3) Названию выбранного листа.
5 — 21.03.19 — 10:51
(4+) Excel.Sheets
6 — 21.03.19 — 10:57
Точку останова ставлю, вроде как обновляются данные
без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?
7 — 21.03.19 — 10:58
как с этим быть? Что то не понятно!!!!
8 — 21.03.19 — 11:06
Почему не видна функция в 1с ТекущееВремя() ?
9 — 21.03.19 — 11:08
Хотел вот такую функцию использовать, паузу. но она не работает.
Процедура Пауза(Время)
чЧас=0; чМин=0; чСек=0;
ТекущееВремя(чЧас,чМин,чСек);
чТекВремя = чЧас*3600+чМин*60+чСек;
чВремяЗавершения = чТекВремя+Время;
Пока чТекВремя<чВремяЗавершения Цикл
ТекущееВремя(чЧас,чМин,чСек);
чТекВремя = чЧас*3600+чМин*60+чСек;
КонецЦикла;
КонецПроцедуры;
10 — 21.03.19 — 12:17
Ставлю точку останова на этой строке.
// ЧТЕНИЕ ЛИСТА
Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка)
Если ОбрЗавершена = 1 Тогда
Сообщить(«Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!»);
Возврат;
КонецЕсли;
//
// Необходимый лист
Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), «xls») > 0 Тогда
Предупреждение(«Выберите конкретный лист для загрузки, а не сам файл!»);
Возврат;
КонецЕсли;
//
Если Excel = неопределено Тогда
Попытка
Excel = новый COMОбъект(«Excel.Application»);
Исключение
Сообщить(«Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.»);
Возврат;
КонецПопытки;
//НашФайл = Excel.Workbooks.Open(ИмяФайла);
Excel.Workbooks.Open(ИмяФайла);
КонецЕсли;
//
//ПаузаПустымЦиклом(5);
//
Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.
Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets)
Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
по причине:
Произошла исключительная ситуация (0x800a03ec)
Что нужно поправить? Подскажите пожалуйста!
falselight
11 — 21.03.19 — 12:21
Решил вопрос.
Нужно было сделать так, —
Excel = Неопределено;
//
КонецПроцедуры
Ошибка при выборе листа эксель |
Я |
falselight
21.03.19 — 10:34
Использую обработку для загрузки данных с эксель листов.
На форме появилось дерево, файла эксель и его листов. Выбираю лист.
Жму прочитать, в тз появляются данные.
Но если выбрать другой лист и нажать прочитать, то, выходит ошибка
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)
Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
по причине:
Произошла исключительная ситуация (0x800a03ec)
То есть как её исключить? Что бы перечитывался другой выбранный лист?
falselight
1 — 21.03.19 — 10:39
Вижу ошибку, Excel — не определена в этом случае. Наверное в этом дело.
falselight
2 — 21.03.19 — 10:44
Все же ошибка идет, не подскажете почему?
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)
Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
по причине:
Произошла исключительная ситуация (0x800a03ec)
Дмитрий
3 — 21.03.19 — 10:44
ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?
falselight
4 — 21.03.19 — 10:51
Почему вот это бывает пустое?????
При первой загрузке там COMОбъект
(3) Названию выбранного листа.
falselight
5 — 21.03.19 — 10:51
(4+) Excel.Sheets
falselight
6 — 21.03.19 — 10:57
Точку останова ставлю, вроде как обновляются данные
без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?
falselight
7 — 21.03.19 — 10:58
как с этим быть? Что то не понятно!!!!
falselight
8 — 21.03.19 — 11:06
Почему не видна функция в 1с ТекущееВремя() ?
falselight
9 — 21.03.19 — 11:08
Хотел вот такую функцию использовать, паузу. но она не работает.
Процедура Пауза(Время) чЧас=0; чМин=0; чСек=0; ТекущееВремя(чЧас,чМин,чСек); чТекВремя = чЧас*3600+чМин*60+чСек; чВремяЗавершения = чТекВремя+Время; Пока чТекВремя<чВремяЗавершения Цикл ТекущееВремя(чЧас,чМин,чСек); чТекВремя = чЧас*3600+чМин*60+чСек; КонецЦикла; КонецПроцедуры;
falselight
10 — 21.03.19 — 12:17
Ставлю точку останова на этой строке.
// ЧТЕНИЕ ЛИСТА Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка) Если ОбрЗавершена = 1 Тогда Сообщить("Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!"); Возврат; КонецЕсли; // // Необходимый лист Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), "xls") > 0 Тогда Предупреждение("Выберите конкретный лист для загрузки, а не сам файл!"); Возврат; КонецЕсли; // Если Excel = неопределено Тогда Попытка Excel = новый COMОбъект("Excel.Application"); Исключение Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel."); Возврат; КонецПопытки; //НашФайл = Excel.Workbooks.Open(ИмяФайла); Excel.Workbooks.Open(ИмяФайла); КонецЕсли; // //ПаузаПустымЦиклом(5); // Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();
Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.
Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets) Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); по причине: Произошла исключительная ситуация (0x800a03ec)
Что нужно поправить? Подскажите пожалуйста!
falselight
11 — 21.03.19 — 12:21
Решил вопрос.
Нужно было сделать так, -
Excel = Неопределено;
//
КонецПроцедуры
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
shtucer-igor 04.03.2009 at 12:54
однозначно плюс !
а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?
Reply ↓
shtucer-igor 04.03.2009 at 12:54
однозначно плюс !
а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?
Reply ↓
softbear 11.03.2009 at 00:25
однозначно плюс !
Reply ↓
COMPER 19.03.2009 at 11:51
не работает. Но красиво
Reply ↓
COMPER 19.03.2009 at 11:51
не работает. Но красиво
Reply ↓
COMPER 19.03.2009 at 11:53
Pim 19.03.2009 at 19:10
не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…
А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).
Reply ↓
Pim 19.03.2009 at 19:10
не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…
А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).
Reply ↓
egorover 20.03.2009 at 16:26
внимательней, там загрузка идёт по всем типам цен в строку
Reply ↓
olee 23.03.2009 at 00:40
У меня пишет:
{ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)
по причине:
Произошла исключительная ситуация (0x8002000b)
Reply ↓
olee 23.03.2009 at 00:40
У меня пишет:
{ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)
по причине:
Произошла исключительная ситуация (0x8002000b)
Reply ↓
egorover 23.03.2009 at 08:03
всё времени нет, укажите имя листа excel Лист1
Reply ↓
olee 23.03.2009 at 10:39
Создался пустой документ с комментарием из какого файла загружен.
Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.
Захожу в регистр сведений — нет такой записи:(
Reply ↓
olee 23.03.2009 at 10:39
Создался пустой документ с комментарием из какого файла загружен.
Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.
Захожу в регистр сведений — нет такой записи:(
Reply ↓
olee 25.03.2009 at 00:44
Разобрался, все работает!
Очень нужная обработка.
Плюс.
Reply ↓
dev_gen 31.03.2009 at 13:35
Ищу по всему инету такую разработку уже неделю.
Огромное спасибище
Reply ↓
dev_gen 31.03.2009 at 13:35
Ищу по всему инету такую разработку уже неделю.
Огромное спасибище
Reply ↓
kozakm 11.04.2009 at 08:26
VikFx 28.04.2009 at 11:00
то, что нужно, спасибо
Reply ↓
VikFx 28.04.2009 at 11:00
то, что нужно, спасибо
Reply ↓
4emodan 06.05.2009 at 01:22
Большое спасибо! Давно искал.
Reply ↓
4emodan 06.05.2009 at 01:39
А можно сделать, чтоб находило товары не по артикулу, а по коду?
Reply ↓
4emodan 06.05.2009 at 01:39
А можно сделать, чтоб находило товары не по артикулу, а по коду?
Reply ↓
petrash 06.06.2009 at 11:50
Выручил! Спасибо большое!
Reply ↓
qwertylion@rambler.ru 07.06.2009 at 19:01
Обработка хорошее но вот только документ пустой создается, не подскажите как быть?
Reply ↓
qwertylion@rambler.ru 07.06.2009 at 19:01
Обработка хорошее но вот только документ пустой создается, не подскажите как быть?
Reply ↓
steelrat1976 20.06.2009 at 15:19
нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял
Reply ↓
qwertylion@rambler.ru 26.06.2009 at 22:20
при записи в ценообразование пустой лист
Reply ↓
qwertylion@rambler.ru 26.06.2009 at 22:20
при записи в ценообразование пустой лист
Reply ↓
qwertylion@rambler.ru 26.06.2009 at 22:22
все нормально разобрался нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял СПАСИБО steelrat1976
Reply ↓
Dimka74 21.07.2009 at 04:29
Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»
Reply ↓
Dimka74 21.07.2009 at 04:29
Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»
Reply ↓
sly99 07.10.2009 at 21:25
можно поподробнее, что где писать?
выдает ошибку
{ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)
по причине:
Произошла исключительная ситуация (0x8002000b)
Reply ↓
cooldanie 06.11.2009 at 15:51
Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?
Reply ↓
cooldanie 06.11.2009 at 15:51
Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?
Reply ↓
helloworld 09.11.2009 at 14:31
{ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)
по причине:
Произошла исключительная ситуация (0x8002000b)
Это наверное когда страница Екселя названа не Лист1. Автор, выбрал бы просто первую страницу — Excel.Sheets(1).select();
Reply ↓
labuh 26.11.2009 at 03:38
Автору респект и уважуха.
А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»
Reply ↓
labuh 26.11.2009 at 03:38
Автору респект и уважуха.
А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»
Reply ↓
labuh 27.11.2009 at 23:51
Здесь что, больше никто не живет???
Reply ↓
meser 06.12.2009 at 22:22
Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.
Reply ↓
meser 06.12.2009 at 22:22
Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.
Reply ↓
nikser 11.01.2010 at 18:40
Ничего не понимаю . у кого она работает??? документ изменения цен то создался , но пустой .
Reply ↓
Epishko 14.02.2010 at 22:04
Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.
Reply ↓
Epishko 14.02.2010 at 22:04
Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.
Reply ↓
Родная 14.04.2010 at 10:56
изначально все получается, но при загрузке, выбранных цен в 1С выдается ошибка
{ВнешняяОбработка.ЗагрузкаЦен(120)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Закупочная : ******* (Регистр сведений: Цены номенклатуры; Номер строки: 43)
по причине:
Запись с такими ключевыми полями существует! : Закупочная :**********(Регистр сведений: Цены номенклатуры; Номер строки: 43)
при том что справочник «Установка цен номенклатуры» пуст.
Что я не так делаю?
Reply ↓
provnick 24.01.2011 at 21:39
Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.
Reply ↓
provnick 24.01.2011 at 21:39
Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.
Reply ↓
Glenas 28.01.2011 at 14:46
Здравсвуйте. Помогайте, очень надо. Версия 8,2, УТ 11. При открытии выдавал ошибку, поменял ТипыЦенНоменклатуры на ВидыЦен. Обработка открывается, загружает файл xls, корректно находит цены. При попытке загрузки выдаёт {ВнешняяОбработка.ЗагрузкаЦен.МодульОбъекта(90)}: Поле объекта не обнаружено (НеПроводитьНулевыеЗначения) А код модуля запаролен! Что делать, автор? Спасибо
Reply ↓
egorover 29.07.2011 at 10:03
egorover 29.07.2011 at 10:03
lenka-nes@mail.ru 13.10.2011 at 10:19
спасибо!пригодилось
Reply ↓
wwizard 01.11.2011 at 17:05
Пишет Ошибка при вызове метода контекста (Sheets)
Что делать?
Reply ↓
wwizard 01.11.2011 at 17:05
Пишет Ошибка при вызове метода контекста (Sheets)
Что делать?
Reply ↓
tgnike 08.11.2011 at 12:30
Она со всеми екселями работате?
Reply ↓
w22u 21.11.2011 at 14:54
Спасибо, протестируем Вашу обработку.
Reply ↓
w22u 21.11.2011 at 14:54
Спасибо, протестируем Вашу обработку.
Reply ↓
Belka063 30.11.2011 at 09:30
Работает.Спасибо.Помогло
Reply ↓
AruslanM 07.12.2011 at 10:41
Спасибо за идею, пригодилось.
Reply ↓
AruslanM 07.12.2011 at 10:41
Спасибо за идею, пригодилось.
Reply ↓
Ibrogim 19.12.2011 at 10:51
Спасибо за обработку, помогла как пример
Reply ↓
ASoft 18.01.2012 at 22:14
ASoft 18.01.2012 at 22:14
maratsat 21.01.2012 at 17:44
Во-первых, хорошая обработка. Спасибо. Значительно сокращает время ввода документа.
Во-вторых, предложения по улучшению
Думаю было бы еще лучше, сделать ввод нескольких типов цен за один раз.
Или как вариант сделать возможным добавлять разные типы цен к одному документу.
А иначе получается, что розничные, оптовые и крупнооптовые цены в разных документах, что не удобно.
Reply ↓
wwizard 21.01.2012 at 23:25
(35) так что делать то
Reply ↓
wwizard 21.01.2012 at 23:25
(35) так что делать то
Reply ↓
egorover 23.01.2012 at 21:18
(42) так для этого и создавалось, колонки в таблице excel и есть различные типы цен
Reply ↓
egorover 23.01.2012 at 21:19
(43) имя листа в книге excel
Reply ↓
egorover 23.01.2012 at 21:19
(43) имя листа в книге excel
Reply ↓
FE_D_OR83 31.01.2012 at 15:11
Спасибо за обработку,сэкономила время. Радует что каждый может доработать под себя.
Кстати неплохо бы в неё добавить возможность указывать цены для номенклатуры с характеристиками.
Reply ↓
fonomo0 31.01.2012 at 15:24
Автор С какими версиями Excel работает ваша отработка?
Reply ↓
fonomo0 31.01.2012 at 15:24
Автор С какими версиями Excel работает ваша отработка?
Reply ↓
AlexxxMksv 29.04.2012 at 12:17
Скажите ваша обработка может проверять соответствие единицы измерения из файла не с базовой единицей, не с единицей хранения остатков, не с единицей для отчетов, не с единицей мест, а с единицами по классификатору?
Reply ↓
TitanLuchs 17.06.2012 at 13:20
Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!
Reply ↓
TitanLuchs 17.06.2012 at 13:20
Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!
Reply ↓
MyPuK_OLD 19.11.2013 at 15:46
Есть какое-то описание или инструкция по использованию данной обработки? Подойдет ли она для работы с Комплексной автоматизацией редакция 1.1?
Reply ↓
egorover 19.11.2013 at 21:23
Пробуйте, не пробовал, код открыт
Reply ↓
Здравствуйте! Подскажите, пожалуйста! Загружаю из Excel данные, хочу обратиться к именованной области, выдает следующую ошибку: «Ошибка при вызове метода контекста (Cells): Произошла исключительная ситуация (0x800a03ec)
ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
по причине:
Произошла исключительная ситуация (0x800a03ec)»
Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
НомерКолонкиАртикул = ЭлементыФормы.ТабличныйДокумент.Область(«R2C1»;
НомерКолонкиНаименованияТовара = ЭлементыФормы.ТабличныйДокумент.Область(«R2C2»;
НомерКолонкиЕдиницаИзмерения = ЭлементыФормы.ТабличныйДокумент.Область(«R2C3»;
НомерКолонкиСтрана = ЭлементыФормы.ТабличныйДокумент.Область(«R2C4»;
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Excel = новый COMОбъект(«Excel.Application»;
Версия = Лев(Excel.Version,Найти(Excel.Version,».»-1);
Если Версия = «8» тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
ФайлКолонок = Excel.Cells(2,1).SpecialCells(21).Column;
Конецесли;
// Выбираем данные из файла
Для а = Excel.Cells(2,1).SpecialCells(21).Row по ФайлСтрок Цикл
//Полуим данные из соответсвующих ячеек
Артикул = СокрЛП(Excel.Cells(а,Артикул).Value);
НаименованиеТовара = СокрЛП(Excel.Cells(а,НомерКолонкиНаименованияТовара).Value);
ЕдиницаИзмерения = СокрЛП(Excel.Cells(а,НомерКолонкиЕдиницаИзмерения).Value);
Товар = Справочники.Номенклатура.ПустаяСсылка();
// Ищем товар в справочнике по коду
Товар = Справочники.Номенклатура.НайтиПоКоду.Артикул;
// Если не нашли по коду, то ищем по наименованию
Если Товар.Пустая() Тогда
Товар = Справочники.Номенклатура.НайтиПоНаименованию.Наименование;
Конецесли;
//Если не нашли создаем новый
Если Товар.Пустая() Тогда
Товар = Справочники.Номенклатура.СоздатьЭлемент();
Товар.Наименование = НаименованиеТовара;
Товар.Артикул = Артикул;
Товар.БазоваяЕдиницаИзмерения = ЕдиницаИзмерения;
Товар.СтранаПроисхождения = НомерКолонкиСтрана;
Товар.Записать();
Конецесли;
КонецЦикла;
КонецПроцедуры
Народ, помогите, не могу понять почему на одном и том компе под разными пользователями работает и не работает, вываливает ошибку «Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)»? гуглом пользоваться умею, но ответа так и не нашел.
поправка, ексель 2010, работаем на терминалах по РДП, есть домен.
Sheets — лист книги. может обращается к несущствующему?
коллекция листов вообще-то
от этого сильно смысл последнего предложения поменялся? код покажи-то. и где именно валится
в смысле, от того что ты неправильное определение свойству дала? кстати, автор, Sheets — это не метод
самое интересное, что под одним пользователем работает нормально, а под другим пользователем вываливает ошибку
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
egorover 19.11.2013 at 21:23
Пробуйте, не пробовал, код открыт
Reply ↓
Здравствуйте! Подскажите, пожалуйста! Загружаю из Excel данные, хочу обратиться к именованной области, выдает следующую ошибку: «Ошибка при вызове метода контекста (Cells): Произошла исключительная ситуация (0x800a03ec)
ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
по причине:
Произошла исключительная ситуация (0x800a03ec)»
Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
НомерКолонкиАртикул = ЭлементыФормы.ТабличныйДокумент.Область(«R2C1»;
НомерКолонкиНаименованияТовара = ЭлементыФормы.ТабличныйДокумент.Область(«R2C2»;
НомерКолонкиЕдиницаИзмерения = ЭлементыФормы.ТабличныйДокумент.Область(«R2C3»;
НомерКолонкиСтрана = ЭлементыФормы.ТабличныйДокумент.Область(«R2C4»;
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Excel = новый COMОбъект(«Excel.Application»;
Версия = Лев(Excel.Version,Найти(Excel.Version,».»-1);
Если Версия = «8» тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
ФайлКолонок = Excel.Cells(2,1).SpecialCells(21).Column;
Конецесли;
// Выбираем данные из файла
Для а = Excel.Cells(2,1).SpecialCells(21).Row по ФайлСтрок Цикл
//Полуим данные из соответсвующих ячеек
Артикул = СокрЛП(Excel.Cells(а,Артикул).Value);
НаименованиеТовара = СокрЛП(Excel.Cells(а,НомерКолонкиНаименованияТовара).Value);
ЕдиницаИзмерения = СокрЛП(Excel.Cells(а,НомерКолонкиЕдиницаИзмерения).Value);
Товар = Справочники.Номенклатура.ПустаяСсылка();
// Ищем товар в справочнике по коду
Товар = Справочники.Номенклатура.НайтиПоКоду.Артикул;
// Если не нашли по коду, то ищем по наименованию
Если Товар.Пустая() Тогда
Товар = Справочники.Номенклатура.НайтиПоНаименованию.Наименование;
Конецесли;
//Если не нашли создаем новый
Если Товар.Пустая() Тогда
Товар = Справочники.Номенклатура.СоздатьЭлемент();
Товар.Наименование = НаименованиеТовара;
Товар.Артикул = Артикул;
Товар.БазоваяЕдиницаИзмерения = ЕдиницаИзмерения;
Товар.СтранаПроисхождения = НомерКолонкиСтрана;
Товар.Записать();
Конецесли;
КонецЦикла;
КонецПроцедуры