При обновлении конфигурации Бухгалтерия предприятия 3.0 у клиента заснул ноутбук.
После пробуждения и попытки запуска базы данных пошёл процесс обработок обновления, остановившихся на 24% с ошибкой
Формат значения версии ОТ () должен быть 99.99.999.9999 (должно быть 4 числа версии, а не 0 как в ).
Резервной копии до обновления не было сделано.
Обновление проводилось на платформе 8.3.18.1520 на релиз Бухгалтерия предприятия, редакция 3.0 (3.0.99.21)
Гугление показало, что проблема возникает с 2016-го года, т.е. не зависит от релиза.
Журнал регистрации выдал более полную информацию об ошибке:
Формат значения версии ОТ () должен быть 99.99.999.9999 (должно быть 4 числа версии, а не 0 как в ).
{ОбщийМодуль.ОбработкаНовостей.Модуль(7777)}: Запись.Записать(Истина);
{Обработка.УправлениеНовостями.МодульМенеджера(1207)}: ОбработкаНовостей.ПересчитатьНеобработанныеКатегорииНовостей(КонтекстВыполненияВложенныйВложенный);
{Справочник.Новости.МодульМенеджера(1659)}: Обработки.УправлениеНовостями.ПарсингХМЛФайловНовостей(ЛентыНовостей, КонтекстВыполненияВложенный);
{ОбщийМодуль.ОбработкаНовостей.Модуль(12474)}: Справочники.Новости.ЗагрузитьСтандартныеЗначения(КонтекстВыполненияВложенный);
{ОбщийМодуль.ОбработкаНовостей.Модуль(13320)}: ЗагрузитьВсеСтандартныеЗначения(КонтекстВыполненияВложенныйВложенный);
{(1)}:ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию()
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6329)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2162)}: ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1713)}: ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}: ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2298)}: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1041)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1031)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Формат значения версии ОТ () должен быть 99.99.999.9999 (должно быть 4 числа версии, а не 0 как в ).
{РегистрСведений.КатегорииНовостейИнтервалыВерсий.МодульНабораЗаписей(234)}: ВызватьИсключение Сообщение.Текст;
{РегистрСведений.КатегорииНовостейИнтервалыВерсий.МодульНабораЗаписей(64)}: ПроверитьВерсию(ТекущаяЗапись.ВерсияОТ, ТекстСообщения, Отказ);
{РегистрСведений.КатегорииНовостейИнтервалыВерсий.МодульНабораЗаписей(49)}: ОбработкаПроверкиЗаполнения(Отказ, Новый Массив);
{ОбщийМодуль.ОбработкаНовостей.Модуль(7777)}: Запись.Записать(Истина);
{Обработка.УправлениеНовостями.МодульМенеджера(1207)}: ОбработкаНовостей.ПересчитатьНеобработанныеКатегорииНовостей(КонтекстВыполненияВложенныйВложенный);
{Справочник.Новости.МодульМенеджера(1659)}: Обработки.УправлениеНовостями.ПарсингХМЛФайловНовостей(ЛентыНовостей, КонтекстВыполненияВложенный);
{ОбщийМодуль.ОбработкаНовостей.Модуль(12474)}: Справочники.Новости.ЗагрузитьСтандартныеЗначения(КонтекстВыполненияВложенный);
{ОбщийМодуль.ОбработкаНовостей.Модуль(13320)}: ЗагрузитьВсеСтандартныеЗначения(КонтекстВыполненияВложенныйВложенный);
{(1)}:ОбработкаНовостей.ОбновлениеИнформационнойБазы_ОбщиеДанные_ПерейтиНаВерсию()
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6329)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2162)}: ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1713)}: ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}: ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2298)}: Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1041)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1031)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
Использование chdbfl.exe, тестирования/исправления со всеми включённым галочками не дало результата (кроме того, что слетел файл основной конфигурации, который легко восстановился из конфигурации базы данных).
Решением является создание внешней обработки для редактирования объекта РегистрСведений.КатегорииНовостейИнтервалыВерсийНеобработанные, через динамический список в форме.
Созданная самостоятельно (или скачанная по ссылке внизу) обработка открывается через меню "Еще" в режиме Предприятие.
Естественно, нужны права пользователя для открытия внешних обработок.
В Регистре Сведений "КатегорииНовостейИнтервалыВерсийНеобработанные", удаляем записи с пустыми полями версияОТ и версияДО.
P.S.
В приложенной обработке, дополнительно, есть табличная часть, позволяющая редактировать Справочник Новости: там были помечены на удаление пустые записи. Это не требуется. Но, на всякий случай, оставил.