08.07.2024 Андрей Прыкин 4635
Загрузка и выгрузка данных в многопоточном ре...

Содержание:



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


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


В данной статье мы рассмотрим, как реализовать многопоточную загрузку и выгрузку данных в "1С: Документооборот холдинга", приведём примеры программного кода и рассмотрим возможные сложности и их решения.  


1.    Загрузка данных в многопоточном режиме

 

Рассмотрим пример многопоточной загрузки данных из файла в систему 1С: Документооборот холдинга. Предположим, у нас есть файл CSV с данными о документах, которые нужно загрузить в систему, программный код для этого действия будет следующим:

«Процедура ЗагрузитьДанныеИзФайла(ИмяФайла)

    // Открытие файла и чтение данных

    Файл = Новый ТекстовыйДокумент;

    Файл.Открыть(ИмяФайла);

 

    // Создание задач для фоновых потоков

    Задачи = Новый Соответствие;

 

    Пока Не Файл.КонецФайла() Цикл

        Строка = Файл.ПрочитатьСтроку();

        Задача = Новый Структура;

        Задача.Вставить("Данные", Строка);

 

        // Создание фонового задания

        Задание = Новый ФоновоеЗадание;

        Задание.Параметры = Задача;

        Задание.ФоновоеЗадание = "ОбработатьДанные";

        Задачи.Вставить(Задание);

    КонецЦикла;

 

   // Запуск фоновых заданий

    Для Каждого Задание Из Задачи Цикл

        ЗапуститьФоновоеЗадание(Задание);

    КонецЦикла;

 

КонецПроцедуры

 

Процедура ОбработатьДанные(Параметры)

    // Обработка данных

    Данные = Параметры.Данные;

    // Пример обработки данных

    Сообщить("Обработка данных: " + Данные);

КонецПроцедуры»


В данном примере файл с данными читается построчно, и для каждой строки создаётся фоновое задание 1С. Фоновое задание 1С вызывает процедуру «ОбработатьДанные», которая обрабатывает полученные данные.  


2.    Выгрузка данных в многопоточном режиме в конфигурации 1С: Документооборот холдинга

 

Теперь рассмотрим пример многопоточной выгрузки данных из системы 1С: Документооборот холдинга в файл. Предположим, нам нужно выгрузить данные о документах в CSV файл, программный код для 1С, выполняющий это действие, представлен ниже:

«Процедура ВыгрузитьДанныеВФайл(ИмяФайла)

    // Создание файла для записи

    Файл = Новый ТекстовыйДокумент;

    Файл.Открыть(ИмяФайла, РежимОткрытияФайла.Запись);

 

    // Получение данных для выгрузки

    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ * ИЗ Справочник.Документы";

    Результат = Запрос.Выполнить().Выбрать();

 

    // Создание задач для фоновых потоков

    Задачи = Новый Соответствие;

 

    Пока Результат.НайтиСледующий() Цикл

        Задача = Новый Структура;

        Задача.Вставить("Документ", Результат);

 

        // Создание фонового задания

        Задание = Новый ФоновоеЗадание;

        Задание.Параметры = Задача;

        Задание.ФоновоеЗадание = "ОбработатьДокумент";

        Задачи.Вставить(Задание);

    КонецЦикла;

 

    // Запуск фоновых заданий

    Для Каждого Задание Из Задачи Цикл

        ЗапуститьФоновоеЗадание(Задание);

    КонецЦикла;

 

КонецПроцедуры

 

Процедура ОбработатьДокумент(Параметры)

    // Обработка документа и запись в файл

    Документ = Параметры.Документ;

    Строка = Документ.Код + ";" + Документ.Наименование + ";" + Документ.Дата;

    Файл.ЗаписатьСтроку(Строка);

КонецПроцедуры»


В данном примере создаётся файл для записи, выполняется запрос для получения данных о документах, и для каждого документа создаётся фоновое задание 1С. Фоновое задание 1С вызывает процедуру «ОбработатьДокумент», которая записывает данные в файл.  


3.    Плюсы и минусы многопоточности 1С

 

Рассмотрим какие позитивные стороны есть у использования многопоточности в конфигурации 1С: Документооборот холдинга:

·       Повышение производительности: Многопоточность позволяет значительно сократить время выполнения операций за счёт параллельного выполнения задач;

·       Эффективное использование ресурсов: Многопоточные приложения могут эффективно использовать многоядерные процессоры;

·       Улучшение отклика системы: Многопоточность позволяет выполнять длительные операции в фоновом режиме, не блокируя основной интерфейс пользователя.


Негативные стороны использования многопоточности следующие:

·       Сложность разработки: Разработка многопоточных приложений сложнее, так как требует учёта множества факторов, таких как синхронизация потоков и управление ресурсами;

·       Проблемы с отладкой: Ошибки в многопоточных приложениях сложнее обнаружить и исправить, так как они могут проявляться нерегулярно;

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


Выводы:

Многопоточность в конфигурации 1С: Документооборот холдинга предоставляет мощные инструменты для оптимизации процессов загрузки и выгрузки данных.


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


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

 

Специалист компании ООО "Кодерлайн"

Андрей Прыкин

 

 

Наши проекты

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

ООО "Смена"
ООО "Смена"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Комплексная автоматизация

Банк и касса
Расчеты с контрагентами
Торговые операции
Взаиморасчеты с...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки сп...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Управление цепочками поставок Оптовая торговля ...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

Внедренное типовое решение:
1С:Управление холдингом

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казнач...

Оптимизация производительности системы
ЗАО ИД «Комсомольская правда»

Отрасль:
Медиа

Внедренное типовое решение:
1С:Бухгалтерия

- Оптимизация производительности системы, в том числе сервера Postgre. ...

Автоматизация торговых операций на базе "1С:Управление торговлей" в ОАО "Авиазапчасть"
ОАО «Авиазапчасть»

Отрасль:
Авиационно-космическая промышленность

Внедренное типовое решение:
1С:Управление торговлей

- Оптовая торговля;
- Оформление заказов покупателей;
- Планирование прод...

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

Внедренное типовое решение:
1С:ERP. Управление холдингом

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ ...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение