Запись (чтение) таблицы значений в (из) файл Excel через ADO

В представленной обработке реализовано применение 2 функций, которые похожи на стандартные функции 1С:
1) ЗначениеВФайл(<ИмяФайла>,<Значение>)
2) ЗначениеИзФайла(<ИмяФайла>)
для таблицы значений.
Сама обработка (обычное приложение) большой ценности не представляет и решает задачу сравнения табличных полей документов инвентаризации в базах УТ10 и БП2.
Отказался от стандартных функций и написал свои, так как по каким-то причинам не удалось сохранить табличное поле документа в файл функцией ЗначениеВФайл.

Итак, синтаксис функций:

1) ТЗвФайл(<ТЗ>,<Файл>)

2) ТЗизФайла(<Файл>)

Видно, что синтаксис очень похож на стандартные функции, только здесь параметр <Файл> не является обязательным.

Есть и другие плюсы:

  • Таблица значений сериализуется в книгу Excel, где на первой странице таблица значений представлена в читабельном варианте, а на второй — во внутреннем представлении 1С. Это дает возможность проверить, что именно выгрузилось в файл, можно даже произвести какие-то манипуляции с данными на первом листе, так как для чтения ТЗ нужен только второй лист.
  • При десериализации, т.е. чтении ТЗ из файла Excel, восстанавливается точная копия таблицы значений, т.е. сохранены имена колонок, заголовки колонок, типы значений, ширина колонок. Например, ТЗ содержит ссылки на справочник номенклатуры, при чтении ТЗ из файла эти ссылки полностью восстановятся.
  • Скорость работы этих функций с использованием ADO, по сравнению с общепринятым способом чтения (записи) данных через COM приятно удивляет. Кстати, в обработке также представлены аналогичные функции, реализованные с использованием COM, так что можно сравнить работу.


Теперь принцип работы обработки. 

Запускаете обработку в базе УТ10. Выбираете документ инвентаризации и в табличное поле обработки считывается табличное поле документа. При нажатии кнопки «Записать Excel» появляется диалог выбора файла excel, в который и будет записана таблица значений.

Запускаете обработку в базе БП2. Выбираете соответствующий документ инвентаризации, а затем нажимаете кнопку «Прочитать Excel». При этом откроется диалог выбора файла для чтения, в котором нужно выбрать ранее сохраненный файл, и во втором табличном поле обработки появятся данные, считанные из файла. При этом автоматически строки, в которых не совпадает количество, подсветятся розовым цветом.

 

Перспективы.

Возможно, что с помощью данных функций можно также организовывать простые обмены между похожими конфигурациями.

Leave a Comment

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