Добрый день
Платформа 8.3.13.1644, Конфигурация Розница, редакция 2.2 (2.2.11.16)
После непонятных событий не обновляется и не открывается форма Регламентных и фоновых заданий. Скриншот во вложении.
Падает в модуле РегламентныеЗаданияСлужебный, функция ОбновленнаяТаблицаРегламентныхЗаданий на строке:
ТекущиеЗадания = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Т.е. не отрабатывает метод МенеджераРегламентныхЗаданий.
Ошибка -
Платформа: 1С:Предприятие 8.3 (8.3.13.1644)
Конфигурация: Розница, редакция 2.2 (2.2.11.16) (http://v8.1c.ru/retail/)
Copyright (С) ООО "1C-Софт", 2009 – 2018
(http://www.1c.ru)

Расширения конфигурации:
- АЛГК (1)

Режим: Серверный (сжатие: усиленное)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский
Вариант интерфейса: Такси

Ошибки:
--------------------------------------------------------------------------------
11.01.2019 14:00:46
Неверный формат хранилища данных ''
Два дня назад всё работало(
Есть идеи как починить? Или где хранится список регламентных заданий? Т.е. как можно получить их или очистить или переформировать без указанного метода?
---
Поскольку есть РИБ с тормозным интернетом, то на рабочей снимать с поддержки Регламентное задание Отложенное обновление ИБ, а потом объединять с конфигурацией поставщика по этому объекту не самое лучшее сейчас решение, то решение вот такое:
1. Таблица данного регламентного задания в базе у меня называется _ScheduledJobs5086
2. Поднял копию рабочей базы в которой работали регламентные задания, сверил в SQL все поля таблицы данных для данного регламентного задания. Отличалось только поле _Parameters
3. На SQL для рабочей базы:
use рабочаябаза;
delete from _ScheduledJobs5086;
4. Затем там же:
use рабочаябаза;
insert _ScheduledJobs5086 sel ect * fr om живая_копия.dbo._ScheduledJobs5086;

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

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

```1c
    ТекущиеЗадания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Предопределенное", Истина));
```
---
Да, аналогично.
---
проверьте на неломаной платформе, если платформа ломаная
---
Платформа неломанная.
---
С другого компа не пробовали? Может кэш почистить надо.
---
А конфа типовая?
---
Конфа типовая, очень мелкие изменения (добавлен свой план обмена, 1 регистр), еще несколько мелких изменений форм в расширении.
---
Пробовали ставить платформу меньше?
---
Нет, т.к. по требованиям конфигурации Внимание! Текущая версия конфигурации "Розница" предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.13.1644.
---
Итого что испробовано:
1. Чистка кэшей на клиенте и сервере.
2. Аналогичная ситуация на другом компьютере (т.е. на другом тоже пробовали).
3. База выгружалась в dt и загружалась обратно, в т.ч. с пересозданием базы.
4. База выгружалась и загружалась обратно средствами SQL в т.ч. с пересозданием базы.
5. Полная реструктуризация средствами SQL
6. ТИИ по всем пунктам вместе и отдельно.
7. Выборка данных на SQL из всех таблиц _ScheduledJobs, SQL не ругается, всё показывает.
8. Удаление одной из этих таблиц, после чего 1С при обновлении ругается на недопустимое имя этой удаленной таблицы через MS SQL Сlient. Вероятно обходит по метаданным?
9. Удаление сценариев синхронизации и отключение синхронизации данных (подозрение было на них).
---
Попробуйте открыть список от другого пользователя (с соотв. правами).
Попробуйте пересоздать базу в списке баз.
---
Пробовали, аналогично.
---
Ну да...херовина неописанная.

Если sql под рукой. Создай пустую базу (пустая конфигурация), в ней создай 1 рег. задание. Появится таблица _ScheduledJobs. Запусти его.
Лезь в скул и ищи таблицу с историей. Написано, что хранит 1000 записей и как минимум последнние 3.

Как найдешь - грохай (очистить записи) и смотри живая базенка или нет. Потом на копии боевой. Потом в боевой. Если получится - отпишись как табличка называется
---
Попробовал. Регламентное предопределенное задание, консолью заданий добавил расписание на каждые 5 сек. с выполнение процедуры общего модулю. Все выполняется, запускается. На скуле есть соответствующая таблица. К сожалению, не совсем соответствует описанию с ИТС, т.е. таблицы _ScheduledJobs нет, а есть _ScheduledJobs<N> под каждое регламентное задание. Таблицы с историей не SQL обнаружено( Могу предположить, что хранит в журнале регистрации.
---
ну журнал не переносится с компа на комп и при создании баз.
_ScheduledJobs - это тип префикса метаданных. А потом каждое рег задание свой номер получает.

А после выполнения база растет? Ну выполнилось оно за 5 мин ~ 60 раз. Может где-то здесь записи появляются?

"UsersWorkHistory"
"ExtensionsInfo"

Не может ж быть, что данные в нарнию попадают(((
---
Ни одной новой строки в таблицах( Тоже не верил в нарнию, пока не попробовал. Те таблички вообще пустые.
---
Собственно, история получется опять же менеджером МассивЗаданий=ФоновыеЗадания.ПолучитьФоновыеЗадания(), и показывается. А вот откуда она - непонятно.
---
Ну я попробовал собрать технологический журнал на файловой. Вышла херня непонятная. Сейчас постгрес поставлю на виртуалку
---
И творится это на всех вновь созданных базах?
---
Нет, только на этой одной
---
Выгрузить базу в DT. Создать файловую базу, загрузить. Смотреть как поведет. Чтобы понимать в чем проблема 1с или скуль
---
Пробовали, аналогично. Сейчас еще по ней каким-нть chdbfl пройдемся.
---
Ну тогда точно не проблема скуля или платформы. после chdbfl еще тест в конфигураторе делайте.
---
Завершилось без ошибок, результат тот же)
---
chdbfl не всегда "нормально" лечит, и может навредить...
---
Я бы попробовал бы на всех регламентных заданий в конфигураторе сначала убрать галочки предопределенный, потом сохранить, потом поставить обратно и опять сохранить конфу. Дело скорее в структуре метаданных
---
К сожалению, аналогичный результат.
---
Тогда можно попробовать загрузить аналогичную конфигурацию. Не объединить, а загрузить.
---
Пока попробовал из конфигурации удалить вообще все регламентные задания, потом объединить с конфигурацией поставщика. Форма регламентных и фоновых заданий стала без ошибки показывать регламентные задания. Сейчас еще поковыряюсь с вариантом загрузки конфигурации.
---
А загрузка аналогичной конфигурации не помогла. При объединении с пересозданием элементов слетают все настройки расписаний (в т.ч. синхронизаций), соответственно их нужно вносить заново, после внесения они сохраняются и форма открывается нормально. Так что предполагаю, что дело в параметрах регламентных заданий, которые хранятся в таблицах _ScheduledJobs N. Попробую их вычистить по очереди, может проявится проблемное.
---
Итого на текущий момент выяснил, что проблема в параметрах регламентного задания Отложенное обновление ИБ. В общем они битые. В таблице SQL лежит в поле _Parameters вот такая вот штука 0x4120, поле типа varbinary. При этом результаты предыдущего обновления сообщают, что все прошло хорошо, всё выполнено, а _Parameters - параметры регламентного задания; - мертвые. Осталось восстановить параметры по умолчанию. При очистке этой таблицы на SQL всё открывается. При этом правда само РЗ не показывается это. Поэтому будем восстанавливать его параметры.
Всем большое спасибо за участие
---
Поскольку есть РИБ с тормозным интернетом, то на рабочей снимать с поддержки Регламентное задание Отложенное обновление ИБ, а потом объединять с конфигурацией поставщика по этому объекту не самое лучшее сейчас решение, то решение вот такое:
1. Таблица данного регламентного задания в базе у меня называется _ScheduledJobs5086
2. Поднял копию рабочей базы в которой работали регламентные задания, сверил в SQL все поля таблицы данных для данного регламентного задания. Отличалось только поле _Parameters
3. На SQL для рабочей базы:
use рабочаябаза;
delete from _ScheduledJobs5086;
4. Затем там же:
use рабочаябаза;
insert _ScheduledJobs5086 sel ect * fr om живая_копия.dbo._ScheduledJobs5086;

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

Решение с тз 1с не очень, но в данном случае кажется оправданным.
---
Метод помог
---
После удаления и пересоздания с помощью объединения с конф поставщика, список стал открываться. Прописала новое расписание, но это регл задание не запускается автоматически. Уже всякие бубны попробовала...
---
Есть еще один способ "починить". Берешь базу, создаешь подчиненную. В подчиненной будут задания без этой ошибки. Дальше можно поступить следующим образом:
1) Пойти в SQL и использовав обработку в обеих база выяснить номера таблиц, и использовать скрипт. Но нужно понимание и знание SQL. Вариант самый быстрый и надежный. Особенно если это центральная база РБД.
2) В подчиненной базе данные один в один. Но регламентные задания работают. Делаем из нее главную, и меняем битую базу на подчиненную.
---
Спасибо Огромное! Ваша обработка помогла!
Использовал вашу обработку чтобы вычислить поврежденные Рег.задания.
1. После обнаружения удалял или менял рез задание.
2. обновлял конфигурацию.
3. Делал сравнить и объединить с идентичной конфигурацией
4. Обновил конфигурацию.
Эти манипуляции пришлось проделать 2 раза, т.к были повреждены 2 рег.задания.

Установил расписание по этим рег.заданиям и все заработало!
---
Для отлова конкретного поврежденного задания использовал отладчик!
---
Ваш метод действенный, спасибо!
Правда надо знать скуль)))
---
Благодарю за подсказку, полгода синхронизация работала, вчера навернулась...
---
Как вы выяснили какое конкретно РЗ проблемное?
---
Нашла свое проблемное: СинхронизацияДанных
(конфа ЗУП, настроена синхронизация с БП)
Падает на
РегламентныеЗадания.ПолучитьРегламентныеЗадания

Посоветуйте вариант без страшных пунктов с тз?

Только снимать с поддержки, удалять, объединять...?
---
Аналогичная проблема с такой же ошибкой Неверный формат хранилища данных '" с одной кавычкой.
Не открывается элемент справочника Настройка выполнения обмена и сам обмен перестал работать.
Зарплата и Управление Персоналом, редакция 2.5 (2.5.139.1)
1С:Предприятие 8.3 (8.3.13.1690)
Работало нормально несколько месяцев ,никаких сбоев не было
---
Как вы справились?
Я пыталась снимать с поддержки а потом объединять с конфигурацией поставщика. Не помогает.
---
как советует (40). Поднял бекап и на sql полностью перезалил таблицу shrduledjobs средствами sql
---
Пока помогает только удаление регламентных с последующим объединением с конфигурацией поставщика.
---
Не до конца помогает. Это РЗ в списке отсутствует после всего.
---
Словил такие же грабли. накрылась синхронизация, после установки расписания задания появляются в таблице. Лечил снятием с поддержки удалением РЗ. и последующим объединением и загрузкой конфигурации.
---
У меня была похожая ситуация. Не выполнялись регламентные задания. Список регламентных заданий не открывался с этой же ошибкой. И не получалось настроить регламентное задание обмена - эта же ошибка с кнопками Закрыть/Перезапустить. Удаление записи из таблицы _ScheduledJobs25773 помогло настроить регламентное задание - строка в _ScheduledJobs25773 появилась сама после настройки. Но вот список регламентных заданий так и не открывается, пока не нашёл причины.
---
Нашёл причину того что список не открывался - было разрушено ещё одно регламентное задание. Это было как раз отложенное обновление ИБ.
Для поиска использовал следующий код:

```1c
    Для Каждого Задание Из Метаданные.РегламентныеЗадания Цикл
    Сообщить(Задание.Синоним);
    Попытка
    ТекущиеЗадания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Задание));
    Для Каждого ТЗ Из ТекущиеЗадания Цикл
    Сообщить(ТЗ.Наименование);
    КонецЦикла;
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    КонецЦикла;
```

Правда, Попытка-Исключение не срабатывало, при выполнении РегламентныеЗадания.ПолучитьРегламентныеЗадания() сразу появлялось окно с ошибкой и кнопками Закрыть/Перезапустить. Поэтому пришлось искать нужное регламентное задание через отладчик.
---
Вот обработка, которая проверяет автоматом битые фоновые задания. А так же можно сразу получить название внутренней таблицы.
---
Тоже поймал такую фигню
---
Спасибо за обработку. Помогла с битыми регламентными заданиями, Платформа: 1С:Предприятие 8.3 (8.3.23.1912) Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.143.42)

Изначально нашел на Дзене.