Домой / Интернет / 1с администрирование кластера серверов планировщик заданий. Автоматическое выключение компьютера. Получение объекта задания

1с администрирование кластера серверов планировщик заданий. Автоматическое выключение компьютера. Получение объекта задания

Работа предприятия и пользователя практически всегда нуждается в организации и планировании. Многие для этих целей пользуются сторонними органайзерами и календарями. В 8 версии программы, начиная с релиза 8.3.6.1977, реализована возможность самостоятельного создания планировщика заданий в 1С.

Для этих целей в платформе появился новый инструмент, получивший название «Планировщик».

Что такое планировщик

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

Как любой объект встроенного языка, Планировщик заданий в 1С имеет некоторый набор свойств, позволяющий произвести его программное заполнение:

  1. Текущие периоды отображения (по умолчанию программа устанавливает в качестве этого параметра текущую дату компьютера);
  2. Измерения (здесь можно указать разбиение работ по подразделениям, расписания по университетским группам, время работы и обеда по магазинам);
  3. Элементы (объекты, представляющие собой задачи к выполнению, предметы и т.д.).

На этом этапе важно понять: Планировщик не является объектом метаданных и никакой информации не хранит. Это всего лишь инструмент, позволяющий отобразить и упорядочить информацию, хранящуюся в других местах (чаще всего в справочниках, однако можно его синхронизировать и с внешними таблицами).

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

Элементы планировщика обладают следующим набором характеристик:

  • Начало и конец временного периода события;
  • Текстовое наполнение;
  • Картинка;
  • Хранимое значение (чаще всего это ссылка на элемент соответствующего справочника, но могут быть и документы).

Важно! Главным условием для хранимых данных является наличие двух полей с типом значения ДАТА, для установки начальной и конечной точки события.

Основные действия с планировщиком

Имея окно (рис.1) можно добавить новое событие. Для этого:


Рис.3

  • В частности, нажатие на надпись «Повторять» позволяет настроить периодичность задачи.

Настройка параметров отображения планировщика заданий в 1С

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

  1. Единица периодического варианта;
  2. Кратность периодического варианта;
  3. Положение шкалы времени.

На выше представленном примере первый реквизит имеет значение 1 час, второй -7, третий параметр принимает значение вверху.

Комбинируя и экспериментируя с этими реквизитами можно добиться отображения, наиболее четко выражающего стоящую задачу.

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

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

Вращением колесика мышки или соответствующими кнопками на форме (если они есть) можно осуществлять перемещение по календарю в окне обработки.

Решение некоторых сложностей в работе планировщика

В работе с планировщиком, как и со всяким другим новым инструментом, очень часто возникают вопросы. Попытаемся раскрыть основные.

Вопрос: Где можно найти Планировщик?

Ответ: Создав реквизит управляемой формы в версиях платформы выше 8.3.6.1977 можно задать ему тип планировщик (Рис.4), при этом в окне свойств реквизита можно настроить и шкалу времени, и отображаемые измерения и многие другие параметры.

Вопрос: Как получить от формы измененные данные касательно начального и конечного периода времени события?

Ответ: В модуле можно прописать процедуру ПриОкончанииРедактирования(), привязав её к соответствующему полю формы. В случае редактирования существующего элемента, последний можно получить с помощью свойства ВыделенныеЭлементы;

Вопрос: Какой код помогает изменить текущий отображаемый период?

Ответ: На форме можно создать кнопки «День», «Неделя», «Месяц», нижеприведенный код позволяет сменить режим отображения календаря (Рис.5)

Рис.5

Концепция асинхронного программирования

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

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

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

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

При синхронном выполнении у приложения есть только один поток. С помощью асинхронной модели программирования вы можете запускать множество параллельных потоков и во время их выполнения реагировать на новые действия пользователя. После того как n-поток выполнен, вы отображаете результат на экран.

Фоновые задания в «1С:Предприятие 8»

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

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

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

Клиент-серверный вариант

В клиент-серверном варианте планированием выполнения заданий занимается планировщик заданий, который физически располагается в менеджере кластера.

