После проведения планового обновления конфигурации «1С:Управление производственным предприятием» (УПП) редакции 1.3 многие администраторы и разработчики сталкиваются с неприятным сюрпризом: интерфейс карточки номенклатуры начинает вести себя непредсказуемо. При попытке пользователя изменить размеры окна (растянуть его по горизонтали или вертикали) элементы управления — кнопки, текстовые поля, вкладки и табличные части — начинают накладываться друг на друга, сжиматься до невидимого состояния или вовсе пропадать из зоны видимости.
В этой статье мы подробно разберем, почему возникает данная проблема, как продиагностировать её в конфигураторе и какие существуют практические способы решения — от временных мер (обходных путей) до полного устранения дефекта.
Давайте детально проанализируем, как проявляется эта ошибка на практике. При открытии элемента справочника Номенклатура в режиме «1С:Предприятие» форма изначально может выглядеть вполне стандартно и аккуратно. Однако стоит пользователю зацепить мышкой край окна и попытаться изменить его размер, как верстка мгновенно ломается.
Основные признаки неисправности привязок в интерфейсе:
Интересной особенностью является то, что при тестировании формы в конфигураторе стандартными средствами визуального редактора привязки могут казаться абсолютно рабочими. Выясним причину такого поведения.
Для первичной диагностики выполним следующие шаги в конфигураторе:
Справочники — Номенклатура — Формы — ФормаЭлемента.Проанализируем природу этой ошибки. Описанная проблема не является следствием некорректных действий администратора при обновлении или уникальной особенностью конкретной базы данных. Это официально зарегистрированная ошибка фирмы «1С» под номером 000066168.
Она была допущена разработчиками при выпуске обновлений в середине мая 2020 года и затронула конфигурации:
Суть дефекта заключается в том, что при очередном обновлении состава реквизитов формы элемента справочника Номенклатура были случайно сбиты горизонтальные и вертикальные свойства привязок (anchors) для ключевых контейнеров (панелей и групп). Из-за этого нарушилась иерархия автоматического расчета координат дочерних элементов при изменении размеров родительского окна.
Если пользователи массово жалуются на «сломанный» интерфейс карточки товара, а у вас нет возможности прямо сейчас вносить изменения в конфигурацию, можно воспользоваться быстрым временным решением непосредственно в режиме «1С:Предприятие».
Для восстановления нормального отображения формы выполним следующие действия:
Эта команда сбрасывает кэшированные настройки размеров и положения конкретного окна для текущего пользователя, возвращая форму к исходному (дефолтному) масштабу, заложенному в конфигурации. Элементы снова встанут на свои места. Важно помнить: как только пользователь попытается вручную изменить размер карточки, привязки сломаются повторно.
Рассмотрим более надежный способ решения проблемы, если вы только планируете обновление на релизы 1.3.140.х или если база находится на поддержке с возможностью изменения. Отличным выходом будет сохранение стабильной версии формы из предыдущего рабочего релиза (например, 1.3.139.х).
Разберем по шагам процесс отката привязок формы элемента через механизм сравнения и объединения:
Конфигурация — Поддержка — Обновить конфигурацию (или выполним сравнение и объединение с конфигурацией поставщика/файлом конфигурации .cf предыдущего стабильного релиза).Справочники — Номенклатура — Формы.ФормаЭлемента.Если вы уже обновились и форма работает некорректно, вы можете аналогичным образом объединить вашу рабочую конфигурацию с архивной копией базы (до обновления) или с чистым шаблоном конфигурации релиза 1.3.139.х, выбрав для замены исключительно объект Справочники.Номенклатура.Формы.ФормаЭлемента.
Если вам необходимо сохранить новые доработки формы элемента из релиза 1.3.140.х, но при этом восстановить её работоспособность, привязки придется поправить вручную. Рассмотрим, как это сделать.
Выполним следующие действия в режиме редактирования формы элемента:
ПанельНоменклатура или аналогичные группировочные панели).ПривязкаСправа и ПривязкаСнизу.Форма с типом Растягивать или Правая граница.ПривязкаСнизу) должна быть строго установлена в значение Низ (или привязана к нижней границе формы без растягивания), чтобы кнопки всегда «прилипали» к нижнему краю окна при его растягивании.Для наглядности приведем пример того, как логически распределяются привязки основных элементов формы карточки номенклатуры в обычном приложении:
// Логическая схема привязок элементов управления:
ЭлементФормы.ОсновнаяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Правая, ГраницаФормы.Правая);
ЭлементФормы.ОсновнаяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ГраницаФормы.Низ);
ЭлементФормы.ПанельКнопок.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ГраницаФормы.Низ);
ЭлементФормы.ПанельКнопок.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ГраницаФормы.Низ);
Проверить корректность внесенных изменений можно прямо в процессе редактирования, нажимая Ctrl + R и растягивая окно в разные стороны.
Поскольку проблема носила критический характер и мешала комфортной работе сотен предприятий, фирма «1С» оперативно выпустила исправление. Ошибка 000066168 была полностью устранена в последующих релизах.
Для окончательного и корректного решения проблемы без ручной правки кода и форм рекомендуется обновить конфигурацию до следующих релизов:
В этих версиях разработчики полностью пересобрали верстку формы элемента, исправив все ошибочные свойства привязок. Дополнительным аргументом в пользу этого обновления является то, что в релизе 1.3.140.2 также наблюдались проблемы с импортом банковских выписок (из-за нового тега КодНазПлатежа, введенного ЦБ РФ с 1 июня 2020 года). Обновление до актуальных релизов (1.3.141.1 / 1.3.142.1) позволит вам одним махом закрыть обе эти критические проблемы и вернуть систему в стабильное рабочее состояние.