При переходе на новые релизы конфигурации «1С:Управление торговлей» (начиная с ветки 11.5.11 и выше) многие технические специалисты сталкиваются с критической ошибкой в режиме «1С:Предприятие». Проблема проявляется на этапе выполнения дополнительных процедур обработки данных. Система выдает исключение, связанное с подсистемой вариантов отчетов, что полностью блокирует дальнейшую работу с базой.
В данной статье мы подробно разберем, почему возникает эта ошибка, как проанализировать стек вызова и, самое главное, какими методами можно восстановить работоспособность системы. Мы пройдем путь от диагностики до финальной настройки расширений после обновления.
Ошибка обычно выглядит следующим образом и фиксируется в Журнале регистрации или выводится в диалоговом окне:
Недопустимое значение параметра КлючВарианта в функции ВариантыОтчетов.ОписаниеВарианта:
вариант "ВедомостьПоТоварамНаСкладахМобильныйКлиент" отсутствует в отчете "ВедомостьПоТоварамНаСкладах".
{ОбщийМодуль.ВариантыОтчетов.Модуль(330)}: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(...
Разберем, что происходит «под капотом» системы. В релизе 11.5.11 разработчики фирмы 1С внесли существенные изменения в механизмы работы мобильного клиента. Был добавлен новый предопределенный вариант отчета — ВедомостьПоТоварамНаСкладахМобильныйКлиент. Основная конфигурация ожидает наличия этого варианта в метаданных отчета ВедомостьПоТоварамНаСкладах.
Однако, если в базе установлены расширения конфигурации или патчи (исправления), они могут конфликтовать с этим процессом. Выделим основные причины конфликта:
ВедомостьПоТоварамНаСкладах или общий модуль ВариантыОтчетовУТПереопределяемый, расширение хранит «старый снимок» метаданных. При попытке программного обращения к новому ключу варианта система его не находит, так как расширение перекрывает обновленные метаданные основной конфигурации.ВариантыОтчетов не успевает корректно синхронизироваться при первом запуске после обновления в Конфигураторе.Рассмотрим самый эффективный и рекомендуемый регламент действий. Как показывает практика, большинство ошибок обновления в режиме «Предприятие» вызвано именно влиянием расширений. Проанализируем правильный алгоритм обновления:
Отключение расширений: Перед запуском обновления в режиме «Предприятие» необходимо временно деактивировать все пользовательские расширения. Это гарантирует, что программный код обновления будет работать исключительно с актуальными метаданными основной конфигурации.
Для этого выполним следующие действия:
После отключения попробуем снова запустить процесс обновления. Как правило, после этого ошибка ВариантыОтчетов.ОписаниеВарианта исчезает, и процедуры обработки данных завершаются успешно.
Выясним, что делать, если после успешного обновления при включении расширения ошибка возвращается. Это сигнализирует о том, что расширение содержит устаревшие метаданные. Нам необходимо актуализировать заимствованные объекты.
Рассмотрим по шагам работу в Конфигураторе:
ВедомостьПоТоварамНаСкладах.ВариантыОтчетовУТПереопределяемый или ВариантыОтчетовПереопределяемый, если они были заимствованы.Если в окне проверки мы видим сообщения о том, что «текст метода не соответствует методу из конфигурации», это означает, что логика кода в расширении устарела. Нам нужно вручную привести код расширения (особенно в процедуре НастроитьВариантыОтчетов) в соответствие с новой версией основной конфигурации, используя рекомендации по использованию новых возможностей на legacy-конфигурациях.
Иногда даже после удаления патчей система продолжает «помнить» старую структуру. В этом случае нам поможет программный сброс параметров работы системы. Посмотрим, как инициировать повторное заполнение вариантов отчетов.
Для этого воспользуемся возможностями «Функций для технического специалиста»:
ВариантыОтчетов с нуля.Также проанализируем возможность использования встроенных обработок. В некоторых случаях помогает запуск процедуры ВариантыОтчетов.ОперативноеОбновлениеОбщихДанныхКонфигурации() через консоль кода, однако это требует осторожности и понимания контекста выполнения.
Подведем итог нашему исследованию. Ошибка с отсутствующим вариантом ВедомостьПоТоварамНаСкладахМобильныйКлиент — это типичный пример конфликта между обновленным ядром 1С и слоем расширений.
Главное правило успешного обновления:
Всегда отключайте расширения и удаляйте патчи перед запуском обновления в режиме «Предприятие». После того как основные данные будут обработаны, подключайте расширения по одному, предварительно обновляя их метаданные в Конфигураторе. Если расширение содержит код, модифицирующий отчеты, обязательно используйте аннотацию &ИзменениеИКонтроль, чтобы система подсказывала вам о расхождениях в методах при следующем обновлении.
Соблюдение этого регламента сэкономит вам время и позволит избежать трудоемкого поиска ошибок в коде общих модулей подсистемы БСП ВариантыОтчетов, для чего пригодится справочник по методам БСП.