Планировщик периодически проверяет, не поступили ли запросы на выполнение фоновых заданий. Если есть задания, которые нужно выполнить, планировщик определяет наименее загруженные рабочие процессы кластера и последовательно назначает каждому из них свое задание на выполнение. Таким образом, один и тот же рабочий процесс потенциально может выполнять несколько заданий параллельно. После того как задание получено рабочим процессом, рабочий процесс устанавливает соединение с информационной базой и выполняет задание в рамках этого соединения. После выполнения задания рабочий процесс уведомляет планировщика об успешном или неуспешном выполнении задания.

Файловый вариант

Начиная с версии 8.3.3.641 платформы, разработчики значительно упростили работу с фоновыми заданиями в файловом варианте.

Раньше для автоматического выполнения заданий требовалось запускать отдельный, дополнительный сеанс «1С:Предприятия», используемый в качестве планировщика заданий. И в этом сеансе нужно было периодически выполнять метод встроенного языка ВыполнитьОбработкуЗаданий(). Такой подход был довольно громоздким, неудобным и сильно ограничивал использование фоновых и регламентных заданий в файловом варианте работы.

Теперь всё стало гораздо проще. Если стартует тонкий или толстый клиент, а также если у веб-сервера есть клиентские соединения, то в каждом из этих приложений автоматически запускается еще один поток с подключением к базе данных. Эти потоки занимаются тем, что выполняют фоновые и регламентные задания.

Каждое из перечисленных приложений выполняет собственные фоновые задания. Если приложение инициировало несколько фоновых заданий, то выполняются они последовательно, в порядке поступления.

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

Необходимо отметить, что фоновые задания - это объекты исключительно программные и их нельзя сохранить в базе данных. То есть мы можем только создать экземпляр класса, инициализировать его свойства и запустить его на выполнение.

Пример асинхронного выполнения кода в «1С:Предприятие 8»

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

Продемонстрируем всю простоту и изящество асинхронного выполнения кода в «1С:Предприятие 8»!

Шаг 1. Создадим новую ИБ для разработки конфигурации

Шаг 2. В конфигурации добавим общий модуль «АсинхронныеОбработчики»

Почему мы добавили общий модуль? Тут все просто: для выполнения асинхронных операций в «1С:Предприяте 8» применяются фоновые задания, у которых имеется свой менеджер - «МенеджерФоновыхЗадания». У этого объекта есть метод «Выполнить», с помощью которого как раз и запускается фоновое задание.

Обратимся к синтакс-помощнику.

Таким образом, нам понадобится общий модуль.

Шаг 3. В общем модуле «АиснхронныеОбработчики» добавим экспортную процедуру НашаДлительнаяОперация()

Процедура НашаДлительнаяОперация(Длительность) Экспорт // Имитация продолжительного действия (Длительность сек.). ДатаНачалаОперации = ТекущаяДата(); Пока ТекущаяДата() - ДатаНачалаОперации < Длительность Цикл КонецЦикла; КонецПроцедуры

Шаг 4. Добавляем в конфигурацию обработку «АсинхроннаяКонцепцияПрограммирования» (можно создать внешнюю обработку)

На форму добавляем один реквизит:

Длительность (Число)

и две команды

ВыполнитьДлительнуюОперацию;

ВыполнитьДлительнуюОперациюАсинхронно.

Шаг 5. Согласно синтакс-помощнику заполняем модуль формы

&НаКлиенте Процедура ВыполнитьДлительнуюОперацию(Команда) ВыполнитьДлительнуюОперациюНаСервере(); КонецПроцедуры &НаСервере Процедура ВыполнитьДлительнуюОперациюНаСервере() АсинхронныеОбработчики.НашаДлительнаяОперация(Длительность); КонецПроцедуры &НаКлиенте Процедура ВыполнитьДлительнуюОперациюАсинхронно(Команда) ВыполнитьДлительнуюОперациюАсинхронноНаСервере(); КонецПроцедуры &НаСервере Процедура ВыполнитьДлительнуюОперациюАсинхронноНаСервере() Параметры = Новый Массив; Параметры.Добавить(Длительность); ФоновыеЗадания.Выполнить("АсинхронныеОбработчики.НашаДлительнаяОперация", Параметры, Новый УникальныйИдентификатор, "Пример асинхронной концепции программирования"); КонецПроцедуры

