Получает привязку границы элемента.
Синтаксис
ПолучитьПривязку(<Граница>, <ПервыйЭлемент>, <ГраницаПервогоЭлемента>, <ВторойЭлемент>, <ГраницаВторогоЭлемента>)Полное описание, параметры и ограничения
Расширение элементов управления, расположенных на панели.ПолучитьПривязку (Panel controls extension.GetLink)
Расширение элементов управления, расположенных на панели (Panel controls extension)
ПолучитьПривязку (GetLink)
Доступен, начиная с версии 8.0.
Синтаксис:
ПолучитьПривязку(<Граница>, <ПервыйЭлемент>, <ГраницаПервогоЭлемента>, <ВторойЭлемент>, <ГраницаВторогоЭлемента>)
Параметры:
<Граница> (обязательный)
Тип: ГраницаЭлементаУправления.
Граница, привязки которой вернет данный метод.
<ПервыйЭлемент> (обязательный)
Элемент управления, к которому жестко привязана указанная граница.
<ГраницаПервогоЭлемента> (обязательный)
Тип: ГраницаЭлементаУправления.
Граница элемента управления, к которой жестко привязана указанная граница.
<ВторойЭлемент> (обязательный)
Элемент управления, к которому пропорционально привязана указанная граница.
<ГраницаВторогоЭлемента> (обязательный)
Тип: ГраницаЭлементаУправления.
Граница элемента управления, к которой пропорционально привязана указанная граница.
Описание:
Получает привязку границы элемента.
Доступность:
Толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Проверить геометрию, привязки, видимость и свёртку своей панели
Полный модуль собственной обычной формы: реальные элементы правильного контекста, точные свойства/события и подробная проверка UI/RAM без запуска1С при подготовке справочника.
Где и как запускать
Полный модуль обычной формы ОпытЭлементов85 в новом стенде УчебныеРасширенияЭлементов85. Только толстый Windows-клиент с обычными формами; не управляемый/серверный модуль.
Подготовка
Новая пустая конфигурация УчебныеРасширенияЭлементов85, платформа8.5.1.1343, обычное приложение и толстый Windows-клиент с обычными формами. Не управляемая форма, не серверный модуль, не рабочая УТ/КА/УНФ.
Обработки → ОпытЭлементов85: реквизит СогласенНаСвоюФорму85 Булево и для табличного урока Товары85 ТаблицаЗначений. Создайте обычную форму Форма; основной код — полный модуль этой формы.
На главной панели заранее разместите флажок Подтверждение85, Данные=СогласенНаСвоюФорму85, и обычную кнопку УчебнаяКоманда85. Расположите их выше будущих учебных полей; форму/панель сделайте достаточного размера не менее120×70 логических единиц.
Свяжите ПриОткрытии формы с одноимённой процедурой без параметров. Нажатие УчебнаяКоманда85 в редакторе не назначайте: полный код задаёт Новый Действие с точным именем экспортной процедуры.
У обработчика Нажатие обычной кнопки в форме есть первый параметр Элемент, хотя базовая страница Кнопка.Нажатие показывает Нажатие(). Это добавление расширения элемента, расположенного в форме; не убирайте параметр.
Для системного урока Режим85 НЕ создавайте заранее. Настоящий ПолеВвода добавляется через ЭлементыФормы.Добавить, ни с реквизитом обработки, ни с документом не связывается. ТипЗначения задаёт именно РежимЗаписиДокумента, затем расширение ДоступныеЗначения ограничивает реальные значения.
Для панельного урока Контейнер85/Первое85/Второе85 НЕ создавайте заранее. Это три собственных динамических элемента: настоящая вложенная Панель и два ПолеВвода на ней. Ни поле, ни таблица не назначается владельцем формы.
Координаты/ширина/высота — логические единицы относительно собственной панели, не пиксели экрана. Первый редактор имеет6/6/68/6 и правую привязку к своей панели шириной80; второй расположен ниже.
Для табличного урока добавьте только ТабличноеПоле Таблица85 с Данные=Товары85. Остальные его колонки создаёт код; заранее настроенные колонки рабочей формы не используются.
Доплата85 — новая отдельная колонка интерфейса, не колонка ТаблицаЗначений Товары85; её Данные не назначаются. ТипЗначения разрешается менять только у этого несвязанного редактора, не у связанных Наименование/Количество/Цена/Сумма.
ПриИзменении поля ввода в колонке имеет первый параметр Элемент от расширения табличного поля; базовый ПриИзменении() дополнительных параметров не имеет. Экспортная ДоплатаИзменена85(Элемент) назначается реальному редактору, напрямую вручную не вызывается.
Каждый урок — отдельная новая форма или полная замена её модуля; одноимённые ПриОткрытии не склеиваются. Переменные состояния обычного модуля формы не переносите в общий серверный модуль.
F7 и обновление только своего стенда. Откройте собственную форму, подтвердите флажком опыт и выполните будущие ручные проверки. Системный режим записи в данном уроке лишь выбранное значение интерфейса: документов и проведения нет.
runtimeVerifiedScenarios=0:1С/GUI здесь не запускались, поля/события/привязки реально не выполнялись, базы/метаданные конфигураций не изменялись и новые резервные копии/архивы не создавались.
Перем Свёрнуто85;
Процедура ПриОткрытии()
ПроверитьСвойСтенд85();
СогласенНаСвоюФорму85 = Ложь;
Если ЭтаФорма.ЭлементыФормы.Найти("Контейнер85") <> Неопределено
Или ЭтаФорма.ЭлементыФормы.Найти("Первое85") <> Неопределено
Или ЭтаФорма.ЭлементыФормы.Найти("Второе85") <> Неопределено Тогда
ВызватьИсключение "Свои имена уже заняты; существующие элементы не меняются";
КонецЕсли;
Контейнер = ЭтаФорма.ЭлементыФормы.Добавить(Тип("Панель"), "Контейнер85", Истина, ЭтаФорма.Панель);
Контейнер.Лево = 6;
Контейнер.Верх = 18;
Контейнер.Ширина = 80;
Контейнер.Высота = 36;
Первое = СоздатьСвоёПоле85("Первое85", Контейнер, 6, "Книга:3");
Второе = СоздатьСвоёПоле85("Второе85", Контейнер, 16, "Ручка:1");
Первое.ПорядокОбхода = 1;
Второе.ПорядокОбхода = 2;
Первое.ПорядокОтображения = 1;
Второе.ПорядокОтображения = 2;
Первое.УстановитьПривязку(ГраницаЭлементаУправления.Право, Контейнер, ГраницаЭлементаУправления.Право);
Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда85;
Кнопка.УстановитьДействие("Нажатие", Новый Действие("ПроверитьКомпоновку85"));
Свёрнуто85 = Ложь;
Сообщить("Оба поля — собственные элементы своей вложенной панели. Команда проверит привязку и переключит свёртку второго поля.");
КонецПроцедуры
Функция СоздатьСвоёПоле85(Имя, Контейнер, Верх, Текст)
Поле = ЭтаФорма.ЭлементыФормы.Добавить(Тип("ПолеВвода"), Имя, Истина, Контейнер);
Поле.ТипЗначения = Новый ОписаниеТипов("Строка");
Поле.Значение = Текст;
Поле.УстановитьПривязку(ГраницаЭлементаУправления.Лево);
Поле.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
Поле.УстановитьПривязку(ГраницаЭлементаУправления.Право);
Поле.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
Поле.Лево = 6;
Поле.Верх = Верх;
Поле.Ширина = 68;
Поле.Высота = 6;
Поле.Видимость = Истина;
Поле.Свертка = РежимСверткиЭлементаУправления.Нет;
Возврат Поле;
КонецФункции
Процедура ПроверитьКомпоновку85(Элемент) Экспорт
ПроверитьСогласие85();
Контейнер = ЭтаФорма.ЭлементыФормы.Контейнер85;
Первое = ЭтаФорма.ЭлементыФормы.Первое85;
Второе = ЭтаФорма.ЭлементыФормы.Второе85;
ПервыйЭлемент = Неопределено;
ПерваяГраница = ГраницаЭлементаУправления.Право;
ВторойЭлемент = Неопределено;
ВтораяГраница = ГраницаЭлементаУправления.Право;
Первое.ПолучитьПривязку(ГраницаЭлементаУправления.Право,
ПервыйЭлемент, ПерваяГраница, ВторойЭлемент, ВтораяГраница);
Если ПервыйЭлемент <> Контейнер Или ПерваяГраница <> ГраницаЭлементаУправления.Право Тогда
ВызватьИсключение "Настоящая жесткая привязка справа не соответствует своей панели";
КонецЕсли;
Сообщить("Второй объект привязки: " + Строка(ТипЗнч(ВторойЭлемент)) + "; граница=" + Строка(ВтораяГраница));
ШиринаПанелиДо = Контейнер.Ширина;
ШиринаПоляДо = Первое.Ширина;
Контейнер.Ширина = ШиринаПанелиДо + 20;
Если Абс(Первое.Ширина - ШиринаПоляДо - 20) > 0.5 Тогда
ВызватьИсключение "Своя правая привязка не отработала ожидаемое расширение на20 логических единиц";
КонецЕсли;
Контейнер.Ширина = ШиринаПанелиДо;
Если Абс(Первое.Ширина - ШиринаПоляДо) > 0.5 Тогда
ВызватьИсключение "Исходная ширина своего поля не восстановилась";
КонецЕсли;
Если Первое.Лево <> 6 Или Первое.Верх <> 6 Или Первое.Высота <> 6
Или Первое.ПорядокОбхода <> 1 Или Второе.ПорядокОбхода <> 2
Или Первое.ПорядокОтображения <> 1 Или Второе.ПорядокОтображения <> 2 Тогда
ВызватьИсключение "Координаты и порядок собственных полей изменились";
КонецЕсли;
Если ТипЗнч(Первое.АктивизироватьПоУмолчанию) <> Тип("Булево") Тогда
ВызватьИсключение "readonly-признак первоначальной активации должен быть Булево";
КонецЕсли;
Сообщить("Фактическое АктивизироватьПоУмолчанию=" + Строка(Первое.АктивизироватьПоУмолчанию));
Первое.Видимость = Ложь;
Если Первое.Видимость Тогда
ВызватьИсключение "Скрытие своего поля не подтверждено";
КонецЕсли;
Первое.Видимость = Истина;
Если Первое.Значение <> "Книга:3" Тогда
ВызватьИсключение "Скрытие не должно удалять своё значение";
КонецЕсли;
Свёрнуто85 = Не Свёрнуто85;
Если Свёрнуто85 Тогда
Второе.Свертка = РежимСверткиЭлементаУправления.Низ;
Иначе
Второе.Свертка = РежимСверткиЭлементаУправления.Нет;
КонецЕсли;
Сообщить("Свёртка второго поля=" + Строка(Второе.Свертка) + "; своё значение=" + Строка(Второе.Значение));
ЭтаФорма.ТекущийЭлемент = Первое;
КонецПроцедуры
Процедура ПроверитьСвойСтенд85()
КонецПроцедуры
Процедура ПроверитьСогласие85()
ПроверитьСвойСтенд85();
Если Не СогласенНаСвоюФорму85 Тогда
ВызватьИсключение "Подтвердите опыт только со своей новой обычной формой";
КонецЕсли;
КонецПроцедурыРазбор по шагам
Создаются только своя новая панель и два поля, прежние элементы не очищаются и не меняются.
Четыре старые привязки полей снимаются до задания собственной геометрии в логических единицах.
Порядок обхода1/2 и отображения1/2 задаётся независимо; первая правая граница связывается со своей панелью.
ПолучитьПривязку передаёт все5 аргументов и подтверждает настоящие объект/границу; вторые параметры показываются фактически.
Своя панель расширяется на20, ширина первого поля проверяется и исходная ширина восстанавливается.
readonly-признак активации читается, скрытие/показ не удаляют собственное значение.
Второе поле сворачивается вниз/разворачивается между нажатиями; текущий фокус переводится в первое отдельным свойством.
Как проверить результат
Реальная правая привязка указывает на свою панель/Право.
Ширина первого поля меняется на20 и восстанавливается с допуском0.5.
Координаты, высота и оба порядка остаются ожидаемыми.
АктивизироватьПоУмолчанию только читается; значение Книга:3 переживает скрытие.
Свёртка второго поля переключается Низ/Нет, данных базы нет.
Ожидаемый результат
Ожидаемые результаты относятся только к будущему отдельно разрешённому ручному опыту в собственном толстом клиенте. runtimeVerifiedScenarios=0.
На что обратить внимание
Три расширения с внутренним названием Расширение — разные контексты: системное перечисление в поле, расположение на панели и редактор колонки. Это не устанавливаемые расширения конфигурации CFE.
Новый Расширение не существует. Дополнительные члены появляются у настоящего элемента нужного вида/местоположения. Поля и панель создаются документированным ЭлементыФормы.Добавить, редактор колонки получается из ЭлементУправления.
ДоступныеЗначения — именно СписокЗначений для системного перечисления, не общий СписокВыбора строкового статуса. Порядок списка соответствует порядку выбора; пустой список означает все значения, не запрет всех.
Ограничение клиента не является бизнес-правом. Код не записывает документ и не подтверждает возможность проведения; выбранное РежимЗаписиДокумента только учебное значение.
ТипЗначения самостоятельного поля меняется лишь без связи с данными. Значение передаётся самим системным перечислением, не его текстовым представлением.
Владельцем своей формы не назначается поле ввода или таблица: такая роль делает некоторые свойства расширения панели/формы недоступными. Код предназначен обычной собственной форме обработки.
ПолучитьПривязку принимает пять обязательных аргументов: границу и переменные для объектов/границ. Это не функция, возвращающая структуру; прочитанная реальная привязка сравнивается со своей панелью.
УстановитьПривязку с одной границей снимает её привязки. Перед геометрией сбрасываются четыре старые привязки, затем справа задаётся своя жёсткая привязка.
Реальная компоновка зависит от темы/масштаба. Урок проверяет изменение ширины в логических единицах с допуском0.5, но не выдаёт статический аудит за реальную проверку пикселей.
АктивизироватьПоУмолчанию в установленной RU-справке помечено Только чтение, хотя примечание обсуждает установку. Код только читает реальный Булево-признак; текущий фокус меняется через ТекущийЭлемент, не запись в readonly.
ПорядокОбхода задаёт маршрут фокуса, ПорядокОтображения — перекрытие элементов. Их нельзя подменять индексом коллекции или значением своего товара.
Видимость скрывает собственное поле, но не удаляет значение и не защищает данные. Свертка допускается лишь для поддерживаемого вида/направления; здесь второе ПолеВвода сворачивается вниз.
Значение редактора колонки относится к текущему вводу. У несвязанной Доплата85 нет сохранённого значения в каждой строке ТаблицаЗначений; это демонстрация разового пересчёта, не готовая долговременная модель наценок.
Запись ТипЗначения редактора запрещена у связанных колонок. Для изменения типов данных меняют собственную схему ТаблицаЗначений отдельно, а не свойства связанной ячейки.
ПолучитьДействие возвращает Действие, не строку имени процедуры. Проверка типа подтверждает наличие назначенного объекта; реальную работу доказывает отдельный будущий ввод и счётчик события.
Программное присваивание Значение не вызывает ПриИзменении. Код не имитирует событие прямым вызовом обработчика и не обещает рекурсивный повтор из-за нормализации числа.
Экспортный обработчик реального события имеет точную сигнатуру: Элемент передаётся первым расширением формы/табличного поля. Не путайте базовую справку события с итоговой сигнатурой в месте размещения.
В табличном уроке проверяется принадлежность текущей строки своей таблице. Количество/цена/сумма живут только в RAM; никаких объектов базы, SQL-записей или документов нет.
Для первой проверки нужно ровно одно интерактивное изменение доплаты10 у Книги. Если изменили другую строку/несколько значений, переоткройте свою форму для исходного состояния.
Статические проверки не запускают интерфейс1С: runtimeVerifiedScenarios=0. Новых архивов/резервных копий нет; ограничения GUI и события требуют отдельного разрешённого ручного опыта.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.