Ситуация. У вас есть excel-файл с данным. Вам нужно в нем средствами платформы 1с добавить колонку со значениями. При чем присоединять желательно не построчно, а разом, все значения целиком. Иначе если файл большой, то этот процесс займет неприлично долгое время! Оказывается такое возможно с помощью COMSafeArray!
Итак у вас есть какие то данные, хранящиеся в одномерном массиве, например колонка Артикулов.
ИсходныйМассив = Выгрузка.ВыгрузитьКолонку("Артикул");Создаем из него двумерный массив
Массив1 = новый Массив;
Массив1.Добавить(ИсходныйМассив);
Далее используем многомерный массив SAFEARRAY для обмена данными между COM-объектами, т.е. между 1с и Excel. Создадим его с помощью оболочки COMSafeArray. Подробно о ней почитайте в синтакс-помошнике.
Общая процедура создания SAFEARRAY
// Создание COMSafeArrayПоэтому мы создаем наш SAFEARRAY вот так
МассивКом = Новый COMSafeArray(«VT_Variant», ВсегоКолонок, ВсегоСтрок);
// Заполнение COMSafeArray
Для Стр = 0 По ВсегоСтрок — 1 Цикл
Для Кол = 0 По ВсегоКолонок — 1 Цикл
МассивКом.SetValue(Кол, Стр, Значение);
КонецЦикла;
КонецЦикла;
МассивКОМ = Новый COMSafeArray(МАссив1, "VT_VARIANT", 1, ИсходныйМассив.Количество() );Выбираем в экселе столбик ячеек в одной колонке
СтолбикАртикул = Лист.Range(Лист.Cells(5, 5),Лист.Cells(ВсегоСтрок, 5));Меняем формат ячеек на строковый, если нужно
СтолбикАртикул .NumberFormat = "@";И просто присваиваем значению Value целиком весь массив
ПопыткаЗатем не забудьте сохранить файл
СтолбикАртикул.Value = МассивКОМ;
Исключение
Эксель.WorkBooks.close();
Эксель.Quit();
Сообщить("Ошибка при вставке массива. Подробно: " + ОписаниеОшибки());
Возврат
КонецПопытки;
//Записываем файлМаленьких открытий каждый день!
Попытка
Эксель.ActiveWorkBook.save();
Состояние("Файл успешно сохранен!");
Эксель.WorkBooks.close();
Эксель.Quit();
Исключение
Сообщить("Файл не сохранен! "+ОписаниеОшибки());
КонецПопытки;
One of our metal distributors can provide you with a quote and let you you to} find out about our delivery and pickup options. We will customise porous metallic sheet to suit with|swimsuit} your|to fit your} software and specs. Using proprietary manufacturing techniques, Mott manufactures the thinnest porous metallic sheet in the industry down to down to} .007”. Typical uses for software of stainless-steel sheets onto partitions. Although aluminum sheet metallic is light-weight, it is also quite sturdy at Direct CNC the same time. Because of its power, mixed with its light-weight function, it's extremely helpful in varied industrial applications.
ОтветитьУдалить