Правильно!!! Попросить кого-то сделать всю грязную работу!
И в моем случае это 1С 8.3 — да, да … Вот такой вот велосипед (на костылях).
Была поставлена задача — автоматизировать загрузку данных из Excel. Использование платформы 1С 8.2 было одним из условий. Перепробовал разные способы, из на Инфостарте много, от классического Excel.Application до внешних компонент. Но каждый способ показывал в процессе эксплуатации какие-то минусы. Вот и родилась идея воспользоваться возможностями платформы 8.3, чтобы преобразовать исходный файл *.xls(*.xlsx) в *.mxl, а потом обрабатывать его как «родной». В обработке к публикации пример преобразования от исходного файла, до открытия в 1С табличного документа. Последовательность действий работы следующая:
- По COM подключаемся из 8.2 к 8.3;
- Из 8.3 открываем файл Excel-ем;
- Каждый лист Excel сохраняем в отдельный временный файл;
- Читаем этот временный файл в ТабличныйДокумент 1С 8.3 и сохраняем в файл формата mxl;
- Читаем файл mxl в ТабличныйДокумент 1С 8.2 и показываем пользователю (или дальнейшая обработка);
Получилось очень даже прилично. И скорость нормальная, и «минусов», которые раньше мешали, пока нет. Не Бог весть что, но, может, кому пригодится.
Я сделал файл-пример, в котором 3 листа, на которых заполнено разное кол-во колонок, и они разной ширины. На картинках показано, как файл с примером будет выглядеть, если его просто открыть в 1С 8.3 и как тот же файл будет открыт обработкой, НО … на 8.2 🙂
Плюс за идею, но вот как будет с практической применимостью? 🙂
не проще ли обновить платформу?
А вот так пробовали? Проще некуда.
ТаблицаМассивов — тут весь ваш лист. Так, на мой взгляд, проще и быстрей. Для вашей задачи осталось добавить перебор листов и готово.
(2) 🙁 Пока нет возможности
(3) Обязательно попробую. Спасибо.
(1) Пока отлично работает. Тьфу-тьфу.
Я поступал проще и заставлял пользователя делать контрол це — контрол вэ в таб. документ на форме, когда совсем лень было. + шапку нужную для распознавания можно без сохранения файла сделать
(3) Прикольная штука, но вот «косяк» который она не ловитhttp://prntscr.com/c1vg9m
Значение в поле «Штрихкод» начинается с «00» и сделали это через формат ячейки.
И данным методом эти нули я не получаю ( здесь можно долго рассуждать — но мы не будем), а мне они нужны.
Но за метод все равно большое спасибо.