При обновлении технологической платформы 1С:Предприятие 8 до актуальных версий пользователи старых конфигураций, таких как Бухгалтерия предприятия 2.0, нередко сталкиваются с неприятной особенностью: формы документов перестают корректно масштабироваться. Элементы интерфейса «сжимаются» или не реагируют на попытку растянуть окно вручную. Давайте разберемся, почему это происходит и какими способами можно вернуть привычный комфорт в работе.
В большинстве случаев проблема кроется в устаревших записях о положении окон, которые хранятся в кэше пользователя. При смене версии платформы алгоритмы рендеринга интерфейса могли измениться, и старые настройки координат становятся неактуальными. Прежде чем переходить к изменению кода, выполним следующие шаги:
%AppData%\1C\1Cv8 и %LOCALAPPDATA%\1C\1Cv8. Удобнее всего сделать это с помощью пакетного файла (.bat), выполнив его от имени администратора:
rmdir "%AppData%\1C\1Cv82" /S /Q
rmdir "%LOCALAPPDATA%\1C\1Cv82" /S /Q
rmdir "%AppData%\1C\1Cv8" /S /Q
rmdir "%LOCALAPPDATA%\1C\1Cv8" /S /Q
Бухгалтерия предприятия 2.0 разработана на основе обычных форм, которые плохо адаптируются к системному масштабу экрана выше 100%. Убедитесь, что в настройках дисплея Windows установлен масштаб 100%. Если работа ведется через RDP, это требование становится критическим для корректного отображения графических объектов.Alt+Shift+R при открытом окне документа. Это даст команде платформе сбросить текущие параметры отображения к заводским настройкам.Если очистка кэша и корректировка настроек экрана не дают стабильного результата, значит, платформа продолжает некорректно интерпретировать размеры контейнеров старой конфигурации. В этом случае единственным надежным выходом является принудительное управление размерами формы с помощью встроенных механизмов 1С. Мы можем зафиксировать ширину и высоту формы вручную через обработчики событий.
Для исправления ситуации выполним следующие действия в конфигураторе:
ПередОткрытием. Этот код считывает сохраненные значения ширины и высоты из настроек пользователя и принудительно устанавливает их для формы.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
КлючСохраненияПоложенияОкна = Новый УникальныйИдентификатор;
ШиринаФормы = ВосстановитьЗначение("ШиринаФормы");
Если ЗначениеЗаполнено(ШиринаФормы) Тогда
ЭтаФорма.Ширина = ШиринаФормы;
КонецЕсли;
ВысотаФормы = ВосстановитьЗначение("ВысотаФормы");
Если ЗначениеЗаполнено(ВысотаФормы) Тогда
ЭтаФорма.Высота = ВысотаФормы;
КонецЕсли;
КонецПроцедуры
Теперь необходимо обеспечить сохранение этих параметров при закрытии формы, чтобы при следующем открытии 1С «помнила» комфортный для пользователя размер:
ПередЗакрытием:
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
СохранитьЗначение("ШиринаФормы", ЭтаФорма.Ширина);
СохранитьЗначение("ВысотаФормы", ЭтаФорма.Высота);
КонецПроцедуры
Используя методы СохранитьЗначение и ВосстановитьЗначение, мы выносим управление геометрией формы за пределы стандартных алгоритмов платформы, которые могут конфликтовать с устаревшими элементами управления. Теперь параметры окна хранятся непосредственно в настройках текущего пользователя в информационной базе, что гарантирует сохранение размеров независимо от того, какие параметры DPI установлены на конкретном компьютере или сервере.
Этот метод является универсальным для всех форм, которые «отказываются» растягиваться. Применив этот подход, вы навсегда решите проблему визуального дискомфорта пользователей при работе в БП 2.0 на современных версиях платформы.