Часто бывает, что возникает необходимость загрузить множество данных из разнообразных источников в определенную форму или рабочее место. В процессе загрузки пользователь в неведении — информация готовится или нет. Прием позволяет загружать данные из нескольких источников асинхронно, не блокируя форму\интерфейс, а также отображать ошибки и состояние прогресса. По мере готовности данных, они будут отображены на форме
версия платформы «1С:Предприятие 8» — не ниже 8.3.3.641;
версия БСП в конфигурации — не ниже 2.1.3.50;
разработка предназначена для управляемых форм;
обработка должна быть подключена к базе с помощью механизма БСП.
Схема работы методики
процедура «ПриСозданииНаСервере» сохраняет ссылку на дополнительную обработку, определяет вариант работы информационной базы (файловый, клиент-серверный) и инициализирует количество асинхронных заданий;
при нажатии кнопки «Старт» происходит запуск асинхронных заданий и подключается обработчик ожидания, который следит за работой заданий;
при каждом срабатывании обработчика ожидания, выполняется обновление индикаторов прогресса;
при завершении асинхронного задания, в форму приходит оповещение с результатом работы, который, в свою очередь, загружается в форму.
Технические нюансы
результаты работы асинхронного задания передаются с помощью адреса временного хранилища формы;
данные для индикатора прогресса в файловом варианте передаются с помощью адреса временного хранилища формы;
данные для индикатора прогресса в клиент-серверном варианте передаются с помощью «СообщениеПользователю» потому, что помещение данных из фонового задания в родительский сеанс происходит после завершения работы задания;
результаты заданий загружаются последовательно в файловом варианте и в произвольном порядке в клиент-серверном варианте;
в процессе работы не блокируется ни интерфейс, ни сама форма.
Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данных 1С в BI".
Решение отлично работает со всеми типовыми (и не только) конфигурациями 1С 8.3 для управляемых форм.
Gозволяет автоматизировать работу бизнес-аналитика по ежедневной выгрузке данных из 1С в БД ClickHouse для последующей работы с этой БД в Yandex Datalens/
Система полностью автоматизирует работу с хранилищем данных в БД Clickhouse. Не надо быть программистом, чтобы одной кнопкой получать любые данные из 1С в Yandex Datalens
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 организаций в конфигурацию 1С:Зарплата и управление персоналом, ред. 3 (ЗУП) и начать с ней работать с любого месяца года.
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.
Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.
Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП).
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх организаций в конфигурацию 1С:Зарплата и управление персоналом, ред. 3 (ЗУП) и начать с ней работать с любого месяца года.
Ну а чтобы быстрее разобраться в работе этой обработки, можно еще сюда заглянуть: Прогресс-бар длительных серверных операций (БСП) Суть практически та же, только на примере одного асинхронного задания.
ЗЫ. А зачем нужно по-разному обрабатывать файловую/клиент-сервер? Почему нельзя единообразно через "СообщениеПользователю"?
(2) herfis, СообщениеПользователю выполняет то, для чего не предназначено - передает данные. ПоместитьВХранилище() как раз то что нужно, но мне говорят что это ошибка платформы для файлового варианта :)
(3) Ага, т.е. причины только религиозного характера :)
На самом деле никакого "криминала" в использовании "СообщениеПользователю" я не вижу. Наоборот - довольно остроумное решение. Хотя и плохо, что в 1С нет более удобных механизмов для межпроцессного взаимодействия.
Временное хранилище совершенно очевидно не подходит для решения этой задачи, т.к. чтобы вернуть клиенту его новое значение нужно либо завершить текущий серверный вызов, либо специально для этой цели разработать механизм параллельной синхронизации, который тоже нельзя сделать красиво, т.к. клиент может узнать об изменении серверной версии данных хранилища только путем периодического опроса.
На файловой хранилище обновляется мгновенно, т.к. там всё локально. С точки зрения корректности эмуляции клиент-серверного режима это в самом деле ошибка.
ЗЫ. На самом деле фича, т.к. исправлять это поведение никто не будет так как для этого нужны доп. усилия и в целом это смысла не имеет.