Быстро прочесть из mxl/xls в таблицу значений и обработать её…


Открываем из файла или вставляем из буфера табличный документ, прописываем считывание для каждого нужного поля, получаем таблицу значений. Сохраняем её или обрабатываем произвольным алгоритмом.
UPD: в отдельную форму можно складировать полезные функции и процедуры, нужные в коде обработки.

Позволяет прочитать данные из таблицы, распознать и сопоставить их с данными базы по произвольным правилам, сохранить таблицу значений во временный файл, выполнить над таблицей значений произвольный алгоритм. Считывание ведётся из табличного документа, открытого или скопированного в соответствующую интерфейсную таблицу обработки, считываются тексты или расшифровки ячеек. Копировать, в принципе, можно и из Excel.

Применимо только для относительно простых таблиц (чтение из прямоугольных областей). Задействованы только средства 1С.

Написал сегодня утром для себя, одну частную задачку решал. А потом e.kogan заявила, что это можно и выложить, поэтому выкладываю. Простой, быстрый, незатейливый способ, эдакий подручный инструмент, но никак не полноценный блок. Картинки выложу чуть погодя.

Можно использовать при серверном вызове, нужные процедуры заэкспортированы и под сервер заточены.

Инструмент НЕ для пользователя, а для программиста. В нём надо писать код! Есть краткая справка, но почти нет защиты от дурака.

Прошу не плюсить, т.к. подобного тут и без меня выложено, и гораздо более навороченного, но, надеюсь, кому-нибудь и этот пригодится.

По заявке супруги доделал для УФ тонкого клиента, тоже пусть тут лежит. Заодно скриншоты добавил.

14 Comments

  1. cool.clo

    😀 Прошу не плюсить

    Альтруист однако!

    Reply
  2. Поручик

    Да ладно, мне не жалко

    Reply
  3. alexandr_astafiev

    а как файл xls открывать непонятно однако

    Reply
  4. Yashazz

    (3) А просто открыть файл в Excel’e и оттуда скопировать нужный фрагмент и вставить в табличный документ на первой закладке обработки. Иначе — никак, это не читалка из экселя.

    Reply
  5. daddy-don

    (4) ну это вы хватанули 🙂

    А если типы данных не совпадут, то что у меня в ТЗ будет — вместо число — строка? Или вместо Дата — число?

    Т.е. надо подстраивать код чтения с ТД в ТЗ — каждый раз под каждый лист Ексель?

    А если данные кусками, и что «не выделилось»? Или выделилось столько, что не влезет в ТД от 1С (там, по-моему, отнюдь не 65536 строк, а не 10 000 ли можно всего вбить)?

    А что помешало реализовать хотя бы выбор колонок/типов данных в них из исходного файла Ексель, раз уж надо быстро прочесть в ТЗ — если листы с разными данными, где же тут быстрота??

    Reply
  6. Yashazz

    (5) Что будет, то и будет. Считывается из ячейки в любом случае текст, т.е. строка. И да, код надо будет подстроить. И куски самому компоновать, ага.

    Ещё раз: это НЕ читалка из экселя, их тут и так навалом. Это подручный инструмент для mxl, который иногда применим для простых xls.

    Reply
  7. personazh

    Спасибо, очень пригодилась.

    Пришлось, правда, немного «доработать напильником» под свои нужды.

    Очень удивился, получив из таблицы в 3500 строк, только 400 строк в ТЗ 🙂

    Есть крайне неприятная «очепятка» в коде- на небольших таблицах этого не видно, но в результате данные ТД могут выгрузиться не полностью.

    У тебя вместо размеров ТД (ШиринаТаблицы,ВысотаТаблицы) везде используются размеры ЭУ ПолеТабличногоДокумента (ширина, высота).

    Исправь пожалуйста.

    Reply
  8. Yashazz

    (7) Упс, это я не учёл. Спасибо, перезалил исправленное.

    Reply
  9. SergBA

    А для 7.7 есть подобное?

    Reply
  10. redgoll

    Спасибо. Возможно, мне это пригодится для сверки остатков по УТ И БП.

    Reply
  11. v.l.

    Чем эта обработка лучше обработки с ИТС ЗагрузкаДанныхИзТабличногоДокумента?

    Reply
  12. Kov495

    А что за чтение файла многострадальное?

    Нельзя было через Построитель прочитать?

    Зря качал.

    Reply
  13. Yashazz

    (11) Ну хотя бы тем, что она появилась на пару-тройку лет раньше. Остальное не знаю, не сравнивал.

    (12) Если были вопросы или сомнения, можно было перечитать внимательно описание или сперва спросить меня.

    Reply
  14. grinder

    В описании ничего про построитель не сказано, знач нету)))))) быстро, умно, хитро))))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *