Как исправить ошибку «Не установлена схема компоновки данных» и зависания 1С после обновления платформы на 8.3.10

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Обновление платформы «1С:Предприятие» — шаг, необходимый для поддержки новых конфигураций и расширения функциональности. Однако переход с ветки 8.3.9 на платформу 8.3.10 (в частности, на релиз 8.3.10.2505) у многих специалистов сопровождается критическими сбоями: отчетами на системе компоновки данных (СКД), выдающими ошибку «Не установлена схема компоновки данных!», и общими зависаниями пользователей в клиент-серверном режиме.

Рассмотрим подробно причины возникновения этих проблем, разберем по шагам способы их решения и проанализируем, какие релизы платформы являются наиболее стабильными для работы.

Выясняем причины ошибки «Не установлена схема компоновки данных!»

Данная ошибка часто возникает при выполнении внешних отчетов и обработок, использующих СКД, а также отчетов, обращающихся к внешним информационным базам через COMОбъект или использующих собственную форму отчета и настройки.

Проанализируем основные ситуационные факторы, приводящие к сбою:

  1. Проблемы с кастомными формами отчета: Если в отчете СКД назначена произвольная форма отчета или настройки и в ней переопределена обработка расшифровки или формирование результата с отключением стандартной обработки (СтандартнаяОбработка = Ложь), объект отчета в определенный момент теряет инициализированную схему.
  2. Ошибки при COM-соединении: В релизе 8.3.10.2505 при вызове внешней обработки или подключении к сторонней базе через COMConnector происходит аварийный разрыв сеанса (ошибка подключения к серверу сокетов или завершение рабочего процесса rphost.exe). Из-за падения внешнего вызова основной процесс СКД сбрасывает контекст и сообщает об отсутствии схемы.
  3. Ошибки подключения внешних печатных форм и обработок: В платформе 8.3.10.2505 проявился аппаратный баг клиент-серверного режима, вызывающий аварийное завершение рабочего процесса при подключении внешних файлов в толстом и тонком клиентах.

Способы устранения ошибки СКД в отчете

Разберем практические действия по исправлению работы отчета на СКД.

Способ 1. Очистка и пересоздание пользовательских форм отчета

Если внешний отчет содержит явно назначенные формы (Форма Отчета / Форма Настроек), в которых переопределены стандартные события, платформенные механизмы версии 8.3.10 могут терять макет схемы компоновки. Чтобы проверить это, очистите поля форм в свойствах отчета или удалите их назначение по умолчанию, дав платформе возможность сгенерировать форму автоматически.

Способ 2. Программное восстановление схемы в модуле объекта

Если в модуле объекта или формы используется процедура ПриКомпоновкеРезультата с отмененной стандартной обработкой, необходимо явно прописывать загрузку схемы из макета и инициализацию компоновщика настроек:


Процедура ПриКомпоновкеРезультата(ИзменительМакета, СхемаКомпоновкиДанных, Настройки, ИсполнительКомпоновки)
	
	СтандартнаяОбработка = Ложь;
	
	// Явно получаем схему компоновки из макета отчета
	СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	
	// Инициализируем компоновщик настроек
	ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
	КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
	
	// Далее следует формирование макета компоновки и вывод в документ
	
КонецПроцедуры

Способ 3. Отключение фонового формирования отчетов

Начиная с версии 8.3.10, платформа стремится выполнять отчёты СКД асинхронно в фоновом задании на сервере. При передаче внешней обработки на сервер контекст макета может теряться. Отключите фоновое формирование отчетов в свойствах отчета или в параметрах панели отчета.

Устранение системных зависаний и падений серверов (rphost)

Второй частой проблемой после обновления платформы 8.3.10 являются тяжелые зависания пользователей, длительные паузы в работе и ошибки расторжения соединения (например, descr=10054: Удаленный хост принудительно разорвал существующее подключение).

Для восстановления нормальной производительности выполним следующий комплекс регламентных процедур:

  1. Полная очистка кэша на сервере и клиентах: Необходимо удалить локальный кэш конфигурационной информации 1С у проблемных пользователей (папки в %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8), а также очистить кэш сервера приложений 1С.
  2. Удаление журналов регистрации: Если журналы регистрации содержат поврежденные записи или имеют критический объем, временно очистите или переместите их из каталога базы данных на сервере, чтобы платформа создала чистый файл журнала.
  3. Анализ 32-битного сервера приложений: Если сервер 1С является 32-разрядным и на нем запущено несколько информационных баз (суммарно под 100 пользователей), процессы rphost.exe сталкиваются с жестким лимитом виртуальной памяти в 2–3 ГБ. Переход на платформу 8.3.10 усилил нагрузку на память за счет фоновых процессов полнотекстового поиска и индексации.

Для стабилизации 32-битного сервера необходимо настроить перезапуск рабочих процессов в консоли кластера:

Установите значение параметра «Предельный объем виртуальной памяти» в районе 1500–1800 МБ, а параметр «Интервал превышения допустимого объема памяти» равным 60 секундам. Это позволит кластеру своевременно выводить перегруженные процессы из эксплуатации и запускать новые без падения сеансов пользователей.

Выбор стабильного релиза платформы

Практический опыт работы администраторов и разработчиков показывает, что конкретный релиз 8.3.10.2505 содержит критические баги в работе внешних обработок, фоновых заданий и COMConnector.

Если очистка кэша и доработка отчетов не дают устойчивого результата, рассмотрим варианты смены релиза платформы:

← На главную