Фоновое выполнение кода в 1С — это просто
Не буду растекаться мыслью по дереву и тянуть кота за все известные места, так как надеюсь, все согласятся, что фоновое выполнение это хорошо. Есть простой путь запускать любой код в фоне. Специалисты скорее всего такой способ используют, но что-то в инете я описания не встретил, решил выложить.
Перво-наперво создаем общий модуль с именем например "ФоновоеВыполнение" с галкой "Сервер". Добавим туда пару процедур:
Теперь для выполнения когда в любой момент мы можем поместить любую процедуру в текстовую переменную:
И вызывать ее выполнение:
Специальные предложения
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
А вообще примеров с ФЗ в интернете много, странно, что не нашли ничего.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Лениво проверять, но ИМХО в процедуре
ФоноваяПроцедура(ТекстМодуля,ПараметрыВыполнения)
Для Каждого ТекПараметр Из ПараметрыВыполнения Цикл
ПолныйТекстМодуля = ПолныйТекстМодуля+ТекПараметр.Ключ+»=ПараметрыВыполнения.»+ТекПараметр.Ключ+»;»+Символы.ПС;
КонецЦикла;
Первый параметр — это текст процедуры, откуда возьмется ТекПараметр.Ключ ?
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Плохо, что до сих пор разработчики 1С не добавили возможность запускать фоновые задания прямо из внешних обработок, открываемых интерактивно через меню Файл. Могли бы добавить возможность передавать в качестве параметра фоновому заданию — сам объект обработки, для копирования его в сеанс фонового задания и исполнения в нем скомпилированного кода.
Кроме того контроль прогресса фонового задания на стороне клиента надо выносить в отдельный поток вызывающий сервер для получения прогресса, а то сейчас видно, как меняется иконка курсора мышки на иконку ожидания при каждом периодическом опросе прогресса и добавляет задержку в работе пользователя.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(16)Согласен с Вами. Меня очень удивило, что автор не нашел статей по данному вопросу.
Тормозит 1С 8.3 — что делать? Как ускорить 1С за 3 минуты
Зачастую пользователи жалуются на то, что «1С 8.3 тормозит»: медленно открываются формы документов, долго проводятся документы, запускается программа, долго формируются отчеты и так далее.
Причем такие «глюки» могут встречаться в разных программах:
Причины могут быть разные. Это не восстановлена граница последовательности проведения документов, слабый компьютер или сервер, неправильно сконфигурирован сервер 1С.
В этой статье я хочу рассмотреть одну из самых простых и распространенных причин медленной работы программы – фоновые и регламентные задания. Данная инструкция будет актуальна для пользователей файловых баз на 1-2 пользователя, где нет конкуренции за ресурсы.
Если Вас интересует более серьезная оптимизация клиент-серверного варианты работы системы, посетите раздел сайта 1С Эксперт.
Где в 1С 8.3 регламентные задания
Не успел я загрузить программу, как в 1С выполнилось множество фоновых заданий. Посмотреть их можно, зайдя в меню «Администрирование», далее -«Поддержка и обслуживание»:
Вот так выглядит окно с выполненными задачами:
Получите понятные самоучители по 1С бесплатно:
А так полный список всех регламентных заданий, которые запускаются:
Среди этих задач видны такие, как «Загрузка валют«, загрузка различных классификаторов, проверка актуальности версии программы и так далее. Например, мне ни к чему почти все эти задачи. Я не веду валютный учет, версии контролирую сам, классификаторы загружаю по необходимости.
Соответственно, в моих (и в большинстве случаев в Ваших) интересах отключить ненужные задачи.
Отключение регламентных и фоновых заданий в 1С 8.3
Рассмотрим, как отключить регламентные фоновые операции. Включенные задачи отмечены зеленым флажком. Зайдем в одну из них двойным кликом. Например, в «Загрузку классификаторов банков«:
Чтобы отключить задание, снимем флажок «Включено». Нажимаем «Записать и закрыть». Теперь оно выполняться не будет. Таким образом нужно отключить все ненужные задачи. Если сомневаетесь насчет какого-либо задания, обратитесь к специалисту. Производительность программы должна значительно увеличиться.
Если база данных находится на сервере, специалистам по обслуживанию системы необходимо помнить, что при обновлении нужно принудительно отключать фоновые задания на сервере 1С: Предприятие, так как они будут мешать процедуре обновления.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Как отключить фоновые и регламентные задания и «ускорить» работу в 1С?
Рассылка выходит раз в неделю, Ваш адрес не будет передан посторонним лицам.
Нажимая на кнопку Отправить, я даю согласие на обработку персональных данных
Включенные фоновые задания могут затормозить работу программы.
Если войти в список включенных заданий (Администрирование-Регламентные и фоновые задания), то можно увидеть, что многие из них для абсолютного большинства бухгалтеров не нужны.
Например, «Извлечение текста», если пользователь не осуществляет полнотекстовый поиск по всем объектам нашей базы. Можно отключить(это можно включить обратно в любой момент), либо поставить в расписании 1 раз в день, либо отключить (это можно включить обратно в любой момент). Можно отключить загрузку курсов валют, если нет валютных операций или делают их изредка (тогда можно самостоятельно нажать кнопку загрузить курсы).
Не всегда нужно , чтобы 1С периодически подключался к сайту и проверял и обновлял классификаторы банков. Можно самостоятельно нажать кнопку обновить классификаторы, если нет нужного банка по его БИК.
Каждые 3 часа идет задание Обмен сообщениями по учетным записям документооборота – можно поставить 1 раз в день в расписании.
Обновление данных монитора руководителя – тоже каждые 3 часа. Если Вы не пользуетесь этими отчетами, то отключите. Или поставьте в расписании – 1 раз в день. И так — по всем остальным фоновым заданиям.
Обратить стоит внимание — регламентное задание Обновление индекса ППД. Если необходимо работать в панели инструментов с инструментом полнотекстового поиска данных («лупа»), то необходимо проверить, чтобы это регламентное задание делалось хотя бы раз в день и без ошибок.
1C запуск фоновых заданий — Пример работы с фоновыми заданиями 1С
В данной статье приведен пример работы с фоновыми заданиями, как в 1С производится запуск фоновых заданий, каким образом можно получить список заданий при помощи метода «ПолучитьФоновыеЗадания()». Итак, данный метод возвращает нам некоторый массив. Посмотрим что же он содержит.
На рисунке представленном выше видно содержимое данного массива.
Также там содержится информация о неудачном выполнении задания. Еще этот массив содержит информацию о ключах, уникальных идентификаторах, наименовании фоновых заданий. Информация о выполняющихся и выполненных заданиях хранится в информационной базе, но есть ограничение на количество хранимых записей в таблице. Это количество составляет порядка 1000 записей. То есть при добавлении новых элементов старые удаляются. Также задание удаляется из таблицы если оно было выполнено более суток назад.
Пример работы с фоновым заданием 1C — Метод «ПолучитьФоновыеЗадания»
Давайте также рассмотрим работу с фоновыми заданиями на примере метода «ПолучитьФоновыеЗадания()». В данном методе есть возможность установить отбор на получаемые записи. То есть в качестве параметра метода нам нужно передать структуру.
Например, если бы нам нужны были только выполняющиеся задания мы бы накладывали отбор с именем элемента структуры «Состояние» и значением бы мы указали системное перечисление «СостояниеФоновогоЗадания» в состояние активно. Итак, для начала необходимо добиться того, чтобы в демонстрационной базе появились записи о выполнении фоновых заданий 1С.
Для реализации примера сделаем следующее:
1. Создадим общий модуль «ОбработчикиФоновыхЗаданий», выполняемый на сервере.
И добавим в него следующий код:
Процедура ПроизвестиФоновоеВычисление ( Параметр ) Экспорт
Пока ТекущаяДата ( ) — ВремНач Цикл
2. Создадим обработку, разместим на форме кнопку «Выполнить задание в фоне» и в процедуре обработки события нажатия на кнопку добавим код:
Описание вызываемой процедуры:
Теперь запустим 1С в режиме предприятия и запустим выполнение фонового задания.
Добавим на форму еще одну кнопку «Получить фоновые задания». Напишем в процедуре обработки нажания следующий код:
Текст процедуры на сервере:
Запустим 1С на выполнение и нажмем кнопку «Получить фоновые задания».
Надеюсь приведенный выше пример дал вам некоторое понятие о механизме фоновых заданиях реализованном в системе 1С. Более детально ознакомиться со всеми тонкостями вы можете во встроенном синтакс-помошнике 1С.
Скачать базу с примером работы с фоновым заданием вы можете тут