Почему форма проверки и подбора маркируемой продукции в УТ 11.5 не сохраняет свой размер и как это исправить

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

После обновления конфигурации 1С:Управление торговлей до релиза 11.5.19.74 (и выше) многие пользователи столкнулись с досадным изменением в интерфейсе. При работе с расходными накладными форма «Проверка и подбор маркируемой продукции» перестала запоминать свой размер и положение. Каждый раз при открытии окно центрируется и сбрасывается к стандартному масштабу, даже если в предыдущий раз пользователь разворачивал его на весь экран для удобного сканирования кодов DataMatrix. В этой статье мы подробно разберем, почему это произошло и как вернуть привычное поведение интерфейса.

Проанализируем причину изменения поведения формы

Первым делом выясним причину такого поведения. Как показывает сравнение метаданных между старыми и новыми релизами, разработчики 1С целенаправленно изменили свойства служебной формы ПроверкаИПодборМаркируемойПродукции. В частности, свойство «Сохранять положение окна» (SaveWindowPosition) было переведено в значение «Нет».

Рассмотрим, зачем это было сделано. Согласно технической документации и анализу библиотеки интеграции с ГИС МТ, такое решение обусловлено стремлением избежать ошибок отображения на мониторах с разным разрешением и нестандартным масштабированием Windows (например, 125% или 150%). Когда 1С сохраняет координаты окна, при смене монитора или изменении настроек экрана форма может «уплыть» за границы видимости, что делает работу пользователя невозможной без полной очистки настроек интерфейса. Чтобы минимизировать количество обращений в техподдержку с проблемой «исчезнувших окон», разработчики принудительно отключили сохранение позиции для этой критически важной формы.

Вариант 1. Восстановление свойств через расширение конфигурации

Поскольку изменение внесено на уровне метаданных основной конфигурации, мы не можем просто изменить настройку в режиме «1С:Предприятие». Однако мы можем создать расширение, которое переопределит это поведение. Разберем этот процесс по шагам:

  1. Зайдем в конфигуратор и создадим новое расширение (меню Конфигурация — Расширения конфигурации).
  2. В основной конфигурации найдем форму ПроверкаИПодборМаркируемойПродукции. Обычно она находится в составе обработок, отвечающих за интеграцию с ИС МП (Маркировка).
  3. Добавим эту форму в наше расширение.
  4. В расширении откроем палитру свойств данной формы.
  5. Найдем параметр «Сохранять положение окна» и установим галочку (значение Истина).

Важный нюанс: Если после включения этого свойства окно все равно продолжает центрироваться, проанализируем модуль формы. В новых релизах может присутствовать программная инициализация размера в процедуре ПриОткрытии или ПриСозданииНаСервере. В этом случае нам потребуется программное вмешательство.

Вариант 2. Программная установка состояния окна

Если простое включение свойства в метаданных не помогает (например, из-за жесткой верстки внутри кода библиотеки интеграции), мы применим программный метод. Мы заставим форму открываться сразу в максимизированном состоянии (на весь экран), что наиболее удобно для складских операций и проверки продукции.

Рассмотрим пример кода, который необходимо добавить в расширение для формы ПроверкаИПодборМаркируемойПродукции:


&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
    // Устанавливаем состояние окна в режим "Максимизированное"
    ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Максимизированное;
КонецПроцедуры

Использование метода ВариантСостоянияОкна.Максимизированное гарантирует, что при каждом вызове проверки маркировки из документа реализации, окно будет занимать все доступное рабочее пространство. Это исключает необходимость ручного растягивания формы мышкой.

Дополнительные проблемы с фокусом и масштабированием

Проанализируем сопутствующие неудобства, которые часто возникают в релизе 11.5.19.74. Пользователи отмечают, что помимо размера окна, иногда теряется фокус ввода. При открытии формы курсор не всегда попадает в поле сканирования штрихкодов, что требует лишнего клика.

Для решения этой проблемы в том же расширении в процедуре ПриОткрытии рекомендуется принудительно устанавливать текущий элемент. Посмотрим, как это выглядит в коде:


&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
    ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Максимизированное;
    
    // Если на форме есть поле для ввода штрихкода (например, с именем "ПолеВводаШтрихкода")
    // Элементы.ПолеВводаШтрихкода.Активизировать(); 
КонецПроцедуры

Очистка кэша и пользовательских настроек

Иногда, даже после внесения изменений в расширение, старые «кривые» настройки могут мешать корректному отображению. Выясним, как полностью сбросить визуальные настройки для конкретного пользователя:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Откроем справочник Настройки пользователей.
  3. Выберем нужного сотрудника и перейдем в закладку Внешний вид.
  4. Найдем в списке форму проверки маркировки и нажмем «Очистить».

Обратите внимание: Очистка кэша через параметры запуска (команда /ClearCache) помогает обновить программные модули, но настройки положения окон хранятся в базе данных (в системном хранилище настроек), поэтому очистка через интерфейс программы более эффективна в данном случае.

Заключение

Мы выяснили, что сброс размера формы в УТ 11.5.19.74 — это не случайный баг, а изменение логики интерфейса со стороны 1С. Для возврата комфортной работы мы рекомендуем использовать расширение конфигурации. Это наиболее безопасный способ, который не мешает дальнейшим обновлениям программы. Установка свойства Сохранять положение окна или принудительное выполнение ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Максимизированное полностью решают проблему и экономят время кладовщиков и менеджеров при подборе маркируемого товара.

← На главную