При доработке документов и справочников в обычных формах 1С (например, в конфигурациях «Бухгалтерия предприятия 2.0» или «Управление торговлей 10.3») разработчики часто сталкиваются с ситуацией, когда после добавления новых кнопок или флагов форма начинает вести себя некорректно. При разворачивании окна на весь экран нижняя панель с кнопками «ОК», «Записать», «Закрыть» остается на месте или смещается, а под ней образуется некрасивая пустая область. Разберем причинно-следственные связи этой проблемы и пошагово рассмотрим способы её устранения.
Обычные формы 1С используют абсолютную систему координат с механизмом расчета привязок. Когда мы добавляем новый элемент управления непосредственно на полотно формы без явной настройки его границ, платформа может автоматически пересчитать привязки смежных элементов. В результате ломается цепочка зависимостей между центральной частью (табличным полем или закладками) и подвалом формы.
Ошибки в отображении чаще всего возникают по следующим причинам:
Чтобы понять, какой именно элемент сбоит при изменении размера окна, воспользуемся встроенным инструментом предпросмотра Конфигуратора.
Ctrl + R для запуска предпросмотра формы.Если на форму добавляется отдельная кнопка или флаг, необходимо явно задать правила её поведения при изменении размеров диалога.
Ctrl + Shift + S или перейдем через верхнее меню: Форма — Установить привязки....Наиболее надежный способ разместить несколько элементов в нижней части формы — использовать объект управления Панель или Командная панель.
Рассмотрим правильный алгоритм размещения:
Панель.Если требуется разместить командные кнопки, предпочтительнее использовать объект Командная панель. Входящие в нее кнопки автоматически выстраиваются в ряд и не требуют индивидуальной настройки привязок для каждого элемента.
После фиксации нижней панели важно проверить центральный элемент формы (например, табличное поле или блок страниц). Если между центральным блоком и нижней панелью образуется зазор:
Ctrl + Shift + S).В случаях, когда визуальный редактор Конфигуратора не позволяет настроить сложную форму с множеством разделителей, привязки можно жестко задать программно. Для этого используется метод УстановитьПривязку() в обработчике события ПриОткрытии:
Процедура ПриОткрытии()
// Привязываем нижнюю панель к левому и нижнему краю формы
ЭлементыФормы.ПанельКнопок.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭлементыФормы.ОсновнаяФорма, ГраницаЭлементаУправления.Низ);
ЭлементыФормы.ПанельКнопок.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ЭлементыФормы.ОсновнаяФорма, ГраницаЭлементаУправления.Низ);
КонецПроцедуры
Если после внесения изменений в Конфигураторе у конкретного пользователя форма продолжается отображаться с ошибками, необходимо сбросить сохраненные кэшированные настройки окна. В режиме «1С:Предприятие» откроем форму, кликнем правой кнопкой мыши по её заголовку или свободному полю и выберем пункт «Восстановить положение окна».