Рассмотрим ситуацию, когда при открытии управляемой формы или обновлении платформы 1С с версии 8.3.10 на 8.3.11 (в частности, на релиз 8.3.11.2899) на управляемой форме исчезают стандартные команды для элемента Поле графической схемы. На командной панели перестают отображаться кнопки добавления элементов, а также специализированные команды редактирования схемы.
Проанализируем механику работы платформы 8.3.11. Начиная с этой версии, разработчики 1С реализовали возможность указывать элемент Поле графической схемы в качестве источника команд для командной панели или группы кнопок управляемой формы. Однако в релизе 8.3.11.2899 содержалась платформная ошибка (дефект), из-за которой автоматическое связывание и отрисовка стандартных команд давали сбой.
Разберем по шагам доступные варианты исправления данной неполадки.
Обновление платформы 1С:Предприятие
Выясним главное решение: так как проблема связана с дефектом конкретной сборки, наиболее простым и надежным способом является установка исправленного релиза платформы (например, 8.3.11.2954 или более свежих версий 8.3.12+). После обновления технологической платформы автозаполнение стандартных команд графической схемы восстанавливается в штатном режиме.
Явное указание источника команд для командной панели
Посмотрим, как настроить отображение команд вручную в редакторе формы Конфигуратора:
Источник команд и явно укажем имя элемента формы, соответствующего полю графической схемы.Автозаполнение для командной панели установлено в значение Истина.Проверка режима совместимости конфигурации
Проанализируем режим совместимости: если в свойствах метаданных конфигурации включен режим совместимости с предыдущими версиями (например, 8.3.10 и ниже), механизмы привязки кнопок новой платформы могут работать некорректно. Попробуем изменить свойство Режим совместимости на значение Не использовать или установить его не ниже уровня Версия 8.3.11.
Рассмотрим важную особенность работы с объектом ГрафическаяСхема. В объектной модели 1С для коллекции элементов поля графической схемы отсутствует прямой метод Добавить(). Встроенный язык 1С позволяет изменять свойства уже имеющихся элементов (координаты, цвет, текст, тип линий) или удалять их, но не создавать новые объекты графической схемы "с нуля" исключительно методами кода.
Разберем обходные пути для динамического формирования элементов схемы:
.grs) или в строковую переменную, программно сформируем узлы новых элементов в структуре XML и загрузим итоговый текст обратно в графическую схему.