После обновления конфигурации 1С:Управление торговлей до релиза 11.5.19.74 (и выше) многие пользователи столкнулись с досадным изменением в интерфейсе. При работе с расходными накладными форма «Проверка и подбор маркируемой продукции» перестала запоминать свой размер и положение. Каждый раз при открытии окно центрируется и сбрасывается к стандартному масштабу, даже если в предыдущий раз пользователь разворачивал его на весь экран для удобного сканирования кодов DataMatrix. В этой статье мы подробно разберем, почему это произошло и как вернуть привычное поведение интерфейса.
Первым делом выясним причину такого поведения. Как показывает сравнение метаданных между старыми и новыми релизами, разработчики 1С целенаправленно изменили свойства служебной формы ПроверкаИПодборМаркируемойПродукции. В частности, свойство «Сохранять положение окна» (SaveWindowPosition) было переведено в значение «Нет».
Рассмотрим, зачем это было сделано. Согласно технической документации и анализу библиотеки интеграции с ГИС МТ, такое решение обусловлено стремлением избежать ошибок отображения на мониторах с разным разрешением и нестандартным масштабированием Windows (например, 125% или 150%). Когда 1С сохраняет координаты окна, при смене монитора или изменении настроек экрана форма может «уплыть» за границы видимости, что делает работу пользователя невозможной без полной очистки настроек интерфейса. Чтобы минимизировать количество обращений в техподдержку с проблемой «исчезнувших окон», разработчики принудительно отключили сохранение позиции для этой критически важной формы.
Поскольку изменение внесено на уровне метаданных основной конфигурации, мы не можем просто изменить настройку в режиме «1С:Предприятие». Однако мы можем создать расширение, которое переопределит это поведение. Разберем этот процесс по шагам:
ПроверкаИПодборМаркируемойПродукции. Обычно она находится в составе обработок, отвечающих за интеграцию с ИС МП (Маркировка).Истина).Важный нюанс: Если после включения этого свойства окно все равно продолжает центрироваться, проанализируем модуль формы. В новых релизах может присутствовать программная инициализация размера в процедуре ПриОткрытии или ПриСозданииНаСервере. В этом случае нам потребуется программное вмешательство.
Если простое включение свойства в метаданных не помогает (например, из-за жесткой верстки внутри кода библиотеки интеграции), мы применим программный метод. Мы заставим форму открываться сразу в максимизированном состоянии (на весь экран), что наиболее удобно для складских операций и проверки продукции.
Рассмотрим пример кода, который необходимо добавить в расширение для формы ПроверкаИПодборМаркируемойПродукции:
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
// Устанавливаем состояние окна в режим "Максимизированное"
ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Максимизированное;
КонецПроцедуры
Использование метода ВариантСостоянияОкна.Максимизированное гарантирует, что при каждом вызове проверки маркировки из документа реализации, окно будет занимать все доступное рабочее пространство. Это исключает необходимость ручного растягивания формы мышкой.
Проанализируем сопутствующие неудобства, которые часто возникают в релизе 11.5.19.74. Пользователи отмечают, что помимо размера окна, иногда теряется фокус ввода. При открытии формы курсор не всегда попадает в поле сканирования штрихкодов, что требует лишнего клика.
Для решения этой проблемы в том же расширении в процедуре ПриОткрытии рекомендуется принудительно устанавливать текущий элемент. Посмотрим, как это выглядит в коде:
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Максимизированное;
// Если на форме есть поле для ввода штрихкода (например, с именем "ПолеВводаШтрихкода")
// Элементы.ПолеВводаШтрихкода.Активизировать();
КонецПроцедуры
Иногда, даже после внесения изменений в расширение, старые «кривые» настройки могут мешать корректному отображению. Выясним, как полностью сбросить визуальные настройки для конкретного пользователя:
Обратите внимание: Очистка кэша через параметры запуска (команда /ClearCache) помогает обновить программные модули, но настройки положения окон хранятся в базе данных (в системном хранилище настроек), поэтому очистка через интерфейс программы более эффективна в данном случае.
Мы выяснили, что сброс размера формы в УТ 11.5.19.74 — это не случайный баг, а изменение логики интерфейса со стороны 1С. Для возврата комфортной работы мы рекомендуем использовать расширение конфигурации. Это наиболее безопасный способ, который не мешает дальнейшим обновлениям программы. Установка свойства Сохранять положение окна или принудительное выполнение ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Максимизированное полностью решают проблему и экономят время кладовщиков и менеджеров при подборе маркируемого товара.