При выполнении группового перепроведения документов или регламентной процедуры закрытия месяца в «1С:Бухгалтерии 8» пользователи и администраторы могут столкнуться с критическими сбоями. Сначала система выдает ошибку уровня СУБД вида «Ошибка SQL: Поле не найдено Т..._IDRRef», а после первичных попыток восстановления может появиться программное исключение: «Слишком много фактических параметров Задание = ДлительныеОперации.ЗапуститьФоновоеЗаданиеСКонтекстомКлиента...». Проанализируем природу этих ошибок и разберем пошаговый алгоритм их полного устранения.
Разберем, почему возникают подобные сбои в клиент-серверном режиме работы:
T..._IDRRef формируется внутренним транслятором платформы 1С при обращении к временным таблицам или ссылочным реквизитам составного типа. Ошибка возникает в ситуации, когда внутреннее описание структуры конфигурации (таблицы Config, Params) не совпадает с реальной схемой таблиц на SQL-сервере. Основными катализаторами проблемы выступают частое использование динамического обновления («демоническое обновление»), аварийное завершение процесса реструктуризации базы данных или сбои кэша сервера «1С:Предприятия».ЗакрытиеМесяца вызвана сменой сигнатур экспортных процедур в Библиотеке Стандартных Подсистем (БСП). Если релиз конфигурации был обновлен, а платформа осталась устаревшей (или используется закэшированный скомпилированный контекст фонового задания), вызов метода ДлительныеОперации.ЗапуститьФоновоеЗаданиеСКонтекстомКлиента завершается аварийно.Проанализируем базовые регламентные действия, которые необходимо выполнить в первую очередь при любых проявлениях рассинхронизации метаданных:
snccntx* в каталоге данных сервера srvinfo).%LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8).Для восстановления логической и ссылочной целостности базы данных, а также синхронизации внутренних таблиц воспользуемся встроенным инструментом конфигуратора. Разберем по шагам порядок запуска:
Если штатное тестирование не решило проблему с несуществующим полем _IDRRef на уровне SQL, применим метод полной переинициализации схемы таблиц:
.dt.Посмотрим на решение второй ошибки — сбоя выполнения фонового задания закрытия месяца с неверным числом параметров. В конфигурациях «1С:Бухгалтерия предприятия» (начиная с релизов 3.0.52 и новее) активно используются новые серверные интерфейсы БСП, требующие актуальных версий платформы.
Выясним причину: устаревшие сборки технологической платформы некорректно обрабатывают передачу контекста клиента в фоновые потоки и обращаются к устаревшим перегрузкам методов. Для устранения сбоя необходимо обновить технологическую платформу 1С:Предприятие 8.3 на сервере и клиентах до актуального стабильного релиза, рекомендованного фирмой «1С» для используемой версии конфигурации (требования указаны в файле ReadMe.txt дистрибутива обновления).
После обновления платформы и первого запуска базы данных в режиме «1С:Предприятие» под правами Администратора обязательно дождемся завершения всех регламентных процедур начального заполнения данных и обновления версий подсистем.
Чтобы исключить повреждения кэша метаданных в будущем, откажемся от динамического обновления. Для жесткого применения изменений выполним запуск конфигуратора через командную строку с запретом динамического обновления:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /UpdateDBCfg -Dynamic-
Такой комплексный подход позволяет восстановить физическую структуру таблиц СУБД, устранить ошибки вызова фоновых заданий в процедуре закрытия месяца и обеспечить стабильную работу учетной системы.