Почему обычная форма документа в 1С:УПП открывается на половину экрана и как это исправить?

Программист 1С v8.3 (Обычные формы)
← На главную

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

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

Почему возникает эта проблема? Выясняем причины

Прежде чем перейти к методам решения, давайте разберем, почему конфигурация начинает вести себя подобным образом. Проблема носит комплексный характер и обычно вызывается тремя основными факторами:

  1. Конфликт масштабирования Windows (DPI). Это самая распространенная причина. Если разработчик в фирме «1С» или обслуживающий программист вносил изменения в форму на мониторе с установленным масштабом экрана 125%, 150% или выше, координаты элементов жестко прописываются в файле метаданных под это разрешение. Когда пользователь со стандартным масштабом экрана 100% пытается открыть эту форму, платформа 1С пытается пересчитать экранные координаты. В результате привязки элементов ломаются, и окно визуально сжимается вдвое.
  2. Системный баг платформы при закрытии максимизированных окон. В платформе 1С:Предприятие 8.3 (особенно на релизах линеек 8.3.14, 8.3.15 и новее) присутствует застарелая ошибка работы с обычным интерфейсом. Если пользователь закрывает окно документа, когда оно развернуто на весь экран, координаты его «обычного» состояния перезаписываются некорректными значениями. При следующем открытии форма считывает эти искаженные данные из системного кэша настроек.
  3. «Битые» привязки новых элементов (маркировка, ЕГАИС). В последних релизах УПП 1.3 разработчики активно добавляют на формы новые реквизиты для работы с маркируемой продукцией (табак, обувь, одежда и т.д.). При добавлении новых закладок и полей часто забывают настроить автоматические привязки к границам родительской формы. В итоге новые элементы «держат» форму мертвой хваткой, не позволяя ей растягиваться. При возникновении критических сложностей с поддержкой интерфейса устаревшей системы можно посетить раздел с решениями для перехода с УПП на современные конфигурации.

---

Способ 1. Быстрое решение для пользователей (Сброс настроек формы)

Если проблему нужно решить «здесь и сейчас» прямо на рабочем месте пользователя без изменения конфигурации, мы можем воспользоваться встроенными механизмами сброса настроек позиционирования окон.

Рассмотрим по шагам, как вернуть форму в исходное состояние:

  1. Откройте проблемный документ (например, платежное поручение).
  2. Если форма открылась в сжатом виде, нажмите на клавиатуре комбинацию клавиш Alt + Shift + R.
  3. В качестве альтернативы можно нажать правой кнопкой мыши по заголовку окна (или использовать системное меню «Окна» в главном меню программы) и выбрать команду «Восстановить положение окна».

Важное примечание: К сожалению, этот метод часто помогает только до первого закрытия документа. Как только пользователь закроет окно в развернутом виде, некорректные координаты снова запишутся в кэш. Чтобы решить проблему раз и навсегда, необходимо применить административные методы.

---

Способ 2. Очистка системного хранилища настроек

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

Проанализируем процесс очистки:

  1. Перейдите в меню Сервис — Настройки пользователей — Очистка настроек пользователей.
  2. В открывшемся списке найдите проблемного пользователя.
  3. В дереве настроек разверните ветку, отвечающую за сохранение положения окон, найдите нужный документ (например, Документ.ПлатежноеПоручениеВходящее) и удалите эту запись.

Если вы хотите автоматизировать этот процесс или сбросить настройки программно для всех пользователей сразу, можно запустить обработку со следующим кодом:


// Пример программного удаления сохраненных настроек окна
КлючОбъекта = "Общее/СохранениеПоложенияОкон/Документы/ПлатежноеПоручениеВходящее/ФормаДокумента";
ПользователиИнформационнойБазы = ПользователиИнформационнойБазы.ПолучитьПользователей();

Для Каждого ТекПользователь Из ПользователиИнформационнойБазы Цикл
    ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, "", ТекПользователь.Имя);
КонецЦикла;

---

Способ 3. Кардинальное исправление привязок в Конфигураторе

Если предыдущие способы не дают долгосрочного результата, это означает, что корень проблемы кроется в «кривых» привязках элементов на самой форме. Давайте исправим это в Конфигураторе.

Выполним следующие действия по шагам:

  1. Откройте конфигурацию, найдите проблемный документ и откройте его форму.
  2. Переведите форму в режим тестирования, нажав сочетание клавиш Ctrl + R.
  3. Попробуйте медленно растягивать тестовую форму за правый и нижний края.
  4. Внимательно следите за поведением элементов. Тот элемент, который жестко зафиксирован и не дает форме увеличиваться, подсветится красными линиями или начнет визуально дергаться.
  5. Закройте режим тестирования. Щелкните правой кнопкой мыши по проблемному элементу (часто это новые панели интеграции с ИС МП, табачной продукцией или ЕГАИС) и откройте его Свойства. Для автоматизации учета алкогольной продукции в системе также применяется специализированный модуль автоматизации обмена данными между 1С и ЕГАИС.
  6. Перейдите в раздел «Привязки». Убедитесь, что правая граница элемента привязана к правой границе панели (или формы) с коэффициентом 1 (или установлена относительная привязка), а не зафиксирована жестко в пикселях.
  7. Если элемент не должен растягиваться, установите для его правой или нижней границы значение «Не привязывать».

---

Способ 4. «Трюк» с изменением масштаба разработчика

Существует проверенный временем «лайфхак», который позволяет быстро исправить сбившиеся из-за DPI привязки, не переписывая их вручную для каждого элемента формы.

Выполним данный трюк по шагам:

  1. Убедитесь, что на вашем компьютере в настройках экрана Windows установлен масштаб 100%. Это критически важно!
  2. Откройте базу данных в режиме Конфигуратор.
  3. Откройте проблемную форму документа.
  4. Выделите абсолютно любой элемент на форме (например, какую-нибудь надпись или кнопку) и сдвиньте его на один пиксель в сторону с помощью стрелок на клавиатуре, а затем верните обратно на его исходное место.
  5. Сохраните форму и обновите конфигурацию базы данных (клавиша F7). Для безопасного обслуживания и автоматического создания архивов перед такими операциями удобно применять программу для архивирования и пакетного обновления баз 1С.

Почему это работает? При любом физическом изменении положения элемента на форме при 100%-ом масштабе экрана платформа принудительно пересчитывает все внутренние координаты и привязки элементов XML-описания формы под стандартный DPI. Старые «кривые» координаты, записанные при 125% масштабе, полностью перезаписываются корректными значениями.

---

Способ 5. Изменение свойства «Состояние окна» формы

Еще один надежный способ заставить форму игнорировать некорректно сохраненные системой координаты — переопределить поведение самого окна формы.

Давайте настроим свойства окна формы в Конфигураторе:

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

Установка состояния окна в значение «Свободное» позволяет форме динамически определять свои размеры при открытии, успешно обходя баги платформы 1С по сохранению координат максимизированных окон.

---

Резюме и рекомендации

Мы подробно разобрали проблему некорректного открытия обычных форм в УПП 1.3 на половину экрана. Для быстрого исправления ситуации у конечного пользователя отлично подойдет комбинация Alt + Shift + R. Если же вы хотите закрыть этот вопрос системно для всех пользователей сразу, мы рекомендуем зайти в базу под масштабом экрана 100%, открыть форму в Конфигураторе, слегка сдвинуть любой элемент туда-обратно для пересчета координат платформой и перевести свойство формы «Состояние окна» в положение «Свободное».

← На главную