В процессе разработки и поддержки конфигураций на платформе 1С:Предприятие разработчики часто сталкиваются с нетипичным поведением интерфейса. Одной из крайне неприятных и неочевидных проблем является ситуация, когда форма документа при открытии «схлопывается» (застегает в свернутом или сильно уменьшенном виде), не реагирует на стандартные команды развертывания или сбрасывает свои размеры при повторном открытии. Примечательно, что эта проблема часто проявляется избирательно — лишь у некоторых пользователей, в то время как у остальных форма открывается абсолютно корректно.
В этой статье мы подробно разберем, почему возникает данная неполадка (в частности, после включения свойства АвтоОтметкаНезаполненного), проанализируем внутренние механизмы платформы 1С и рассмотрим пошаговые методы устранения этого сбоя как со стороны пользователя, так и из Конфигуратора.
Прежде чем переходить к лечению проблемы, давайте разберем физику процесса и поймем, какие факторы запускают этот баг:
АвтоОтметкаНезаполненного: При установке этого флага на колонку табличной части или поле ввода платформа 1С вынуждена динамически перерисовывать элемент управления, добавляя красную пунктирную линию для визуального выделения. Это незначительно меняет внутренние границы (bounds) элемента интерфейса. В сочетании с индивидуальными настройками ширины колонок, которые пользователи могли сделать вручную, это вызывает конфликт при расчете привязок интерфейсным движком платформы.Если проблема носит единичный характер и проявилась у конкретного сотрудника, мы можем решить её непосредственно в режиме «1С:Предприятие» без изменения конфигурации. Для этого выполним следующие действия:
Этот способ позволяет сбросить локально сохраненные геометрические параметры окна текущего сеанса и вернуть форму к первоначальному виду, заложенному разработчиком.
Поскольку простая очистка локального кэша на компьютере (удаление папок в каталоге AppData) часто не помогает из-за сохранения координат внутри базы данных, администратору необходимо принудительно очистить системные настройки конкретного пользователя. Рассмотрим, как это сделать по шагам:
Для программной очистки настроек конкретной формы мы можем использовать следующий код в административной обработке:
ИмяПользователя = "ИмяПроблемногоПользователя";
КлючОбъекта = "Документ.ИмяПроблемногоДокумента.Форма.ФормаДокумента";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, "", ИмяПользователя);
Это гарантированно удалит старые конфликтные координаты из базы данных, и при следующем открытии форма построится «с чистого листа».
Чтобы раз и навсегда избавить всех пользователей от подобных проблем при последующих обновлениях конфигурации, мы можем внесить небольшое изменение в свойства самой формы в Конфигураторе:
После этого платформа перестанет записывать индивидуальные экранные координаты окна в профиль пользователей. Документ всегда будет открываться в стандартном, корректно рассчитанном размере, что полностью предотвратит сбои отображения при любых манипуляциях с масштабом экрана или свойствами полей.
Иногда при обновлении конфигурации через хранилище кэш привязок у пользователей «зависает». Чтобы принудительно заставить платформу пересчитать привязки для всех рабочих мест, применим небольшую хитрость:
Ctrl + R. Внимательно проанализируем визуальное состояние элементов. Если на форме что-то мигает красным цветом — привязки настроены с ошибками, их необходимо перенастроить вручную.Этот простой прием полностью инвалидирует старый кэш отображения формы у всех пользователей информационной базы, заставляя платформу принудительно перестроить интерфейс по новому шаблону при следующем открытии.
Если проблема вызвана исключительно некорректным масштабированием интерфейса в Windows (особенно актуально для старых релизов платформы 1С:Предприятие 8.3), выполним настройку ярлыка запуска программы на компьютерах проблемных пользователей:
1cv8.exe) и выберем пункт «Свойства».Этот шаг заставит операционную систему передавать платформе 1С честное разрешение экрана без искажения виртуальных пикселей, что предотвратит спонтанное схлопывание окон из-за ошибок округления координат.
Используя приведенные методики пошагово, мы сможем оперативно диагностировать и полностью устранить любые проблемы со сжатием и некорректным поведением форм документов в нашей базе данных 1С.