Имя: Пароль:
 
1C
 
excel в динамический список
0 ArturDoo
 
15.12.20
13:22
Доброго времени суток. Хочу выгрузить лист Excel в ДС ил массив. На форме обработки, на сервере пишу:
// Создание COM-объекта

Эксель = Новый COMОбъект(«Excel.Application»);

// Открытие книги

//Книга = Эксель.Workbooks.Open(ПутьКФайлу);

// Позиционирование на нужном листе

//Лист = Книга.Worksheets(1);

1с мне пишет:
{Думлер Обработка.Ду_СопоставлениеНоменклатур.Форма.Форма.Форма(8,16)}: Конструктор не найден
Эксель = Новый <<?>>COMОбъект(«Excel.Application»); (Проверка: Сервер)
{Думлер Обработка.Ду_СопоставлениеНоменклатур.Форма.Форма.Форма(8,26)}: Ожидается выражение
Эксель = Новый COMОбъект(<<?>>«Excel.Application»); (Проверка: Тонкий клиент)

Что я делаю не так?
1 ДенисЧ
 
15.12.20
13:23
А ничего, что
а) ДС - это просто отображение данных, в себе он ничего не хранит
и б) сомобъекта на клиенте быть нет. И на сервере ехел может быть не установлен
2 ДенисЧ
 
15.12.20
13:24
"Что я делаю не так?"

Если коротко - то всё.
3 mistеr
 
15.12.20
13:24
И кавычки не те
4 ArturDoo
 
15.12.20
13:24
(1)Exel установлен
(2)А как тогда правильно?
5 mistеr
 
15.12.20
13:25
Спутал ДС с ТЗ — ну подумаешь, какая разница?
6 ArturDoo
 
15.12.20
13:26
(5)+
7 mistеr
 
15.12.20
13:29
(6) Это был сарказм
8 ArturDoo
 
15.12.20
13:33
Ок, ошибка была в кавычках, теперь -2147467262(0x80004002): Интерфейс не поддерживается
Что с этим сделать????
9 Kassern
 
15.12.20
13:36
(8) использовать табличный документ
10 ArturDoo
 
15.12.20
13:37
(9) Можно подробней
11 Kassern
 
15.12.20
13:41
&НаКлиенте
Процедура ЗагрузитьФайл(Команда)
    Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл Excel";
    Диалог.ПолноеИмяФайла = "";
    Диалог.ПредварительныйПросмотр = Истина;
    Диалог.Фильтр ="Формат Excel (*.xls;*.xlsx)|*.xls;*.xlsx|";
    ВыбранФайл=Диалог.Выбрать();
    Если ВыбранФайл Тогда
        Файл=Новый Файл(Диалог.ПолноеИмяФайла);
        ДД=Новый ДвоичныеДанные(Диалог.ПолноеИмяФайла);
        Адрес=ПоместитьВоВременноеХранилище(ДД,УникальныйИдентификатор);
        ЗагрузитьФайлExсelНаСервере(Адрес,Файл.Расширение);
    КонецЕсли;
    
КонецПроцедуры


&НаСервере
Процедура ЗагрузитьФайлExсelНаСервере(Адрес,Расширение)
    ДД=ПолучитьИзВременногоХранилища(Адрес);
    ИмяФайла=ПолучитьИмяВременногоФайла(Расширение);
    ДД.Записать(ИмяФайла);
    ТабДок=Новый ТабличныйДокумент;
    ТабДок.Прочитать(ИмяФайла,СпособЧтенияЗначенийТабличногоДокумента.Значение);
    УдалитьФайлы(ИмяФайла);
    КолСтрок=ТабДок.ПолучитьРазмерОбластиДанныхПоВертикали();
    Для к=1 По КолСтрок Цикл
        Артикул=СтрЗаменить(ТабДок.ПолучитьОбласть(к,1,к,1).ТекущаяОбласть.Текст,Символы.НПП,"");
        Цена=ТабДок.ПолучитьОбласть(к,3,к,3).ТекущаяОбласть.Текст;
    КонецЦикла;

КонецПроцедуры // ЗагрузитьФайлExсelНаСервере()
12 ArturDoo
 
15.12.20
13:55
(11)Спасибо большое
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.