Ошибка нет документов для запуска фонового перехода

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

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

Ниже несколько ссылок по фоновому выполнению кода:

  • Фоновое задание – это простопример запуска фонового задания из общего модуля. Самый простой вариант, без отслеживания выполнения задания.
  • Отображение прогресса выполнения длительных операций в БСП и их отладка в текущем сеансе – пример с использованием БСП. Запуск фонового задания, расположенного в общем модуле. Реализация собственной формы для отслеживания его выполнения.
  • Запуск фонового задания из внешней обработкиболее сложный пример с использованием БСП. Запуск фонового задания из внешней обработки и отслеживание выполнения задания средствами БСП.
  • Произвольный код в фоновом режиметакже запуск фонового задания из внешней обработке. Частичное использование БСП. Правда метод «ЗапуститьВыполнениеВФоне» является устаревшим на данный момент.

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

Второй и третий варианты хорошие, в них используется функционал БСП для отслеживания хода выполнения задания:

НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтаФорма);
НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина;
НастройкиОжидания.ВыводитьСообщения = Истина;
НастройкиОжидания.ТекстСообщения = НСтр("ru = 'Выполняется обработка данных.'");
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Неопределено, НастройкиОжидания);

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

Возьмем понемногу из всех вариантов, описанных выше, и получим следующее решение:

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

Для запуска фонового задания используем метод из БСП ДлительныеОперации.ВыполнитьВФоне.

Для отслеживания хода выполнения создадим на форме обработки два элемента управления: Прогресс и Тестовое поле.

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

Дальше возникает вопрос, как получать информацию из фонового задания?

Это можно сделать несколькими способами:

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

Будем пользоваться первым способом используя методы БСП:

  • ДлительныеОперации.СообщитьПрогресс
  • ДлительныеОперации.ПрочитатьПрогресс
  • ДлительныеОперации.СообщенияПользователю

Ниже привожу тексты модуля обработки и модуля формы:

Обработка выполнения в фоне

Тексты процедур модуля обработки

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Форма запуска задания";
НоваяКоманда.Идентификатор = " ФормаЗапускаЗадания";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Выполнение в фоне";
НоваяКоманда.Идентификатор = "ВыполнениеВФоне";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции

Создаем одну команда для открытия формы, вторую для выполнения в фоне.

Не забудьте указать версию БСП. Если ее не указать, запуск процедуры модуля обработки с указанием структуры параметров работать не будет.

Процедура ЗадержкаПоВремени(Время)

Дата = ТекущаяДата()+Время;
Пока Дата > ТекущаяДата() Цикл
КонецЦикла;

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

Процедура ВыполнитьКоманду(Идентификатор, Параметры) Экспорт

Если Идентификатор = "ВыполнениеВФоне" Тогда

ДатаНачала = Параметры.СтруктураДанных.ДатаНачала;
ДатаОкончания = Параметры.СтруктураДанных.ДатаОкончания;

Отказ = ПерепровестиДокументы(ДатаНачала, КоличествоДней);
Если Отказ тогда
ЗадержкаПоВремени (1);
Возврат;
КонецЕсли;

ДлительныеОперации.СообщитьПрогресс(100, "Документы успешно проведены!");
ЗадержкаПоВремени (1);

КонецЕсли;

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

Функция ПолучитьСписокДокументовНаСервере(ТекДата)

Запрос = новый Запрос("ВЫБРАТЬ
| ТоварыОрганизаций.Регистратор КАК Документ,
| ТоварыОрганизаций.Период КАК Период
|ИЗ
| РегистрНакопления.ТоварыОрганизаций КАК ТоварыОрганизаций
|ГДЕ
| ТоварыОрганизаций.Период >= &ДатаНачала
| И ТоварыОрганизаций.Период <= &ДатаОкончания
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизаций.Регистратор,
| ТоварыОрганизаций.Период
|
|УПОРЯДОЧИТЬ ПО
| Период");

Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ТекДата));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ТекДата));

Результат = Запрос.Выполнить();
СписокДокументов = Результат.Выгрузить();

Возврат СписокДокументов;

КонецФункции

Функция ПерепровестиДокументы(ТекДата, КоличествоДней)

ДокументыДляПроведения = ПолучитьСписокДокументовНаСервере(ТекДата);

ТекущийДокумент = 0;
ВсегоДокументов = ДокументыДляПроведения.Количество();

Для каждого СтрокаТЗ Из ДокументыДляПроведения Цикл

ДокументОбъект = СтрокаТЗ.Документ.ПолучитьОбъект();

Попытка
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
ДлительныеОперации.СообщитьПрогресс(-1, "Ошибка проведения документа: " + ДокументСсылка);
Возврат Истина;
КонецПопытки;

ТекущийДокумент = ТекущийДокумент + 1;
Если НЕ (ТекущийДокумент % 5) Тогда
ДлительныеОперации.СообщитьПрогресс(Формат(ТекущийДокумент/ВсегоДокументов*100, "ЧЦ=3; ЧДЦ="), "Выполняется проведение документа: " + ДокументСсылка);
КонецЕсли;

КонецЦикла;
Возврат Ложь;

КонецФункции

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

Тексты процедур модуля формы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ВнешняяОбработка = РеквизитФормыВЗначение("Объект");
Параметры.Свойство("ДополнительнаяОбработкаСсылка", ДополнительнаяОбработкаСсылка);

Если ДополнительнаяОбработкаСсылка = Неопределено Тогда
ДополнительнаяОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ВнешняяОбработка.Метаданные().Синоним);
КонецЕсли;

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

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

&НаСервере
Функция НачатьВыполнениеСервернойКомандыВФоне(ВыполняемаяКоманда, УникальныйИдентификатор)

ПараметрыПроцедуры = Новый Структура("ДополнительнаяОбработкаСсылка, ИдентификаторКоманды, СтруктураДанных");
ПараметрыПроцедуры.ДополнительнаяОбработкаСсылка = ВыполняемаяКоманда.Ссылка;
ПараметрыПроцедуры.ИдентификаторКоманды          = ВыполняемаяКоманда.Идентификатор;
ПараметрыПроцедуры.СтруктураДанных               = ВыполняемаяКоманда.СтруктураДанных;

НастройкиЗапуска = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
НастройкиЗапуска.НаименованиеФоновогоЗадания = НСтр("ru = 'Выполнение перепроведения документов'");

Возврат ДлительныеОперации.ВыполнитьВФоне("ДополнительныеОтчетыИОбработки.ВыполнитьКоманду", ПараметрыПроцедуры, НастройкиЗапуска);

КонецФункции

&НаКлиенте
Процедура ПерепровестиДокументы(Команда)

СтруктураДанных = новый Структура;
СтруктураДанных.Вставить("ДатаНачала", ДатаНачала);
СтруктураДанных.Вставить("ДатаОкончания", ДатаОкончания);

// выполнить команду в фоновом режиме
ВыполняемаяКоманда = Новый Структура("Ссылка, Идентификатор, СтруктураДанных", ДополнительнаяОбработкаСсылка, "ВыполнениеВФоне", СтруктураДанных);
ДлительнаяОперация = НачатьВыполнениеСервернойКомандыВФоне(ВыполняемаяКоманда, Новый УникальныйИдентификатор);

ИдентификаторЗадания = ДлительнаяОперация.ИдентификаторЗадания;
ПодключитьОбработчикОжидания("ПроверитьПрогрессВыполнения", 0.3, Истина);

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

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

&НаКлиенте
Процедура ПроверитьПрогрессВыполнения()

СтруктураДанныхВыполнения = ОбновитьПрогрессНаСервере(ИдентификаторЗадания);

Если СтруктураДанныхВыполнения.Свойство("ПроцентВыполнения") Тогда
ПроцентВыполнения = СтруктураДанныхВыполнения.ПроцентВыполнения;
КонецЕсли;

Если СтруктураДанныхВыполнения.Свойство("СостояниеВыполнения") Тогда
СостояниеВыполнения = СтруктураДанныхВыполнения.СостояниеВыполнения;
КонецЕсли;

Если НЕ СтруктураДанныхВыполнения.ЗаданиеВыполнено Тогда
ПодключитьОбработчикОжидания("ПроверитьПрогрессВыполнения", 0.3, Истина);
КонецЕсли;

КонецПроцедуры // ПроверитьПрогрессВыполнения()

&НаСервереБезКонтекста
Функция ОбновитьПрогрессНаСервере(ИдентификаторЗадания)

СтруктураДанныхВыполнения = новый Структура;
ЗавершитьЗадание = Ложь;

МассивСообщений = ДлительныеОперации.СообщенияПользователю(Ложь, ИдентификаторЗадания);
Если ТипЗнч(МассивСообщений) = Тип("ФиксированныйМассив") Тогда

Для Каждого СтрокаСообщения Из МассивСообщений Цикл
Сообщить(СтрокаСообщения.Текст);
КонецЦикла;

КонецЕсли;

РезультатВыгрузки = ДлительныеОперации.ПрочитатьПрогресс(ИдентификаторЗадания);
Если ТипЗнч(РезультатВыгрузки) = Тип("Структура") Тогда

Если РезультатВыгрузки.Свойство("Процент") Тогда

Если РезультатВыгрузки.Процент = -1 Тогда
ЗавершитьЗадание = Истина;
КонецЕсли;
СтруктураДанныхВыполнения.Вставить("ПроцентВыполнения", РезультатВыгрузки.Процент);

КонецЕсли;

Если РезультатВыгрузки.Свойство("Текст") Тогда
СтруктураДанныхВыполнения.Вставить("СостояниеВыполнения", РезультатВыгрузки.Текст);
КонецЕсли;

КонецЕсли;

Если ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания) Тогда
СтруктураДанныхВыполнения.Вставить("ЗаданиеВыполнено", Истина);
Иначе
СтруктураДанныхВыполнения.Вставить("ЗаданиеВыполнено", Ложь);
КонецЕсли;

Если ЗавершитьЗадание Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания);
СтруктураДанныхВыполнения.Вставить("ЗаданиеВыполнено", Истина);
КонецЕсли;

Возврат СтруктураДанныхВыполнения;

КонецФункции

Проверяем состояние выполнения задания. Информацию о стадии выполнения задания отображаем виде прогресса, расположенного на форме и текстового поля. Также выводим сообщения, сформированные в фоновом задании. Например, если будет ошибка проведения документа, информация будет выведена в текстовом поле и в окне сообщений формы.

Если задание не выполнено, подключаем опять обработчик ожидания. Если в задании была ошибка при проведении документа «РезультатВыгрузки.Процент = -1», закрываем его принудительно. На всякий случай, так как оно и так должно закрыться через секунду.

&НаКлиенте
Процедура ПериодПриИзменении(Элемент)

ДатаНачала = Период.ДатаНачала;
ДатаОкончания = Период.ДатаОкончания;

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

&НаКлиенте
Процедура ДатаНачаллаПриИзменении(Элемент)

Период.ДатаНачала = ДатаНачала;

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

&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)

Период.ДатаОкончания = ДатаОкончания;

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

&НаСервереБезКонтекста
Процедура ЗавершитьВыполнениеНаСервере(ИдентификаторЗадания)

ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания);

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

&НаКлиенте
Процедура ЗавершитьВыполнение(Команда)

ЗавершитьВыполнениеНаСервере(ИдентификаторЗадания);
ПроцентВыполнения = 0;
СостояниеВыполнения = "Выполнение прервано пользователем!"

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

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

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

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

До новых встреч!

Ошибка при подписании


14 апр 2017 06:54 #5172
от jakewow

Добрый день. При подписании форм, поле выбора сертификатов остается пустым (нельзя выбрать, нет ни 1 сертификата), а потом вылазит следующая ошибка (скриншот).

Версия браузера — Mozilla 51.0.1, пробовали версию браузера как 64 разрядную, так и 32, ставили 50 версию, ошибка остается прежней.

3.jpg

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


14 апр 2017 07:17 #5173
от Atlant

аналогичная ошибка, а на WinXP работает. Видимо что то сломалось для работы в win7

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


14 апр 2017 08:02 #5176
от neasea

Здравствуйте! У меня эта проблема решилась, после установки на компе последнего обновления Java.

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


17 апр 2017 02:1117 апр 2017 02:12 #5186
от MotoArhangel

Необходимо очистить от временных файлов java и mozilla.
На заметку. Для ЭБ лучше использовать 32 битные версии.

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


