Не завершен переход на новую версию

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

В моем случае обработка пригодилась для завершения обновления 1С Управление торговлей до новой версии. После обновления выполняются дополнительные процедуры обработки данных, часть из которых у меня завершалась ошибкой. И в разделе администрирование — Обслуживание — Результаты обновления и дополнительная обработка данных было указано: «Не все процедуры удалось выполнить (выполнено 12 из 14).»

Одна из процедур завершилась ошибкой:
«Процедура «Документы» обработки данных завершилась с ошибкой:
«{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(4342)}: Произошло зацикливание процедуры обработки данных. Выполнение прервано. ВызватьИсключение ТекстИсключения;»

При установке пометки удаления на документ (у меня было из много в базе) возникала ошибка: «Ошибка при выполнении обработчика — ‘ПередЗаписью’ по причине:
{ОбщийМодуль.ОбновлениеИнформационнойБазы.Модуль(194)}: Действия с объектом временно запрещены, так как не завершен переход на новую версию программы.
Не завершены следующие процедуры обработки данных:

ОбработатьДанныеДляПереходаНаНовуюВерсию ВызватьИсключение Результат.ТекстИсключения.»

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

Открывать через Файл — Открыть.

Инструкция по применению:

1. Выбрать начало и окончание периода

2. Нажать на соответствующую кнопку

Инструкция по программированию:

Можно добавить любой вид документа, путем небольших манипуляций в коде:

