На клиенте данные загружает, когда процедуру переношу на сервер, ругается на МассивКолонок = arr.Выгрузить(); именно Выгрузить, что нужно сделать?)
я знаю что есть код для сервера другой я и сам им удачно пользуюсь, но нужен именно этот по причинам.
Попытка
Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(файл);
WS = WB.Worksheets(1);
arr = WS.UsedRange.Value;
WB.Close(0);
Исключение
КонецПопытки;
МассивКолонок = arr.Выгрузить();
ВсегоСтрок = (МассивКолонок.Получить(0).Количество()) - 1;
Slon747 @ Сегодня, 10:49
,
Значение не является значением объектного типа (Выгрузить)
burza @ Сегодня, 10:53
,
Обычный старый код чтения xls ))
файл = "D:\1C\Mail\bas\123.csv";
Попытка
Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(файл);
WS = WB.Worksheets(1);
arr = WS.UsedRange.Value;
WB.Close(0);
Исключение
КонецПопытки;
МассивКолонок = arr.Выгрузить();
ВсегоСтрок = (МассивКолонок.Получить(0).Количество()) - 1;
Для СтрокаТП = 59 По ВсегоСтрок Цикл
Стр = Таб.Добавить();
Стр.Наименование = СокрЛП(МассивКолонок.Получить(0).Получить(СтрокаТП));
Стр.Производитель = СокрЛП(МассивКолонок.Получить(1).Получить(СтрокаТП));
Стр.Артикул = СокрЛП(МассивКолонок.Получить(3).Получить(СтрокаТП));
Стр.Цена = СокрЛП(МассивКолонок.Получить(5).Получить(СтрокаТП));
Стр.НаличиеОдесса = СокрЛП(МассивКолонок.Получить(6).Получить(СтрокаТП));
Стр.Наличиефилиалы = СокрЛП(МассивКолонок.Получить(7).Получить(СтрокаТП));
Стр.Спецпредложение = СокрЛП(МассивКолонок.Получить(8).Получить(СтрокаТП));
Стр.Полтава = СокрЛП(МассивКолонок.Получить(9).Получить(СтрокаТП));
Стр.Черкассы = СокрЛП(МассивКолонок.Получить(10).Получить(СтрокаТП));
Стр.Днепр = СокрЛП(МассивКолонок.Получить(11).Получить(СтрокаТП));
Стр.Львов = СокрЛП(МассивКолонок.Получить(12).Получить(СтрокаТП));
Стр.ИваноФранковс = СокрЛП(МассивКолонок.Получить(13).Получить(СтрокаТП));
Стр.Харьков = СокрЛП(МассивКолонок.Получить(14).Получить(СтрокаТП));
Стр.Винница = СокрЛП(МассивКолонок.Получить(15).Получить(СтрокаТП));
Стр.Тернополь = СокрЛП(МассивКолонок.Получить(16).Получить(СтрокаТП));
Стр.Николаев = СокрЛП(МассивКолонок.Получить(17).Получить(СтрокаТП));
Стр.Херсон = СокрЛП(МассивКолонок.Получить(18).Получить(СтрокаТП));
Стр.Кропивницкий = СокрЛП(МассивКолонок.Получить(19).Получить(СтрокаТП));
Стр.Запорожье = СокрЛП(МассивКолонок.Получить(20).Получить(СтрокаТП));
Стр.Киев = СокрЛП(МассивКолонок.Получить(21).Получить(СтрокаТП));
Стр.Черновцы = СокрЛП(МассивКолонок.Получить(22).Получить(СтрокаТП));
КонецЦикла;
burza @ Сегодня, 11:10
,
У вас код выполняется &НаКлиенте, а Выгрузить() не работает на тонком клиенте.
Slon747 @ Сегодня, 11:17
,
код в общем модуле лежит, по регламенту нужно делать
Функция Bastion() Экспорт
Таб = Новый ТаблицаЗначений;
Таб.Колонки.Добавить("Наименование");
Таб.Колонки.Добавить("Производитель");
Таб.Колонки.Добавить("Артикул");
Таб.Колонки.Добавить("Цена");
Таб.Колонки.Добавить("НаличиеОдесса");
Таб.Колонки.Добавить("Наличиефилиалы");
Таб.Колонки.Добавить("Спецпредложение");
Таб.Колонки.Добавить("Полтава");
Таб.Колонки.Добавить("Черкассы");
Таб.Колонки.Добавить("Днепр");
Таб.Колонки.Добавить("Львов");
Таб.Колонки.Добавить("ИваноФранковс");
Таб.Колонки.Добавить("Харьков");
Таб.Колонки.Добавить("Винница");
Таб.Колонки.Добавить("Тернополь");
Таб.Колонки.Добавить("Николаев");
Таб.Колонки.Добавить("Херсон");
Таб.Колонки.Добавить("Кропивницкий");
Таб.Колонки.Добавить("Запорожье");
Таб.Колонки.Добавить("Киев");
Таб.Колонки.Добавить("Черновцы");
файл = "D:\1C\Mail\bas\bastion.csv";
Попытка
Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(файл);
WS = WB.Worksheets(1);
arr = WS.UsedRange.Value;
WB.Close(0);
Исключение
КонецПопытки;
МассивКолонок = arr.Выгрузить();
ВсегоСтрок = (МассивКолонок.Получить(0).Количество()) - 1;
Для СтрокаТП = 59 По ВсегоСтрок Цикл
Стр = Таб.Добавить();
Стр.Наименование = СокрЛП(МассивКолонок.Получить(0).Получить(СтрокаТП));
Стр.Производитель = СокрЛП(МассивКолонок.Получить(1).Получить(СтрокаТП));
Стр.Артикул = СокрЛП(МассивКолонок.Получить(3).Получить(СтрокаТП));
Стр.Цена = СокрЛП(МассивКолонок.Получить(5).Получить(СтрокаТП));
Стр.НаличиеОдесса = СокрЛП(МассивКолонок.Получить(6).Получить(СтрокаТП));
Стр.Наличиефилиалы = СокрЛП(МассивКолонок.Получить(7).Получить(СтрокаТП));
Стр.Спецпредложение = СокрЛП(МассивКолонок.Получить(8).Получить(СтрокаТП));
Стр.Полтава = СокрЛП(МассивКолонок.Получить(9).Получить(СтрокаТП));
Стр.Черкассы = СокрЛП(МассивКолонок.Получить(10).Получить(СтрокаТП));
Стр.Днепр = СокрЛП(МассивКолонок.Получить(11).Получить(СтрокаТП));
Стр.Львов = СокрЛП(МассивКолонок.Получить(12).Получить(СтрокаТП));
Стр.ИваноФранковс = СокрЛП(МассивКолонок.Получить(13).Получить(СтрокаТП));
Стр.Харьков = СокрЛП(МассивКолонок.Получить(14).Получить(СтрокаТП));
Стр.Винница = СокрЛП(МассивКолонок.Получить(15).Получить(СтрокаТП));
Стр.Тернополь = СокрЛП(МассивКолонок.Получить(16).Получить(СтрокаТП));
Стр.Николаев = СокрЛП(МассивКолонок.Получить(17).Получить(СтрокаТП));
Стр.Херсон = СокрЛП(МассивКолонок.Получить(18).Получить(СтрокаТП));
Стр.Кропивницкий = СокрЛП(МассивКолонок.Получить(19).Получить(СтрокаТП));
Стр.Запорожье = СокрЛП(МассивКолонок.Получить(20).Получить(СтрокаТП));
Стр.Киев = СокрЛП(МассивКолонок.Получить(21).Получить(СтрокаТП));
Стр.Черновцы = СокрЛП(МассивКолонок.Получить(22).Получить(СтрокаТП));
КонецЦикла;
КонецФункции
А если вы уберете обработку исключительной ситуации, то выяснится, что ошибка возникает гораздо раньше.
Не так ли?
Slon747 @ Сегодня, 11:41
,
туплю, вы правы! Приложению Microsoft Excel не удается получить доступ к файлу. куда копать?
А файл физически не на сервере?
Slon747 @ Сегодня, 11:46
,
на сервере,там где скул и 1С.учетка кластера админ
А юзеру USR1CV8 доступен данный файл?
Slon747 @ Сегодня, 11:58
,
он стоит как администратор. то думаю да.
burza @ Сегодня, 12:16
,
https://pro1c.org.ua/redirect.php?https://forum.infostart.ru/forum9/topic132619/
Спасибо кто на мысль натолкнул)
Еще можно без екселя работать, а просто загрузить в ТабличныйДокумент и уже с него считывать данные.
Попытка
Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(файл);
WS = WB.Worksheets(1);
arr = WS.UsedRange.Value;
WB.Close(0);
Исключение
КонецПопытки;
МассивКолонок = arr.Выгрузить();
ВсегоСтрок = (МассивКолонок.Получить(0).Количество()) - 1;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua