Обновление информационной базы

Печать (Ctrl+P)
Необходимость обновления информационной базы ( далее ИБ)  при смене версии конфигурации проверяется в функции  НеобходимоОбновлениеИнформационнойБазы   общего модуля конфигурации обновление информационной базы ( см Рис.1)

Рис 1 Тело функции НеобходимоОбновлениеИнформационнойБазы

 

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

  • Значение КонстантыНомерВерсииКонфигурации меньше версии конфигурации метаданные.версия
  • Значение Константы.ЗапуститьОбновлениеИнформационнойБазы имеет значение истина.
  • Если параметр запуска имеет строковое значение ЗапуститьОбновлениеИнформационнойБазы

Отметим, что  Необходимость снимается автоматически после обновления ИБ.  Иными словами, после выполнения обновления  установится:

Константы.ЗапуститьОбновлениеИнформационноаБазы.Установить(Ложь);

Недавно меня попросили, обновить измененную конфигурацию  управления торговлей 10.3.22 до текущей редакции 10.3.46. При обновлении ИБ, возникла ошибка в модуле обработки обновления конфигурации при выполнении процедуры перехода из  10.3.30.1 на 10.3.30.2 ( см. рис 2)

Рис 2 Пример сбоя при обновлении ИБ

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

Несмотря на возникнувший сбой при обновлении, версия конфигурации стала такой же установленной конфигурацией. В результате, повторный запуск с параметром запуска  запуститьобновлениеинформационнойбазы как показано на рис 3 не запускал обновление ИБ

Рис 3 Настройка параметров запуска в стартовом окне запуска

 

Этот параметр запуска не работает если не изменена версия конфигурации, т.е если метаданные.версия и Константы. НомерВерсииКонфигурации совпадают. При обновлении конфигурации устанавливается значение метаданные.версия автоматически, а при обновлении ИБ устанавливается значение Константы. НомерВерсииКонфигурации

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

Константы.НомерВерсииКонфигурации.Установить(“10.3.30.1”);
Константы.ЗапуститьОбновлениеИнформационнойБазы.Установить(Истина);

В этом случае выполнились все переходы до конечного релиза 10.3.46.2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *