Доброго дня, коллеги!
Ошибка, вопрос по которой задал слушатель с Мастер-группе курса по администрированию 1С, наверняка известна многим, кто сопровождает и поддерживает клиент-серверные информационные базы 1С. Почему она возникает и как от нее избавиться, отвечает тренер курса.
Вопрос
Ответ
Добрый день!
Попробуйте воспользоваться методом глобального контекста ОбновитьНумерациюОбъектов. Например, вот такой код, если проблема проявляется у документов определенного типа:
ОбновитьНумерациюОбъектов(Метаданные.Документы.ПриходныйКассовыйОрдер); ОбновитьНумерациюОбъектов(Метаданные.Документы.РасходныйКассовыйОрдер); …
Если же вызвать этот метод без параметров, то обновление будет выполнено для всех типов объектов метаданных.
Важно, что этот метод не изменяет данные в базе, речь идет о “кэше” в памяти сервера “1С:Предприятие”.
Теперь предположение, почему может возникать такая ситуация. Сервер “1С:Предприятие” хранит в памяти для каждого объекта метаданных в памяти максимальный номер для каждого использованного префикса и периода. Затем на SQL-сервере восстанавливается база данных из копии, а в ней – другие номера документов. Сервер “1С:Предприятие” не знает о том, что данные изменились, получается, что кэш не соответствует данным в базе. Можно перезапустить сервер “1С:Предприятие”, тогда данная ошибка тоже не должна возникать, а можно воспользоваться методом ОбновитьНумерациюОбъектов, чтобы обновить закэшированные данные.
Администрирование 1C: развертывание, автоматизация, управление пользователями и поддержка систем на 1С:Предприятие 8.