17 апр 2017 04:50 #5189
от shaburoff

А что Java для работы с электронным бюджетом должна быть установлена? Не видел в требованиях и ранее работало все без неё. Тоже у клиента столкнулся с такой проблемой при подписании отчетов, пока не смог победить. На своем рабочем компе попробовал таже фигня не подписывает. Хотя свои документы в ЭБ подписываю нормально. Это что разные документы в ЭБ по разному подписываются? Пробовал в браузерах Opera 36.0, Firefox 19.0.2, Internet Explorer.

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


17 апр 2017 06:38 #5192
от Alex_04

shaburoff пишет: А что Java для работы с электронным бюджетом должна быть установлена? Не видел в требованиях и ранее работало все без неё.

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

Хотя свои документы в ЭБ подписываю нормально… Пробовал в браузерах Opera 36.0, Firefox 19.0.2, Internet Explorer.

Подписывал нормально с компа с установленной Java? Версия Internet Explorer?



«Мы будем жить плохо, но недолго.» (© Черномырдин В.С.)

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


17 апр 2017 08:00 #5199
от Alexer81

да, плагин джавы нужен. много раз видел такую картинку у клиентов

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


17 апр 2017 09:2017 апр 2017 09:36 #5202
от shaburoff

Alex_04 пишет: Подписывал нормально с компа с установленной Java? Версия Internet Explorer?

Еще на этапе внедрения на чистой виртуальной машине без крипто-про и Java проверял всё работало и подписывало. Про это я уже писал на внутреннем форуме.
Свои документы в ЭБ решения на изменение СвР я согласовываю/утверждаю в opera 36.0 без проблем, Java 1.7 у меня стоит. А вот та отчетность клиента в ЭБ на моем компе не подписывается и хз почему.

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


17 апр 2017 11:3817 апр 2017 11:39 #5203
от Alex_04

shaburoff пишет: Еще на этапе внедрения на чистой виртуальной машине без крипто-про и Java проверял всё работало и подписывало.

Да, помню такое про «чистый эксперимент». :)

А вот та отчетность клиента в ЭБ на моем компе не подписывается и хз почему.

Оказывается иногда небесполезно «тормозить» с обновлением ОС на своем рабочем компе — на XP сижу и не жужжу…
А вот до АРМ «Интернет» как-то надо бы добраться и 7-ку с IE-10 все таки воткнуть (для ЕИС в случае клиентского «прихода»).



«Мы будем жить плохо, но недолго.» (© Черномырдин В.С.)

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


18 апр 2017 04:31 #5206
от shaburoff

Alex_04 пишет: А вот до АРМ «Интернет» как-то надо бы добраться и 7-ку с IE-10 все таки воткнуть (для ЕИС в случае клиентского «прихода»).

оффтоп: Не забудь на нем выключить UAC (он же контроль учетных записей), а то мне выделили не давно для инета по новее машину с установленной семеркой и IE11 и я не много попарился почему не могу зайти в ЕИС и ГМУ. Ишака 10-го поставил, плагины, Крипто-Про переустанавливал и не могу зайти и всё, вылетело из головы что наши ИС не любят UAC. :D

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


18 апр 2017 05:53 #5208
от Alex_04

shaburoff пишет: Не забудь на нем выключить UAC … наши ИС не любят UAC. :D

Это да — мелкомягкий софт тоже накладывает санкции на российской ПО, ну а мы, в свою очередь, накладываем на его санкции… :lol:



«Мы будем жить плохо, но недолго.» (© Черномырдин В.С.)

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


14 авг 2019 11:39 #13247
от finuprg

У меня та же ошибка и в мазиле и в гугле. Использую сертификаты гост-2012.В IE утром вошли без проблем по адресу lk2012.budget.gov.ru/udu-webcenter, но при обращении к сертификату пользователя обращается к контейнеру и уходит в плавание. Мозила версии 68.0.1

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


14 авг 2019 18:3714 авг 2019 18:45 #13249
от Wmffre

finuprg пишет: У меня та же ошибка и в мазиле и в гугле. Использую сертификаты гост-2012.В IE утром вошли без проблем по адресу lk2012.budget.gov.ru/udu-webcenter, но при обращении к сертификату пользователя обращается к контейнеру и уходит в плавание. Мозила версии 68.0.1

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

Также обратите внимание: для подписания в firefox должны быть установлены:
расширение Jinn sign extension
в firefox, Jinn sign extension provider версии 1.1.0.5 (из
файла внутри
), Jinn-client 1.0.3050.0, XC(eXtended Container).

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


09 сен 2019 08:07 #13422
от masiushakova

Коллеги, добрый день!!!Кто нибудь сталкивался при утвеждении РР в ПУР с ошибкой:»НЕТУ ДОКУМЕНТОВ ДЛЯ ЗАПУСКА ФОНОВОГО ПЕРЕХОДА»Очень прошу совета!  

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

ЗУП ошибка фонового задания при переходе с 3.1.9 на 3.1.10 ☑ 0

lg2marvel

12.12.19

09:47

Добрый день. Сабж.

Такая вот ошибка. При выполнении фонового задания

Процедура «Документы.ВозвратИзОтпускаПоУходуЗаРебенком.ЗаполнитьДвиженияЗанятостьПозицийШтатногоРасписания» обработки данных завершилась с ошибкой:

Превышено допустимое количество запусков процедуры обновления.

Выполнение прервано для предотвращения зацикливания механизма обработки данных.

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

{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6170)}:    ПередЗапускомПроцедурыОбработкиДанных(КонтекстОбработчика,

{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2828)}:    ОбработчикОбновления = НайтиОбработчикОбновления(КонтекстОбработчика, СведенияОбОбновлении);

{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2601)}:                Поток = ДобавитьПотокОбработчикаОтложенногоОбновления(ОписаниеПотоков, СведенияОбОбновлении);

Можно накатить следующее обновление — там тоже эта же ошибка, а если еще следующее то дальше ошибок нет. Но ведь это не правильно. Сталкивался кто-то? Как можно решить?

1

lg2marvel

12.12.19

09:58

Вот так выглядит процедура в модуле менеджера документа

Процедура ЗаполнитьДвиженияЗанятостьПозицийШтатногоРасписания(ПараметрыОбновления = Неопределено) Экспорт

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

    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

    
    Запрос.Текст =

        «ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000

        |    ТаблицаДокумента.Ссылка КАК Регистратор

        |ПОМЕСТИТЬ ВТРегистраторыКОбновлению

        |ИЗ

        |    Документ.ВозвратИзОтпускаПоУходуЗаРебенком КАК ТаблицаДокумента

        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников

        |        ПО ТаблицаДокумента.ОсновнойСотрудник = КадроваяИсторияСотрудников.Сотрудник

        |            И (КОНЕЦПЕРИОДА(ТаблицаДокумента.ДатаВозврата, ДЕНЬ) >= КадроваяИсторияСотрудников.Период)

        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗанятостьПозицийШтатногоРасписания КАК ЗанятостьПозицийШтатногоРасписания

        |        ПО ТаблицаДокумента.Ссылка = ЗанятостьПозицийШтатногоРасписания.Регистратор

        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратИзОтпускаПоУходуЗаРебенком КАК ТаблицаДокументаИсправления

        |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗанятостьПозицийШтатногоРасписанияИспр КАК ЗанятостьПозицийШтатногоРасписанияИспр

        |            ПО ТаблицаДокументаИсправления.Ссылка = ЗанятостьПозицийШтатногоРасписанияИспр.РегистраторИзмерение

        |        ПО ТаблицаДокумента.Ссылка = ТаблицаДокументаИсправления.ИсправленныйДокумент

        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтпускПоУходуЗаРебенком КАК ОтпускПоУходуЗаРебенком

        |        ПО ТаблицаДокумента.ДокументОснование = ОтпускПоУходуЗаРебенком.Ссылка

        |ГДЕ

        |    ТаблицаДокумента.Проведен

        |    И ОтпускПоУходуЗаРебенком.ОсвобождатьСтавку

        |    И ЗанятостьПозицийШтатногоРасписания.Регистратор ЕСТЬ NULL

        |    И ЗанятостьПозицийШтатногоРасписанияИспр.РегистраторИзмерение ЕСТЬ NULL

        |    И НЕ КадроваяИсторияСотрудников.Сотрудник ЕСТЬ NULL

        |;

        |

        |////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ ПЕРВЫЕ 1

        |    РегистраторыКОбновлению.Регистратор КАК Регистратор

        |ИЗ

        |    ВТРегистраторыКОбновлению КАК РегистраторыКОбновлению»;

    
    Если ПараметрыОбновления = Неопределено Тогда

        Запрос.Текст = СтрЗаменить(Запрос.Текст, «ПЕРВЫЕ 1000», «»);

    КонецЕсли;

2

unenu

12.12.19

09:59

не помню толи ошибка релиза платформы, толи ЗУПа, где-то в дебагах писалось.

обновились и забыли

3

unenu

12.12.19

10:01

«Можно накатить следующее обновление — там тоже эта же ошибка, а если еще следующее то дальше ошибок нет. Но ведь это не правильно.»

романтик штоле? ещё бы написали… это не справедливо, как жить после этого)

4

Фрэнки

12.12.19

10:03

Я бы перепроверил для начала, с взяты соответствующие друг другу релизы.

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

Если в файловой все было ок, а на сервере не хочет — два пути:

— выгрузить базу из файла и загрузить в сервер.

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

Ага, вспомнил. Релиз платформы может тоже дать свои фокусы.

И еще вспомнил, что да, в каком-то релизе 3.1.10 меняли/исправляли ошибку как раз с этими документами.

И еще :-) А каким релизом все-таки обновляешь? Можно же полным актуальным дистрибутивом накатить и он сразу все по идее сможет прокрутить. на ИТС потому и выкладывают полные дистрибы по ЗУП, что глюки на обновлениях с CFU все-таки случаются.

5

Фрэнки

12.12.19

10:06

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

6

dnab

12.12.19

10:07

(0) на мисте это обсуждалось, поищи

7

lg2marvel

12.12.19

10:13

(4) с 3.1.9.229 на 3.1.10.78. В файловую перевести это будет ооооочень плохо, там база около 20 гиг. База — копия оригинала, тестовая в ней никто не работает

8

d4rkmesa

12.12.19

10:23

(0) «Но ведь это не правильно. » — Смысла нет это мусолить. Можно попробовать обновить сначала на младший релиз(3.1.10.50). Бывают релизы с косяками обновления.

9

lg2marvel

12.12.19

10:35

(8) с 50 та же ситуация

10

d4rkmesa

12.12.19

10:36

11

Фрэнки

12.12.19

10:37

(7) т.е. разрешения регламентных проверил? и релиз платформы?

12

lg2marvel

12.12.19

10:43

(11) Да регламентные разрешены, платформа 8.3.15.1656

13

lg2marvel

12.12.19

10:44

(10) Спасибо за тему, попробую найти документ

14

lg2marvel

12.12.19

10:47

Линия поддержки ответила:

Для начала попробуйте в исходной базе (до обновления) полностью удалить все помеченные на удаление объекты, затем её протестировать и исправить.

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

15

Фрэнки

12.12.19

11:00

мда…

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

Процедура ЗарегистрироватьОбработчикиОбновления

Я бы на твоем месте попробовал самым последним CF обновиться и не дергать все промежуточные. Сразу на тестовой.

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

Кстати, а дата Запрета редактирования не прошлые периоды точно не установлена?

16

lg2marvel

12.12.19

11:13

(15) Стояла для раздела учета Зарплата, НДФЛ, убрал, посмотрим чем завершится.

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

Для 3.1.9.229 доступный самый последний релиз для обновления как раз 78.

Но все равно спасибо, если не получится — попробую cf-ником…

17

Фрэнки

12.12.19

12:36

(16) минуя промежуточные точно нельзя, когда для обновления берешь CFU

А если готовый CF есть, тогда можно.

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

Т.е. когда просматриваешь готовую эту процедуру в 3.1.10.78 и в самой последней 3.1.10 — последний продолжает первый.

18

mmmarat

12.12.19

15:15

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

19

lg2marvel

13.12.19

10:11

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

20

lg2marvel

13.12.19

10:20

(18) отработало. Спасибо

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

Вот один из таких способов в виде краткой пошаговой инструкции:

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

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

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

4. На компьютере с сервером 1С с помощью диспетчера задач ищем соответствующий ему процесс rphost.exe по PID отключенного рабочего процесса и удаляем его.

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

6. Готово. Можно войти в консоль заданий и проверить работоспособность регламентного задания.

Механизм заданий

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

Механизм заданий решает следующие задачи:

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

Механизм заданий состоит из следующих компонентов:

  • Метаданных регламентных заданий;
  • Регламентных заданий;
  • Фоновых заданий;
  • Планировщика заданий.

Фоновые задания — предназначены для выполнения прикладных задач асинхронно. Фоновые задания реализуются средствами встроенного языка.

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

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

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

Фоновые задания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Расписание регламентного задания определяет, в какие моменты времени регламентное задание должно быть запущено. Расписание позволяет задавать: дату и время начала и окончания выполнения задания, период выполнения, дни недели и месяцы, по которым нужно выполнять регламентное задание и др. (см. описание встроенного языка).

Примеры расписаний регламентных заданий:

Каждый час, только один день

ПериодПовтораДней = 0,
ПериодПовтораВТечениеДня = 3600

Каждый день один раз в день

ПериодПовтораДней = 1,
ПериодПовтораВТечениеДня = 0

Один день, один раз

ПериодПовтораДней = 0

Через день один раз в день

ПериодПовтораДней = 2

Каждый час с 01.00 до 07.00 каждый день

ПериодПовтораДней = 1

ПериодПовтораВТечениеДня = 3600

ВремяНачала = 01.00

ВремяКонца = 07.00

Каждую субботу и воскресенье в 09.00

ПериодПовтораДней = 1

ДниНедели = 6, 7

ВремяНачала = 09.00

Каждый день одну неделю, неделя пропуска

ПериодПовтораДней = 1

ПериодНедель = 2

В 01.00 один раз

ВремяНачала = 01.00

Последнее число каждого месяца в 9:00.

ПериодПовтораДней = 1

ДеньВМесяце = -1

ВремяНачала = 09.00

Пятое число каждого месяца в 9:00

ПериодПовтораДней = 1

ДеньВМесяце = 5

ВремяНачала = 09.00

Вторая среда каждого месяца в 9:00

ПериодПовтораДней = 1

ДеньНеделиВМесяце = 2

ДниНедели = 3

ВремяНачала = 09.00

Можно проверять, выполняется ли задание для заданной даты (метод ТребуетсяВыполнение объекта РасписаниеРегламентныхЗаданий). Регламентные задания всегда выполняются о имени определенного пользователя. Если пользователь регламентного задания не указан, то выполнение происходит от имени пользователя по умолчанию, имеющего административные права.

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

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

Важно помнить что Время конца
не обязательно завершит фоновое задание в указанное время.
Некоторые утверждения:

* Фоновое задание может проигнорировать свою автоматическую отмену, если оно не зависло, а продолжает работать по той причине,
что не все операции платформы можно отменить. Если выполняется циклический код встроенного языка, то задание отменить
можно в противном случае нет. Все зависит от того, что делает задание.
* Время конца — граница, в пределах которой задание может запускаться, а не завершаться?
* Принудительное завершение задания откатывает внесённые изменения к моменту начала транзакции?

Особенности выполнения фоновых заданий файловом и клиент-серверном вариантах

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

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

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

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

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

  • На информационную базу установлена явная блокировка регламентных заданий. Блокировка может быть установлена через консоль кластера;
  • На информационную базу установлена блокировка соединения. Блокировка может быть установлена через консоль кластера;
  • Из встроенного языка вызван метод УстановитьМонопольныйРежим() с параметром Истина;
  • В некоторых других случаях (например, при обновлении конфигурации базы данных).

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

Перед тем, как программно создать регламентное задание в информационной базе, необходимо создать для него объект метаданных.

Для создания объекта метаданных регламентного задания в дереве конфигурации в ветке «Общие» для ветки «Регламентные задания» выполните команду «Добавить» и в палитре свойств заполните следующие свойства регламентного задания:

Имя метода — указывается имя метода регламентного задания.

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

Расписание — указывается расписание регламентного задания. Для формирования расписания щелкните ссылку «Открыть» и в открывшейся форме расписания установите нужные значения.

На закладке «Общее» указываются дата начала и завершения задания и режим повтора.

На закладке «Дневное» указывается дневное расписание задания.

Укажите расписание:

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

Допускается указание произвольного сочетания условий.

На закладке «Недельное» указывается недельное расписание задания.

Установите флажки по тем дням недели, по которым задание будет выполняться. Если требуется повторять задание, укажите интервал повтора в неделях. Например, задание выполняется через 2 недели, значение повтора – 2.

На закладке «Месячное» указывается месячное расписание задания.

Установите флажки по тем месяцам, в которых задание будет выполняться. При необходимости можно указать конкретный день (месяца или недели) выполнения с начала месяца / недели или конца.

Использование — если установлено, то задание будет выполняться согласно расписанию.

Предопределенное — если установлено, то задание является предопределенным заданием.

Количество повторов при аварийном завершении — указывает количество повторов при аварийном завершении.

Интервал повтора при аварийном завершении — указывает интервал повтора при аварийном завершении.
Примеры

Создание фонового задания «Обновление индекса полнотекстового поиска»:

ФоновыеЗадания.Выполнить(«ОбновлениеИндексаПолнотекстовогоПоиска»);

Создание регламентного задания «Восстановление последовательностей»:

Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ПериодПовтораДней = 1;
Расписание.ПериодПовтораВТечениеДня = 0;

Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(«ВосстановлениеПоследовательностей»);
Задание.Расписание = Расписание;
Задание.Записать();

Консоль заданий

Обработка с ИТС, осуществляет управление регламентными заданиями:

Работа с регламентными заданиями

Объекты заданий

Объекты заданий не являются ссылочными, но хранятся в базе данных в каком-то специальном хранилище.

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

Если флаг «Предопределенное» не установлен, то объекты такого задания создаются и удаляются программно, с указанием расписания и параметров.

Получение списка заданий

Список заданий можно получить методом ПолучитьРегламентныеЗадания
глобального менеджера заданий РегламентныеЗадания

МенеджерРегламентныхЗаданий (ScheduledJobsManager)

ПолучитьРегламентныеЗадания (GetScheduledJobs)

Синтаксис:

ПолучитьРегламентныеЗадания(<Отбор>)

Параметры:

<Отбор> (необязательный)

Тип: Структура. Структура, задающая отбор. Значениями структуры могут быть: УникальныйИдентификатор, Ключ, Метаданные, Предопределенное, Использование, Наименование. Если отбор не задан, получаются все регламентные задания.

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

Возвращаемое значение:

Тип: Массив.

Описание:

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

Доступность:

Регламентные = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);

Для Каждого Регламентное из Регламентные Цикл
НоваяСтрока = СписокРегламентныхЗаданий.Добавить();
НоваяСтрока.Метаданные = Регламентное.Метаданные.Представление();
НоваяСтрока.Наименование = Регламентное.Наименование;
НоваяСтрока.Ключ = Регламентное.Ключ;
НоваяСтрока.Расписание = Регламентное.Расписание;
НоваяСтрока.Пользователь = Регламентное.ИмяПользователя;
НоваяСтрока.Предопределенное = Регламентное.Предопределенное;
НоваяСтрока.Использование = Регламентное.Использование;
НоваяСтрока.Идентификатор = Регламентное.УникальныйИдентификатор;

ПоследнееЗадание = Регламентное.ПоследнееЗадание;
Если ПоследнееЗадание <> Неопределено Тогда
НоваяСтрока.Выполнялось = ПоследнееЗадание.Начало;
НоваяСтрока.Состояние = ПоследнееЗадание.Состояние;
КонецЕсли;
КонецЦикла;

Создание

Создается методом СоздатьРегламентноеЗадание менеджера регламентных заданий:

РегламентноеЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание(МетаданныеВыбор);

РегламентноеЗадание.Наименование = Наименование;
РегламентноеЗадание.Ключ = Ключ;
РегламентноеЗадание.Использование = Использование;
РегламентноеЗадание.ИмяПользователя = ПользователиВыбор;
РегламентноеЗадание.КоличествоПовторовПриАварийномЗавершении = КоличествоПовторовПриАварийномЗавершении;
РегламентноеЗадание.ИнтервалПовтораПриАварийномЗавершении = ИнтервалПовтораПриАварийномЗавершении;
РегламентноеЗадание.Расписание = Расписание;
РегламентноеЗадание.Записать();

ОбъектЗадания = РегламентныеЗадания.СоздатьРегламентноеЗадание(«ВыполнениеОбмена»);

ОбъектЗадания.Наименование = Наименование;
ОбъектЗадания.Использование = Истина;

Объект задания имеет поле «Параметры», в котором задаются параметры метода:

РегламентноеЗадание (ScheduledJob)

Параметры
(Parameters)

Использование:

Чтение и запись.

Описание:

Тип: Массив. Массив параметров регламентного задания. Количество и состав параметров должен соответствовать параметрам метода регламентного задания.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Примечание:

Возможность чтения и записи доступны только для администратора.

Удаление

Удаляется методом Удалить() объекта задания:

РегламентноеЗадание.Удалить();

Получение объекта задания

  • списком через метод ПолучитьРегламентныеЗадания:

Регламентные = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);

  • через метод НайтиПоУникальномуИдентификатору менеджера заданий:

Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(УИД);

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

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

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

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

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

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

Какие же средства мы имеем для управления фоновыми заданиями? Этим средством является объект метаданных«МенеджерФоновыхЗадания»
. У этого объекта есть метод «Выполнить»
, с помощью этого метода, как раз и запускается фоновое задание.

Имеет он следующие параметры:

«ИмяМетода»
— имя процедуры или функции, которую нужно выполнить, причем это должна быть процедура или функция серверного контекста;

«Параметры»
— массив параметров, количество элементов которого должно соответствовать количеству параметров нашей процедуры/функции, указанной в параметре «ИмяМетода»
;

«Ключ»
— некий ключ уникальности, представляющий из себя строчку, по которой система понимает нужно ли запускать фоновое задание либо такое задание уже запущено;

«Наименование»
— здесь можно указать произвольное описание нашего метода.

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

Фоновое задание 1С 8.2, 8.3 — Пример использования

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

Для этого:

1. Создадим общий модуль «ОбработчикиФоновыхЗаданий»
, который будет компилироваться на стороне сервера;

2. Опишем в нем экспортную процедуру «ПроизветиФоновоеВычисление(Параметр)»
, которая принимает один параметр строкового типа;

Процедура
ПроизветиФоновоеВычисление(Параметр)
Экспорт

ВремНач =
ТекущаяДата()
;

Пока
ТекущаяДата()

ВремяНач <
=
6
Цикл

КонецЦикла
;

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

Процедура
КнНажатие()

ОбработчикиФоновыхЗаданий.
ПроизветиФоновоеВычисление(«Какой-то параметр»
)
;

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

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

Теперь обеспечим произведение этих вычислений в фоне, то есть чтобы фоновое задание 1С 8.2, 8.3 выполнялось, но нам не мешало.

Для этого:

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

Процедура
КнНажание()

Параметры =
Новый
Массив;

Параметры.
Добавить(«Какой-то параметр»
)
;

ФоновоеЗадание.
Выполнить
(«ОбработчикиФоновыхЗаданий.ПроизветиФоновоеВычисление»
,

Параметры,
Новый
УникальныйИдентификатор,
«Тестовое задание»
)
;

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

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

В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.

В моём случае обмен настраивается между конфигурациями «Управление торговлей 11.2» (далее УТ) и «Бухгалтерия предприятия 3.0.43» (далее БП). Обмен односторонний, из УТ в БП. До обновления «Управление торговлей 11.1» на версию «11.2» обмен данными был настроен с помощью конфигурации «Конвертация данных 2.0». Однако после перехода на «11.2» в «Управление торговлей» появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.

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

Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:

Структура объекта «/БанковскийСчетКонтрагента/Банк» не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1}КлючевыеСвойстваБанк

Проверка свойства «БИК»:

форма: Элемент

имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1}БИК

тип:

Отсутствует обязательное свойство

Объект: ДоговорСКонтрагентом № …

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

Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.

Следующий этап — загрузить данные из файла в Бухгалтерию предприятия. В конфигурации «Бухгалтерия предприятия» я нажал кнопку «Синхронизировать», открылась форма обработки с сообщением «Выполняется анализ данных». Чуть позже сообщение сменилось на «Выполняется выгрузка данных». При этом индикатор и счётчик показывали, что из БП выгружается более 80-ти тысяч объектов. Это меня смутило, ведь я указывал в настройках, что из БП ничего не должно выгружаться. Обработка выполнялась довольно долго и завершилась ошибкой:

