При работе в среде 1С:Предприятие 8.3 (в особенности на обычных формах после миграции с платформы 8.2) администраторы и разработчики иногда сталкиваются со специфической ошибкой: табличные части перестают растягиваться при изменении размеров окна, а элементы интерфейса накладываются друг на друга. При этом после очистки локального кэша файлов на диске (папки AppData\Local\1C и AppData\Roaming\1C) первое открытие формы происходит корректно, однако при повторном открытии геометрия снова ломается. Проблема проявляется только у одной конкретной учетной записи.
Проанализируем причины такого поведения платформы и разберем пошаговые методы устранения неполадки.
Причины некорректного сохранения привязок
Выясним причину, почему стандартная очистка локальных каталогов не дает долговременного эффекта. Геометрия окон, размеры колонок и индивидуальное расположение элементов сохраняются не только во временных файлах на рабочем месте, но и непосредственно в базе данных — в системном хранилище настроек пользователя.
Основные факторы, провоцирующие сбой:
Нестандартный масштаб экрана (DPI) в Windows. Если у пользователя установлен масштаб 125%, 150% или сессия RDP запускается с нестандартным разрешением, платформа 8.3 при закрытии окна выполняет пересчет координат элементов с погрешностью. Эти искаженные координаты сохраняются в базу, и при следующем открытии привязки перестают работать.
Повреждение записи настроек формы в информационной базе. В хранилище настроек конкретного пользователя записаны некорректные размеры элементов, которые принудительно восстанавливаются при каждом открытии формы после ее первого закрытия.
Особенности алгоритмов привязок платформы 8.3 для обычных форм. Механизм автоматических и жестких привязок на обычных формах платформы 8.3 более чувствителен к смене геометрии окна, чем в 8.2.
Способ 1. Диагностика проблемы под другой учетной записью
Прежде чем выполнять радикальные действия, локализуем проблему. Разберем диагностические шаги:
Авторизуемся в базе данных на том же рабочем месте под другим пользователем 1С. Если у другого пользователя форма открывается и закрывается без деформаций, проблема кроется исключительно в сохраненных настройках проблемного пользователя внутри базы.
Выполняем вход проблемным пользователем 1С с другого компьютера. Если ошибка повторяется, это подтверждает повреждение пользовательского профиля настроек в базе данных.
Способ 2. Очистка настроек формы и профиля в режиме «1С:Предприятие»
Рассмотрим, как сбросить сохраненные размеры окна стандартными инструментами:
Открываем проблемную форму под пользователем, вызываем системное меню окна (клик правой кнопкой мыши по заголовку формы или левой кнопкой по иконке в левом верхнем углу окна) и выбираем пункт «Восстановить положение окна».
Если в конфигурации доступен блок администрирования, переходим в раздел администрирования настроек пользователей (например, «Настройки пользователей и прав» — «Очистка настроек») и удаляем сохраненные настройки интерфейса и форм для проблемного пользователя.
В крайнем случае можно скопировать настройки от корректно работающего пользователя либо пересоздать учетную запись пользователя в справочнике и списке пользователей базы данных.
Способ 3. Программная очистка сохраненных настроек формы
Если сброс через интерфейс не помог, очистим запись настроек программно через внешнюю обработку или консоль кода. Воспользуемся объектом ХранилищеСистемныхНастроек:
// Очистка настроек конкретной формы для пользователя
КлючОбъекта = "Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента/НастройкиОкна";
КлючНастроек = "";
ИмяПользователя = "ИвановИИ";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, КлючНастроек, ИмяПользователя);
Для полной очистки всех системных настроек конкретного пользователя можно перебрать их и удалить методом ХранилищеСистемныхНастроек.Удалить().
Способ 4. Корректировка масштабирования и параметров совместимости DPI
Разберем по шагам настройку операционной системы на компьютере пользователя, чтобы предотвратить повторное повреждение координат:
Устанавливаем масштаб экрана в Windows строго на 100% (96 DPI).
Если изменить масштаб экрана монитора нельзя, переопределяем режим масштабирования для исполняемого файла 1cv8.exe:
Открываем свойства ярлыка или файла 1cv8.exe.
Переходим на вкладку «Совместимость» и нажимаем «Изменить параметры высокого DPI».
Включаем опцию «Переопределить режим масштабирования высокого разрешения» и выбираем пункт «Система» (или «Приложение»).
Способ 5. Пересчет карты привязок в Конфигураторе
Если форма подвергалась доработкам и сбоит у нескольких пользователей, обновим внутреннюю карту привязок метаданных:
Открываем конфигурацию на компьютере с масштабом экрана 100%.
Открываем проблемную форму, слегка изменяем ее размер за правый нижний угол (растягиваем и возвращаем в исходное положение). Это действие инициирует внутренний пересчет привязок платформой.
Проверяем поведение формы встроенным инструментом: меню «Форма» — «Проверить» (комбинация клавиш Ctrl + R), тестируя масштабирование при изменении размеров.