Шаг 6. Запускаем и проверяем!

Результат:

Если мы нажимаем на кнопку «Выполнить длительную операцию», то пользовательский интерфейс на «Длительность» секунд блокируется;

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

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

Отладить программный код, который выполняется в «фоне» мы можем, если в параметрах отладки установим соответствующее свойство.

Пример асинхронного выполнения кода в «1С:Предприятие 8» с использование БСП

Пример реализации асинхронной концепции программирования в «1С:Предприятие 8» в БСП рассмотрим на примере обработки «Текущие дела».

Логика следующая: во время запуска программы инициализируется рабочая область начальной страницы, куда можно вывести форму обработки «Текущие дела». Эта форма заполняется текущими делами пользователя, а чтобы ее заполнить необходимо время. Если бы у разработчиков не было возможности асинхронно выполнять код, то на все время заполнения формы обработки пользовательский интерфейс был бы заблокирован!

Проанализируем программный код формы.

Событие формы «ПриСозданииНаСервере» вызывает процедуру «ЗапуститьФоновоеЗадание» - это то, что нам и нужно.

Не отвлекаясь на нюансы, анализируем данную процедуру

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

Для этого разработчики применяют метод ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>).



В подключаемой процедуре Подключаемый_ПроверитьВыполнениеЗадания() разработчики вызывают функцию ЗаданиеВыполнено(ИдентификаторЗадания)


Данная функция по идентификатору проверяет выполнения фонового задания.

Необходимо отметить, что в БСП разработаны общие модули поддержки работы длительных серверных операций.

Таким образом, асинхронная концепция программирования в «1С:Предприятие 8» незначительно увеличивает трудоемкость решения задач для разработчика, но заметно улучшает функциональность программы с точки зрения пользователя.

Не так давно вышла новая версия 8.3.6 программы «1С:Предприятие» .

Был подготовлен ряд изменений, которые должны сделать интерфейс Такси более удобным, повысить его юзабилити.

Юзабилити интерфейса Такси в версии 8.3.6

Команда «Показать в списке».

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

Теперь она называется «Показать в списке» :

Эта команда появится в форме записи регистра сведений и в формах объектов: справочников, документов, видов характеристик, бизнес-процессов, задач, видов расчетов, счетов, узлов плана обмена, таблиц внешнего источника и таблиц измерения куба внешнего источника данных.

Для документов, входящих в журналы, это будет не одна команда, а подменю. Оно позволит перейти как к списку документов, так и к любому из журналов, в которые этот документ входит.

Отображение картинки и текста в панели разделов.

Теперь пользователь может самостоятельно выбирать тот или другой вариант расположения:

картинка слева, текст — справа

или текст под картинкой.

Командная панель графической схемы.

В интерфейс Такси возвращена командная панель графической схемы. Для использования этой возможности никаких особенных умений не требуется. Просто у командной панели формы появился ещё один источник команд — графическая схема. Размещаете в форме графическую схему. Добавляете в форму группу — командная панель. Указываете для неё источник команд — графическая схема.

Интерфейс Такси в версии 8.3.6.

Поиск в меню функций.

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

Внешний вид меню функций немного изменился. В правом верхнем углу появилось поле поиска и пиктограмма настроек. Под пиктограмму настроек были убраны команды настройки панелей «Настройка навигации» и «Настройка действий».

А чтобы найти какую-нибудь команду, теперь достаточно просто начать набирать на клавиатуре искомые слова. Курсор автоматически перейдет в поле поиска, и в нём будут отображаться набираемые символы. Поиск выполняется одновременно по нескольким фрагментам строк. При наборе с клавиатуры фрагменты строк нужно отделять друг от друга пробелами.

Например, если вы хотите найти документы поступления, можно набрать «док», а затем через пробел «пост»:

Чтобы было проще ориентироваться в результатах поиска, платформа:

  • Подсвечивает найденные фрагменты строк (в том числе и в названиях подсистем и групп команд);
  • Отображает результаты в иерархии разделов и подсистем.

Если все результаты не помещаются в меню функций, то появляется полоса вертикальной прокрутки, и меню можно прокрутить мышью.

При поиске можно пользоваться только клавиатурой. Это удобно. Очистить поле поиска можно клавишей Esc. А вызвать само меню функций теперь можно клавишей F10.

Поиск выполняется на сервере. В момент выполнения поиска вместо пиктограммы лупы в левом верхнем углу отображается анимированная пиктограмма «круг».

Работа с нестандартным разрешением (DPI) экрана.

Мелкий шрифт и слабое зрение — это давняя проблема взаимодействия человека и компьютера. Решать её пытались в разное время, разные люди, разными способами. Программисты увеличивали размер шрифта в своих приложениях. Пользователи уменьшали размеры экрана, увеличивали разрешение (dpi) экрана. Разработчики Windows реализовывали масштабирование интерфейса. Но все эти способы так и не давали пользователю простого и удобного способа настроить приложение под свои потребности.

Проанализировав эти проблемы и отзывы, «1С:Предприятие» было переведено в режим dpi-aware. То есть теперь «1С:Предприятие» самостоятельно выполняет масштабирование.

Можно заметить, что исчезла размытость текстов. Элементы формы стали масштабироваться и отображаться так, как и должны (в старом варианте подвал табличной части оказывался «под» экраном). Используются корректные внутренние отступы, размещение и размеры элементов панелей (исчезла прокрутка панели разделов).

Планировщик.

Во многих конфигурациях возникает необходимость в отображении данных в виде календаря, расписания. Задачи визуального планирования, например, часто возникают при автоматизации салонов красоты, стоматологических и ветеринарных клиник, фитнес-центров и т.д. При большом желании такие задачи можно было частично автоматизировать, используя существующие в платформе инструменты. Однако реализация подобных решений всегда была очень трудоёмкой, а их функциональность — недостаточной. К тому же они плохо переносились из одной конфигурации в другую, и не гарантировали одинаковую работоспособность в разных клиентских приложениях и разных операционных системах.

По этим причинам в платформе версии 8.3.6 был реализован новый инструмент — Планировщик . Он предназначен для того, чтобы автоматизировать планирование задач, событий, встреч, составление календарей, расписаний и тому подобных задач.

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

Если все элементы, которые нужно отобразить, не помещаются в одну ячейку, вместо них Планировщик выводит надпись «+ Ещё» и количество элементов, которые скрыты. Нажав на эту надпись можно увидеть список всех скрытых элементов и открыть любой из них:

По желанию в планировщике можно включить или выключить отображение текущего времени.

Элементы планировщика могут отображать время начала и окончания, только время начала или не отображать время вообще.

Можно раскрасить интервалы фона чтобы, например, выделить другим цветом нерабочие часы или выходные дни.

Добавление данных в планировщик осуществляется простым щелчком мыши. При этом открывается окно быстрого редактирования элемента планировщика:

В этом окне вы можете задать текст элемента (события). Если нужно изменить другие свойства элемента, по кнопке « Редактировать» в этом окне открывается стандартная форма для редактирования элемента планировщика:

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

Редактирование существующих элементов вы можете выполнять как через эти формы, так и перетаскиванием элементов и изменением их границ с помощью мыши:

Планировщик поддерживает групповые операции редактирования. То есть вы можете выделить сразу несколько элементов и переместить, скопировать, изменить или удалить их:

Планировщик обеспечивает перетаскивание не только в пределах «себя самого», но и в/из других элементов формы. Эта возможность может быть полезна, например, для того, чтобы из общего списка дел, показанного в форме в виде таблицы, можно было перетащить в планировщик отдельные события.

Для любого элемента вы можете задать расписание — периодичность, с которой будет повторяться это событие. При этом можно ограничить интервал, в течение которого событие будет повторяться.

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

Зачастую пользователи жалуются на то, что «1С 8.3 тормозит»: медленно открываются формы документов, долго проводятся документы, запускается программа, долго формируются отчеты и так далее.

