Обновление информационной базы
Если проанализировать внимательно программный код этой функции видно, что данная функция возвращает значение истина в следующих случаях
- Значение Константы. НомерВерсииКонфигурации меньше версии конфигурации метаданные.версия
- Значение Константы.ЗапуститьОбновлениеИнформационнойБазы имеет значение истина.
- Если параметр запуска имеет строковое значение ЗапуститьОбновлениеИнформационнойБазы
Отметим, что Необходимость снимается автоматически после обновления ИБ. Иными словами, после выполнения обновления установится:
Константы.ЗапуститьОбновлениеИнформационноаБазы.Установить(Ложь);
Недавно меня попросили, обновить измененную конфигурацию управления торговлей 10.3.22 до текущей редакции 10.3.46. При обновлении ИБ, возникла ошибка в модуле обработки обновления конфигурации при выполнении процедуры перехода из 10.3.30.1 на 10.3.30.2 ( см. рис 2)
Причина ошибки, была связана с тем, что я забыл удалить дату запрета на редактирование документов перед началом обновления конфигурации и изменения не могли быть записаны.
Несмотря на возникнувший сбой при обновлении, версия конфигурации стала такой же установленной конфигурацией. В результате, повторный запуск с параметром запуска запуститьобновлениеинформационнойбазы как показано на рис 3 не запускал обновление ИБ
Этот параметр запуска не работает если не изменена версия конфигурации, т.е если метаданные.версия и Константы. НомерВерсииКонфигурации совпадают. При обновлении конфигурации устанавливается значение метаданные.версия автоматически, а при обновлении ИБ устанавливается значение Константы. НомерВерсииКонфигурации
В сложившей ситуации, для того чтобы запускался снова механизм обновления ИБ мне пришлось с помощью внешней обработки изменить параметры констант программы :
Константы.НомерВерсииКонфигурации.Установить(“10.3.30.1”);
Константы.ЗапуститьОбновлениеИнформационнойБазы.Установить(Истина);
В этом случае выполнились все переходы до конечного релиза 10.3.46.2