Событие: Обмен данными

{ОбщийМодуль.ДлительныеОперации.Модуль(371)}: Аварийно завершился рабочий процесс фонового задания

ВызватьИсключение(ТекстОшибки);

Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.

При дальнейшей «обкатке» синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией «Конвертация данных 3.0». Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.

В итоге я загрузил в «Конвертация данных 3.0» следующие данные:

  • Тексты общего модуля «МенеджерОбменаДаннымиЧерезУниверсальныйФормат» из двух баз
  • Схема обеих баз
  • Описание формата EnterpriseData (из одной любой базы)
  • Правила конвертации

После загрузки открыл в «Конвертация данных 3.0» правила конвертации данных, объектов, свойств. Внёс необходимые мне правки. Затем воспользовался кнопкой «Выгрузить модуль менеджера обмена». Текст модуля скопировался в буфер обмена. Осталось только вставить его в конфигурацию.

Поэксперементировав с настройкой правил в «Конвертация данных 3.0», я для себя заключил, что в случае, когда вносимые правки незначительны, проще настраивать правила непосредственно в конфигурациях УТ и БП, в общем модуле «МенеджерОбменаДаннымиЧерезУниверсальныйФормат». Если же правки серъёзные, такие как, например, добавление нового объекта в обмен, тогда стоит воспользоваться конфигурацией «Конвертация данных 3.0″.

Задачу по добавлению документа «Заказ поставщику» в план обмена я выполнял с помощью »
Конвертация данных 3.0″. В стандартном варианте УТ — БП этого документа в плане обмена нет.

Будем помнить, что правила регистрации объектов для выгрузки попрежнему настраиваются в конфигурации «Конвертация данных 2.0».

Вот такие первые впечатления о синхронизации данных через универсальный формат EnterpriseData.

P.S. Если есть вопросы и собственные наблюдения по обмену данными через Универсальный формат и конфигурации »
Конвертация данных 3.0″, пишите в комментариях. Будем обмениваться опытом.

  • Синхронизация данных
  • Универсальный формат EntepriseData
  • Конвертация данных 3.0
  • Конвертация данных 2.0
  • Управление торговлей
  • Бухгалтерия предприятия

Вопрос: Аварийно завершился процесс фонового задания…

Всем доброго дня и хорошей недели!)

Бухгалтерия предприятия, редакция 3.0 (3.0.46.11).

Платформа 8.3.9.2033.

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

Перезагрузка сервера SQL, сервера 1С (мало ли) не помогает… Может, кто сталкивался с подобной проблемой??? Даже сложно сказать после чего появилась данная ошибка ибо групповым проведением (закрытием месяца) давно не пользовались…

Ответ:
() () Ещё раз добрый день) Включил технологический журнал и обнаружил вот такие интересные вещи (может в курсе с чем проблема?):

Сделана попытка выполнить операцию на объекте, не являющемся сокетом…

Процесс завершается. Исходящий вызов запрещен…

Не найдено ни одного сервера с размещенным сервисом…

Вопрос: Фоновые задания

Платформа 1С:Предприятие 8.3 (8.3.9.2170), конфа БП 3.0.
В конфигурации настроена интеграция через внешние источники данных (тип СУБД — OracleDatabase). Добавлен ряд таблиц, из которых идет загрузка НСИ, проводок. Т.к. данных очень много было решено сделать пакетную загрузку через фоновые задания. Размер порции — 100 000, размер пакета — 10 000, количество проводок в документе — 1000, количество одновременно работающих фоновых заданий — 8.
Запускаю, гружу, все ок. Но если ставлю на ночь, то такое ощущение, что 1с уходит в спящий режим, т.е. через какое-то время, как показывает лог, фоновые задания запускаются, но не завершаются. В итоге получилось, что задания запустились в 12 ночи, а были завершены в 8 утра (когда я пошурудил мышкой) и после этого продолжили выполняться далее в нормальном режиме. Запускал и в тонком и в толстом клиенте. В параметрах стоит настройка — время засыпания в пассивном сеансе 1200, но это разве не только на тонкий клиент распространяется и может ли быть в этом проблема? Отключать это не хочу, т.к. пользователи не выходят из программы, пусть засыпают. Может кто-то сталкивался с подобной проблемой? Как решили?

Ответ:

Нет такой возможности.

Смысл запускать фоновое задание и ждать его завершения?
чтобы не наплодить больше 8-ми фоновых заданий?

Перетащите «менеджер» фоновых заданий на сторону сервера и пусть контролирует….

Запускал на Pentuim D840 40-50 фоновых заданий — полет нормальный, дальше уже упирается в процессор/память.

Вопрос: Как передать файл в фоновое задание

Платформа 8.3.6.2152

Нужно из УФ передать файл в фоновое задание для последующей обработки.

Делал так:

&НаКлиенте

Процедура Команда1(Команда)
ФайлДД = Новый
ДвоичныеДанные(ИмяФайла);
АдресХранилищаДляФонового = ПоместитьВоВременноеХранилище(ФайлДД, УникальныйИдентификатор);
ЗапуститьВыгрузкуЗагрузкуНаСервере(АдресХранилищаДляФонового)
КонецПроцедуры

&НаСервере
Функция
ЗапуститьВыгрузкуЗагрузкуНаСервере(АдресХранилищаДляФонового)
ПараметрыМетода = Новый
Массив;
ПараметрыМетода.Добавить(АдресХранилищаДляФонового);
Задание = ФоновыеЗадания.Выполнить(«МойОбщийМодуль.МоеФоновое», ПараметрыМетода);
КонецФункции

В общем модуле:

Процедура МоеФоновое(АдресХранилища) Экспорт

ФайлДД = ПолучитьИзВременногоХранилища(АдресХранилища);
Если
ТипЗнч(ФайлДД) = Тип(«ДвоичныеДанные») Тогда

ЗаписьЖурналаРегистрации
ЗаписьЖурналаРегистрации
(«Отладка»,»Нет ДД»);
КонецЕсли
;
КонецПроцедуры

Пробовал так:
ПомещаемыеФайлы = Новый
Массив;
ПомещаемыеФайлы.Добавить(Новый
ОписаниеПередаваемогоФайла(ИмяФайла));
ПомещенныеФайлы = Новый
Массив;
Если
НЕ
ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, Ложь
, УникальныйИдентификатор) Тогда

Возврат
;
КонецЕсли
;
АдресХранилищаДляФонового = ПомещенныеФайлы.Хранение;
Пробовал так:
АдресХранилищаДляФонового = ПоместитьВоВременноеХранилище(Неопределено
, УникальныйИдентификатор);
ПоместитьФайл(АдресХранилищаДляФонового, ИмяФайла, Ложь
);

Из фонового на клиент через временное хранилище нормально передается, а вот с клиента в фоновое — никак почему-то.

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

&НаКлиенте

Процедура Команда1(Команда)
ЗапуститьВыгрузкуЗагрузкуНаСервере(Новый
ДвоичныеДанные(ИмяФайла))
КонецПроцедуры

&НаСервере
Функция
ЗапуститьВыгрузкуЗагрузкуНаСервере(ДД)
ПараметрыМетода = Новый
Массив;
ПараметрыМетода.Добавить(ДД);
Задание = ФоновыеЗадания.Выполнить(«МойОбщийМодуль.МоеФоновое», ПараметрыМетода);
КонецФункции

Процедура
МоеФоновое(ФайлДД) Экспорт

Если
ТипЗнч(ФайлДД) = Тип(«ДвоичныеДанные») Тогда

ЗаписьЖурналаРегистрации
(«Отладка»,»Есть ДД»);
Иначе

ЗаписьЖурналаРегистрации
(«Отладка»,»Нет ДД»);
КонецЕсли
;
КонецПроцедуры

Вопрос: Запуск фонового задания под нужным пользователем

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

Ответ:

Разве не под тем, под которым настроено?
Это должно быть глюк конфигурации

Lis2007 сказал(а):

Здравствуйте!При этом иногда регламентное задание выдавало ошибку, т.к. пыталось сделать движения в закрытом периоде (Ранее даты запрета редактирования). В настройках регламентного задания прописали специального пользователя, у которого дата запрета открыта, после этого все стало работать

Нажмите, чтобы раскрыть…

Вопрос: Отладка фонового задания

Фоновое задание выполняется с ошибкой. Решил отладить.

запускаю через внешнюю обработку с одной строкой:

ФоновыеЗадания.Выполнить(«МойМодуль.МоеЗадание»);

На точку останова в модуле не выходит.

Отладка на сервере разрешена, галка в отладке, автоматическое подключение, фоновые задания — стоит. В чем может быть ещё проблема?

Ответ:
В общих модулях было обращение к функциям требующих клиентского а не серверного выполнения. Пришлось посадить их в скобки #Если Клиент Тогда. Отработало и фоновое.

Вопрос: Ошибка при выполнении обмена

Добрый день
Подскажите, куда копать:

выполняю обмен в бухгалтерской базе. Из УТ-шки выгружается порядка трех десятков документов через типовой обмен. Долго думат (около часа) и завершается с сообщением:

аварийно завершился процесс фонового задания

1

2

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Юрий Яковлев

Дата регистрации: 13.02.2015
Сообщений: 19

При обновлении версии программы ошибка: Аварийно завершился процесс фонового задания
кто сталкивался с этим подскажите как исправить?

Геннадий С

Дата регистрации: 26.03.2017
Сообщений: 648

Юрий, а обновление-то прошло? Фоновые задания, запущенные перед обновлением, и должны завершаться принудительно.

Сергей Козырь

Дата регистрации: 03.10.2017
Сообщений: 1

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

Геннадий С

Дата регистрации: 26.03.2017
Сообщений: 648

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

Жертва 1С

Дата регистрации: 08.10.2016
Сообщений: 468

Цитата
Юрий пишет:

              При обновлении версии программы ошибка: Аварийно завершился процесс фонового задания
кто сталкивался с этим подскажите как исправить?

Не обновляться автоматически
Обновляйтесь из конфигуратора

Цитата
Геннадий пишет:

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

При автоматическом обновлении (ихз пользовательского режима) резервная копия делается автоматически

Janika

Дата регистрации: 20.11.2009
Сообщений: 7

Добрый день. Помогите пожалуйста. Не нашла как вопрос задать, решила в похожей теме задать. Выключилось электричество во время работы. Файл базы данных поврежден. Проделала все инструкции (восстановление утилитой и конфигуратором). Выдает, что ошибок нет. Загрузила последнюю сохраненную выгрузку. Так теперь даже войти не получается, сразу всплывает окно-Файл базы данных поврежден. Что делать? (1С Предприятие 8.3 Управление торговлей базовая, редакция 11.3)

Юрий Яковлев

Дата регистрации: 13.02.2015
Сообщений: 19

Юрий Яковлев

Дата регистрации: 13.02.2015
Сообщений: 19

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

Janika

Дата регистрации: 20.11.2009
Сообщений: 7

Юрий, пробовала-не выходит. Попробую кэш очистить.

Janika

Дата регистрации: 20.11.2009
Сообщений: 7

Добрый вечер. Теперь кэш не могу найти(( Открываю окно запуска 1С, выбираю настройки. Там адрес (в инете пишут что это и есть адрес кэша): С\Users\Admin\AppDate\Roaming\1C\1cv8\tmplts. Нашла я вот С\Users\Admin\AppDate\Roaming но там одна папка uTorrent и в ней ничего похожего на 1С нет(((
Когда ошибка вылазит :файл поврежден, то, если нажать на Информацию для техподдержки, то поврежденный файл указывают С\Users\Admin\AppDate\Local\1C\1cv8\7a60182b-39cc-4aca-88e2-0ff20c4f8b07\5a0a991a-1fea-4e4b-a1c2-13d6326e0ae8\vrs-cache\cache/1CD
В uTorrent есть папка dlimagecache. В ней три файла с длинными названиями. Может это и есть кэш?

Читают тему:

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Ошибка новый соперник
  • Ошибка ниссан примера р12 р0335
  • Ошибка ниссан патфайндер р1614
  • Ошибка ниссан патрол y62 список ошибок
  • Ошибка ниссан ноте p0340

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии