При обновлении конфигурации 1С:Управление торговлей (УТ) 11.5 на актуальные релизы (начиная с 11.5.12.270 и выше) многие технические специалисты сталкиваются с неприятным сюрпризом: дополнительные реквизиты, которые ранее активно использовались в формах списка, отборах цен и скидок, внезапно становятся недоступными — для их восстановления и управления есть инструмент массового изменения дополнительных реквизитов. Система перестает видеть их как поля, доступные «через точку» от ссылки, а в настройках формы они пропадают из общего списка доступных реквизитов.
В этой статье мы подробно разберем причины возникновения этой проблемы, связанные с багами платформы 1С:Предприятие 8.3 и изменениями в Библиотеке стандартных подсистем (БСП), а также изучим пошаговые алгоритмы обновления УТ 11.5 и восстановления работоспособности базы.
Проблема чаще всего кроется не в коде самой конфигурации УТ, а в поведении платформы при выполнении операции «Загрузить конфигурацию из файла (.cf)». Для анализа ошибок в конфигурации можно использовать специализированные инструменты — для этого подойдёт инструментарий для технического анализа и диагностики 1С. В версиях платформы ниже 8.3.25.1257 присутствует критическая ошибка: при загрузке файла конфигурации у некоторых объектов метаданных (прежде всего у справочника Номенклатура) может самопроизвольно очищаться свойство «Характеристики».
Свойство Характеристики (расположенное на вкладке «Данные» в Конфигураторе) отвечает за связь объекта с Планом видов характеристик (ПВХ) ДополнительныеРеквизитыИСведения и регистром сведений ДополнительныеЗначения. Если это свойство очищено, платформа «забывает», что у объекта есть дополнительные реквизиты, и исключает их из механизмов автоматического построения запросов для динамических списков и систем компоновки данных (СКД).
Если обновление уже выполнено и вы обнаружили проблему, первым делом необходимо проверить целостность метаданных. Также можно проанализировать реквизиты объекта метаданных (удобно через обработка для технического аудита и редактирования метаданных) или изучить ситуацию в Конфигураторе:
Контрагенты).Для исправления ситуации необходимо вручную заполнить параметры характеристик, ориентируясь на типовую конфигурацию или конфигурацию поставщика. Обычно настройки выглядят следующим образом:
После внесения этих правок и сохранения конфигурации базы данных (клавиша F7), дополнительные реквизиты снова станут доступны для выбора в формах списков и отборах.
Если вы только планируете обновление и используете платформу версии ниже 8.3.25.1257, рекомендуется использовать специальную последовательность действий, которая позволяет избежать очистки свойств метаданных. Рассмотрим этот алгоритм подробнее:
.cf.Такая перезагрузка Конфигуратора между загрузкой .cf и применением изменений к БД принудительно обновляет внутренний кэш метаданных платформы и предотвращает потерю свойства Характеристики.
В новых версиях УТ 11.5 (на базе БСП 3.1.7+) был усилен контроль за именованием дополнительных реквизитов. Если в системе существуют дополнительные реквизиты с одинаковыми заголовками для разных видов номенклатуры, это может привести к конфликтам при формировании динамических списков.
Проанализируем План видов характеристик ДополнительныеРеквизитыИСведения. Если мы обнаружим дублирующиеся наименования (заголовки), их необходимо привести к уникальному виду. Посмотрим на пример кода для массового исправления заголовков:
// Пример групповой обработки для синхронизации заголовка с наименованием
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка
|ИЗ
| ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
|ГДЕ
| НЕ ДополнительныеРеквизитыИСведения.ПометкаУдаления";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбъектСвойства = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
// Устанавливаем заголовок равным наименованию для прохождения валидации БСП
ОбъектСвойства.Заголовок = ОбъектСвойства.Наименование;
Попытка
ОбъектСвойства.Записать();
Исключение
Сообщить("Ошибка при записи свойства: " + ОбъектСвойства.Наименование);
КонецПопытки;
КонецЦикла;
Даже если метаданные в порядке, реквизиты могут не отображаться из-за настроек самой БСП. Выясним причину в пользовательском интерфейсе: для этой задачи есть вывод характеристик и изображений в формах списка УТ 11.
Заполнение данных для быстрого отбора в списках.Если ручное восстановление свойств Характеристики не помогло сразу, проанализируем состояние кэша сервера и клиента. Часто платформа продолжает использовать устаревшее описание метаданных из локального кэша. Для решения проблемы выполним следующие шаги:
srvinfo (на сервере) и локальных папок %AppData%\1C\1cv8./ClearCache.После очистки кэша система будет вынуждена заново считать структуру характеристик из обновленных метаданных, и поля дополнительных реквизитов должны появиться в конструкторе настроек формы списка.
Резюмируем: Основная проблема релизов УТ 11.5.12.270+ связана с багом платформы, «стирающим» связь объекта с его дополнительными реквизитами в метаданных. Проверка и ручное заполнение свойства Характеристики в Конфигураторе — самый надежный способ вернуть привычный функционал отборов и отображения данных, а расширить возможности списков поможет расширение для вывода характеристик товаров в формах списка.