Быстро прочесть из 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 не будет опубликован. Обязательные поля помечены *