Процедура УдалитьДокументы(ИмяДокумента) Зап=Новый Запрос(«ВЫБРАТЬ | Док1.Ссылка КАК Док |ИЗ | Документ.»+ИмяДокумента+» КАК Док1 |ГДЕ | Док1.ПометкаУдаления = ИСТИНА | И Док1.Дата МЕЖДУ &ДатаНач И &ДатаКон | |УПОРЯДОЧИТЬ ПО | Док1.Дата»); Зап.УстановитьПараметр(«ДатаНач»,ДатаНач); Зап.УстановитьПараметр(«ДатаКон»,ДатаКон); ТЗ=Зап.Выполнить().Выгрузить(); Для Каждого Стр ИЗ ТЗ Цикл ДокОб=Стр.Док.ПолучитьОбъект(); Сообщить(«Док:»+СокрЛП(Стр.Док)); Попытка ДокОб.Удалить(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Если Вопрос(«Нажмите ДА если прекратить?»,РежимДиалогаВопрос.ДаНетОтмена,2)=КодВозвратаДиалога.Да Тогда Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры Процедура УдалитьАктыСверокНажатие(Элемент) УдалитьДокументы(«АктСверкиВзаиморасчетов»); КонецПроцедуры Процедура УдалитьПКОНажатие(Элемент) УдалитьДокументы(«ПриходныйКассовыйОрдер»); КонецПроцедуры Процедура УдалитьРКОНажатие(Элемент) УдалитьДокументы(«РасходныйКассовыйОрдер»); КонецПроцедуры Процедура УдалитьСчетФактураВыданныйНажатие(Элемент) УдалитьДокументы(«СчетФактураВыданный»); КонецПроцедуры Процедура УдалитьРеализацииНажатие(Элемент) УдалитьДокументы(«РеализацияТоваровУслуг»); КонецПроцедуры Процедура УдалитьФормированиеЗаписейКнигиПродажНажатие(Элемент) УдалитьДокументы(«ФормированиеЗаписейКнигиПродаж»); КонецПроцедуры

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

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

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

В ИТ часто регламентированно выполняется мониторинг.

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

Аналогичные вещи существуют для вебмастеров – для проверки доступности сайта в течении суток.

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

Поговорим сегодня про них.

Регламентные задания 1С

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

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

Если используется файловая база данных, то задания не выполняются автоматически. Для этого нужно запустить один из сеансов 1С в режиме 1С Предприятие и в нем выполнить команду
ВыполнитьОбработкуЗаданий();

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

При использовании клиент-серверного варианта 1С задачи выполняются автоматически, на сервере. Само «регламентное задание» не «выполняется». При наступлении времени срабатывания — запускается фоновое задание, которое и выполняет задачу. Фоновое задание выполняется под пользователем Windows, под которым работает процесс программы сервера 1С.

Фоновые задания можно создавать из текста программы на языке 1С произвольно без регламентного задания 1С – для параллельных вычислений на сервере.

Выполнение регламентных заданий 1С можно отключить временно – в консоли управления сервером 1С.

Добавление регламентного задания 1С

Регламентные задания 1С находятся в конфигурации в ветке Общие/Регламентные задания 1С. Добавим новое регламентное задание 1С, укажем его имя.

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

Свойство регламентного задания 1С — Наименование задания – определяет название, под которым будет фигурировать задание в средствах управления заданиями.

Свойство регламентного задания 1С – Ключ – позволяет сгруппировать несколько разных регламентных заданий 1С. Одновременно может быть запущено только одно задание с одинаковым значением ключа. Само значение может быть произвольным. Пустое значение не учитывается при контроле (то есть считается не заполненным).

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

В типовых конфигурациях, например Бухгалтерии редакции 2.0, такие регламентные задания 1С как Обновление конфигурации и Пересчет итогов – предопределенные, а такие как Обмен данными или Отложенные движения – не предопределенные.

Использование – включает задание (то есть оно будет выполняться только если галочка Использование установлена).

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

Управление регламентным заданием 1С и мониторинг

Для управления регламентными заданиями 1С существует специальная типовая обработка Консоль заданий. Ее можно найти в том числе на дисках ИТС.

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

С помощью обработки консоль заданий можно:

  • Включить/выключить выполнение регламентного задания 1С
  • Назначить/изменить расписание регламентного задания 1С (да и другие параметры)
  • Указать пользователя 1С, от имени которого будет выполнена регламентное задание 1С
  • Посмотреть — какие задачи когда были выполнены и с каким результатом, ошибки выполнения заданий 1С
  • Выполнить задание.

Копии баз данных и регламентные задания 1С

Если используется серверная 1С, то бывает следующая ситуация:

  • В своих целях (например, для программирования) делается копия рабочей базы
  • В копии базы работается, тестируется и так далее
  • Забывается выключить регламентные задания 1С в такой тестовой базе.

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

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

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

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

Выполнение и невыполнение регламентных задач 1С

При создании регламентных заданий 1С необходимо помнить:

  • Задачи выполняются сами собой – их необходимо мониторить
  • Задачи выполняются в модуле на сервере
  • Задачи выполняются под другим пользователем Windows, под другими правами.

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

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

В-третьих, если задача имеет дело с чем-то вне базы 1С, то важное значение приобретают права пользователя Windows, под которым выполняется задание.

Особенно важен при разработке третий пункт. Если модуль не может быть выполнен на сервере – задание не будет выполняться в принципе. Для проверки нужно хотя бы раз запустить задание и посмотреть результат «Задание выполнено» в обработке Консоль заданий.

В системе 1С:Предприятие 8.3 предусмотрено довольно много способов повышения производительности и быстродействия. Один из вариантов – настройка регламентных и фоновых заданий.

Для начала кратко определим, что это такое, для чего они нужны и за что отвечают:

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

Как настроить регламентное задание и фоновое

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

В программе 1С 8.3 список заданий находится в «Администрирование-Настройки программы-Обслуживание».

Рис.1 Обслуживание

В «Обслуживание-Регламентные операции» находим ссылку на наши операции.

Рис.2 Регламентные операции

Перед нами список заданий, разделенных по виду на отдельных вкладках.

Рис.3 Список заданий

У Регламентных заданий указывается:

  • Наименование;
  • Состояние (выполняется или выполнено);
  • Дата окончания.

У Фоновых заданий:

  • Состояние (выполняется или выполнено);
  • Наименование;
  • Начало;
  • Окончание.

Рис.4 Задания

Рассмотрим регламентную операцию «Загрузка курсов валют». Заходим на соответствующую вкладку. С заданиями можно осуществлять следующие действия:

  • Включить – поставить флажок «включено»;
  • Выключить – снять флажок «включено», затем «Записать и закрыть». Так можно отключить задания, которые не представляются важными, и это значительно увеличит скорость работы в программе 1С;
  • Настроить расписание исполнения.

Рис.5 Загрузка курсов валют

Виды расписаний

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

Рис.6 Общее расписание

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

Рис.7 Дневное расписание

Недельное – на этой вкладке галочками мы отмечаем дни недели, а также количество повторений.

Рис.8 Недельное расписание

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

Рис.9 Месячное расписание

Добавление Регламентного задания

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

Рис.10 Добавление Регламентного задания

Далее выбираем «Конфигурация-Открыть конфигурацию». Затем открываем «Общие-Регламентные задания», нажимаем правой кнопкой мыши, появляется окошко «Добавить». Выбираем его.

Рис.11 Регламентные задания

Заполняем задание:

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

Рис.12 Заполняем задание

Также здесь мы можем настроить расписание задания. Нажимаем на кнопку «Расписание (Открыть)» и переходим к его заполнению.

Рис.13 Расписание (Открыть)

К примеру, нам нужно выполнять наше задание с 1 по 30 сентября один раз в день. Также мы можем настроить расписание исполнения Регламентного задания, как уже было описано выше.

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

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