Процесс анализа и решения ошибки
Столкнулись с проблемой, что в базе 1С самописной конфигурации на базе БСП не выполняется команда ИсточникДанных.ОбновитьИсторию(). При таком запуске раз через раз завершается рабочий процесс сервера 1С. То есть не просто сеанс в 1С, а rphost завершается.
Долго занимались поиском причины проблемы. В статье на Инфостарте нашли информацию, что общие реквизиты конфигурации неправильно добавляются в настройки сохранения версий в платформенной истории версий.
Решили удалить общие реквизиты, т.к. они были от БСП и использовались там по задумке только для целей работы в сервисе.
Но при попытке удаления общих реквизитов из базы 1С на этапе реструктуризации возникала ошибка с текстом:
Таблица или поле Fld1898 не содержится в разделе FROM
и процесс реструктуризации завершался. Причем после этого база рушилась, вернуться к конфигурации БД уже не получалось.
После гугления по тексту ошибки “Таблица или поле Fld1898 не содержится в разделе FROM” нашли причину. Это платформенный баг, известный начиная с релиза платформы 8.3.8. Заключается в том, что нельзя отключать использование общего реквизита для двух регистров накопления одновременно. То есть если отключить для одного регистра накопления использование общего реквизита и выполнить обновление конфигурации базы данных, то все получается.
По такой инструкции смогли выполнить удаление общих реквизитов. По очереди отключали использование общего реквизита для каждого регистра накопления и выполняли обновление конфигурации БД. Подробности читайте в следующем абзаце.
Отключение использования общего реквизита для регистра накопления
Опишем проделанные действия по шагам:
- Удалили БСП-шный общий реквизит с названием ОбластьДанныхВспомогательныеДанные. Данный общий реквизит удалился без возникновения ошибок в нашем случае.
-
Зашли в свойства общего реквизита ОбластьДанныхОсновныеДанные. Открыли свойство Состав. Смотрите скриншот:
-
В открывшемся дереве метаданных переходим к регистрам накопления. Для одного регистра накопления выбираем настройку Не использовать. Выполняем сохранение конфигурации и после этого обновление конфигурации базы данных нажатием кнопки F5.
- Проделываем пункт 3 для всех регистров накопления.
- После этого общий реквизит ОбластьДанныхОсновныеДанные успешно удаляется.
- При входе в базе после этого возникают ошибки, т.к. программный код БСП содержит обращения к этим общим реквизитам. Эти ошибки требуется также исправить.
На этом удаление общих реквизитов выполнено. После реструктуризации базы данных обновление платформенной истории данных командой ИсторияДанных.ОбновитьИсторию() стало выполняться без ошибок.