Как исправить сбой отображения элементов и выдвигающихся панелей в документе Начисление зарплаты в 1С

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

При обновлении конфигураций на базе обычных форм пользователи нередко сталкиваются с неприятным графическим дефектом: в документе Начисление зарплаты перестают корректно работать выдвигающиеся панели (например, Расчетный лист, Распределение по источникам или Отражение в учете). Элементы управления сжимаются по горизонтали к левому краю окна, накладываются друг на друга либо вовсе перестают раскрываться при клике по соответствующим ссылкам. Проблема чаще всего усугубляется при изменении геометрических размеров окна документа пользователем.

Разберем детально, почему возникает подобное поведение платформы и какими способами можно восстановить нормальное отображение формы.

Выясним причины возникновения проблемы

Проанализируем основные факторы, приводящие к нарушению графического интерфейса:

  1. Сбой механизма автоматических привязок границ: В обычных формах элементы управления позиционируются относительно границ окна или родительских контейнеров. Если для выдвижных панелей включена опция автоматической привязки, то при программном изменении высоты или видимости элементов координаты рассчитываются с ошибкой.
  2. Некорректное масштабирование Windows (DPI > 100%): Обычные формы изначально проектировались под стандартную плотность пикселей 96 DPI. При включенном системном масштабировании экрана (125%, 150%) алгоритм пересчета координат дает сбой.
  3. Кэширование некорректных настроек формы: В момент закрытия формы с искаженными границами платформа 1С сохраняет ошибочные геометрические параметры в пользовательском кэше и системном хранилище настроек, в результате чего сбой воспроизводится при каждом последующем открытии.
  4. Ошибки кэша метаданных платформы: При обновлении конфигурации внутренние структуры формы могут зафиксироваться в кэше с ошибками формата потока.

Способ 1. Принудительное обновление структуры и модуля формы в Конфигураторе

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

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

Такое действие заставляет платформу заново перекомпилировать форму и обновить внутренние привязки элементов управления, устраняя накопившиеся ошибки кэша конфигурации.

Способ 2. Ручная корректировка привязок границ элементов формы

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

  1. Откроем форму документа в конфигураторе и выделим проблемную панель или табличное поле расчетного листка.
  2. В контекстном меню выберем пункт Привязка границ.
  3. Отключим свойство Авто привязка границ у проблемной группы элементов.
  4. Зададим жесткую фиксацию границ дочерних элементов управления относительно родительской панели (по левому, правому, верхнему и нижнему краю контейнера), а не относительно внешних границ формы.
  5. Проверим корректность поведения формы с помощью встроенного режима предварительного просмотра, нажав комбинацию клавиш Ctrl + R, и протестируем растягивание окна во всех направлениях.

Способ 3. Фиксация начальных размеров в программном коде формы

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


Процедура ПриОткрытии()
    // Принудительно устанавливаем корректную ширину и привязки для выдвижных панелей
    ЭлементыФормы.ПанельРасчетныйЛисток.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина;
    ЭлементыФормы.ПанельРасчетныйЛисток.Лево   = ЭлементыФормы.ОсновнаяПанель.Лево;
КонецПроцедуры

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

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

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

  1. Закроем все запущенные сеансы системы 1С:Предприятие.
  2. Перейдем в каталоги временных файлов пользователя операционной системы:
    %AppData%\1C\1Cv82\
    %LocalAppData%\1C\1Cv82\
    (или в папки 1Cv8 при использовании платформы 8.3).
  3. Удалим каталоги с уникальными идентификаторами баз данных (папки с длинными буквенно-цифровыми названиями вида 3285f0b6-074d-4a07-a7e0-d19bcc1db2de).
  4. Также можно выполнить точечный сброс: зайти в меню Сервис -> Настройки пользователя и очистить сохраненные настройки формы для документа начисления зарплаты.

Способ 5. Настройка масштабирования экрана (DPI) и обновление платформы

Проанализируем системные параметры рабочего места пользователя, которые напрямую влияют на работу графической подсистемы:

  1. Настройка параметров DPI: Нажмите правой кнопкой мыши на ярлык запуска 1С, перейдите в Свойства -> Совместимость -> Изменить параметры высокого DPI. Установите флажок Переопределите режим масштабирования высокого DPI и выберите режим Приложение (Application).
  2. Масштаб экрана Windows: В параметрах дисплея операционной системы установите рекомендуемый масштаб 100% (96 DPI).
  3. Обновление релиза технологической платформы: В старых сборках 1С наблюдались внутренние ошибки отрисовки динамических панелей. Рекомендуется использовать актуальные стабильные релизы платформы (например, ветки 8.3.9 и выше, либо финальную сборку 8.2.19.130 в зависимости от требований конфигурации), где ошибки пересчета координат привязок исправлены разработчиками.
← На главную