Загрузка и обработка большого файла EXCEL в 1С с прогрессбаром

Задача: «фоново» загрузить файл эксель большого размера, с показом прогресса загрузки.

Решение:

В ходе выполнения задачи столкнулся с глюком платформы 1С, что при запуске фонового задания с параметром адреса временного хранилища файла, он приходит на сервер пустым. Потому пришлось делать «финт ушами», а именно перед запуском фонового задания, файл загрузить на сервер, получить его временное имя и уже затем передать его как параметр при запуске фонового задания.

Кроме того выплыла проблема с не рабочим способом передачи данных о загрузке при помощи хранения данных во «ВременныхХранилиах», описанным тут. Потому для получения прогресса воспользуемся возможностью зная идентификатор фонового процесса периодически получить с сервера данные выводимые при помощи «Сообщить()».

В общих модулях разместим следующий код фонового процесса:

Клиентская часть в управляемых формах:

1С: Генерация документа DOCX на сервере без установки WORD

Задача: создать по шаблону файл формата Word на сервере 1С предприятие. Кросплатформенно (т.е. никаких COMОбъект).

Первоначально было сделано на основе сохранения табличного документа генерируемого из Макета. Однако в нём сложно получить вычурную разметку, которая необходима в моем случае.

Решение: используем функционал БСП УправлениеПечатью, а именно функцию ИнициализироватьМакетОфисногоДокумента.

1.Создаем документа в формате OpenXML. Любым редактором. Хоть Word хоть LibreOffice. Без разницы. Разметку в нём делаем в соответствии с разделителями вида:

Подробнее о разметке тут

2. Создаем в конфигураторе 1С документ и макет с бинарными данными и загружаем в него этот файл.

3. В Менеджере документа размещаем:

4. В Форме документа размещаем:

В приведенном примере, файл формируется на сервере и открывается для наглядности в Word уже «готовым» на клиенте. В принципе ничего не мешает эту фазу исключить и сразу сохранять полученный с сервера файл куда угодно.