Причем такие «глюки» могут встречаться в разных программах:

Причины могут быть разные. Это не восстановлена проведения документов, слабый компьютер или сервер, неправильно сконфигурирован сервер 1С.

В этой статье я хочу рассмотреть одну из самых простых и распространенных причин медленной работы программы – . Данная инструкция будет актуальна для пользователей файловых баз на 1-2 пользователя, где нет конкуренции за ресурсы.

Если Вас интересует более серьезная оптимизация клиент-серверного варианты работы системы, посетите раздел сайта .

Где в 1С 8.3 регламентные задания

Не успел я загрузить программу, как в 1С выполнилось множество фоновых заданий. Посмотреть их можно, зайдя в меню «Администрирование», далее -«Поддержка и обслуживание»:

Получите 267 видеоуроков по 1С бесплатно:

Вот так выглядит окно с выполненными задачами:

А так полный список всех регламентных заданий, которые запускаются:

Среди этих задач видны такие, как « «, загрузка различных классификаторов, проверка актуальности версии программы и так далее. Например, мне ни к чему почти все эти задачи. Я не веду валютный учет, версии контролирую сам, классификаторы загружаю по необходимости.

Соответственно, в моих (и в большинстве случаев в Ваших) интересах отключить ненужные задачи.

Отключение регламентных и фоновых заданий в 1С 8.3

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

Развернутую инструкцию на примере Вы найдете далее.

Что такое регламентные и фоновые задания в 1С

  • Регламентные задания — это специальный механизм 1С предприятия 8.3, предназначенный для выполнения определенного действия по заданному расписанию.
  • Фоновое задание — объекты, порождаемые регламентным заданием, которые непосредственно выполняет заложенное действие без участия пользователя или программиста 1С 8.2.

Механизм регламентных и фоновых заданий работает в клиент-серверном режиме работы (SQL), благодаря функционалу СУБД. Если у вас файловая БД, то задание тоже можно настроить, но немного по другому принципу.

Настройка фоновых заданий в клиент-серверном режиме работы 1С

Для начала создадим новый объект метаданных — регламентное задание. Я назову свое задание «ЗагрузкаКурсовВалют». Рассмотрим палитру свойств данного объекта конфигурации:

Получите 267 видеоуроков по 1С бесплатно:

  • Имя метода — путь к процедуре, которая будет выполняться в фоновом задании по заданному расписанию. Процедура должна находиться в общем модуле. Рекомендуется не использовать типовые , а создать свой. Не забудьте, что фоновые задания исполняются на сервере!
  • Использование — признак использования регламентного задания.
  • Предопределенное — указывает, является ли регламентное задание предопределенным. Если хотите чтобы регламентное задание заработало сразу после помещения в БД, укажите этот признак. В противном случае вам необходимо будет использовать обработку «Консоль заданий» или вызывать запуск задания программно.
  • Количество повторов при аварийном завершении задания — сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
  • Интервал повтора при аварийном завершении задания — с какой периодичностью будет выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.

И самая интересная настройка — Расписание:

Тут настраивается интервал запуска процедуры, указанного в поле «Имя метода». Допустим я настроил

Внимание! Не забудьте отключить блокировку выполнения регламентных и фоновых заданий на уровне СУБД!

Сделать это можно в утилите администрирования клиент-серверного варианта либо при создания новой БД:

Настройка регламентных заданий в файловом режиме работы 1С

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

В файловом режиме инициализация регламентного задания происходит при запуске метода «ВыполнитьОбработкуЗаданий()».

Для определенного пользователя можно настроить запуск этого метод, используя другой метод —

ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>).

  • Имя процедуры — имя процедуры, подключаемой в качестве обработчика ожидания. Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля. Процедура должна располагаться на клиенте .
  • Интервал — период между выполнениями операций в секундах.
  • Однократно — как выполнять задание, один раз или нет.

ПодключитьОбработчикОжидания, 3600 ) ;

Двухминутное видео, в котором показано, как настроить регламентное задание в конфигураторе 1С: