Содержание:
1. Для чего нужна «Связи объектов и типы связей»? Общие сведения о свойстве
2. Работа свойства «Связи объектов и типы связей» для «Поля ввода»
1. Для чего нужна «Связи объектов и типы связей»? Общие сведения о свойстве
В данной статье будет описано свойство внутри системы – «Связи объектов и типы связей», а именно: его функционал, необходимость использования, примеры. А также, отдельно будет уделено внимание особенностям работы свойства «Связи объектов и типы связей» для поля ввода и даны примеры задействования подобной структуры.
В системе 1С существует свойство «Связь По Типу», которое отвечает за указание реквизитов у того или иного объекта, то есть, оно предоставляет тип значения для конкретного реквизита. Обозначение данной связи необходимо тогда, когда нужно, чтобы пользователи самостоятельно выбирали добавочные свойства для каких-либо объектов из информационной базы. Настраивать свойство «Связи объектов и типы связей» есть необходимость только тогда, когда реквизиты имеют составной тип данных, который имеет логическую связку с каким-либо иным реквизитом.
К примеру, пусть внутри конфигурации существует план с видами характеристик, в котором хранятся виды возможных характеристик по товарам. Характеристики могут содержать абсолютно любые типы («Число», «Булево», «Справочник Ссылка<Имя>», «Дата» и так далее). Все значения для характеристик располагаются внутри регистра сведений, его измерение – это вид характеристики.
В ресурсе «Значение» для регистра сведений «Характеристики Товаров» проставляется связь для типа, который имеет измерение «Вид Характеристики». В итоге имеем, что для избранной характеристики тип значения будет определён тем типом, который обозначен для неё внутри плана с видами характеристик. Данное соответствие по использованию свойства «Связь по типу» продемонстрировано на скриншотах с примером ниже:
Связь по типу
2. Работа свойства «Связи объектов и типы связей» для «Поля ввода»
Элементы из формы «Поле ввода» могут быть настроены в соответствии со связью по типу. Свойство «Связи объектов и типы связей» может обеспечить автоматическое ограничение набора возможных типов для формы «Поле ввода», такое свойство возможно использовать в зависимости от значения того или иного вида реквизита 1С. Эту функцию можно использовать для настроек по зависимостям значений субконто от видов субконто в 1С. Когда настройка связи была окончена, то, во время изменения значений видов субконто в 1С, внутри поля для ввода значений субконто ограничится тип. Это значит, что юзер, при вводе значения конкретного субконто, увидит лишь конкретные возможные значения для вида субконто в 1С.
Стоит оговорить, что свойство «Связи объектов и типы связей» содержит лишь 1С настройку поля, однако для значений реквизита, который имеет связь с полем, её нет. Так происходит из-за того, что настройка связи происходит по реквизитному значению. Однако, само значение реквизита может меняться не только из-за интерактивных действий юзера. К примеру, когда открывается форма, реквизит будет менять своё значение, потому что, в это время объект загружается, его будет редактировать эта форма.
Например, пусть есть некий документ, который содержит два реквизита – «Значение» и «Вид», в которых находятся соответствующие характеристики субконто. А для вида субконто поменяли тип. В таком случае, после открытия документа, в поле ввода, которое связано с реквизитом «Значение», сработает свойство «Связи объектов и типы связей». Все возможные типы для поля ввода будут иметь ограничение по виду субконто, однако, реквизитное значение не меняется, ведь, в таком случае, юзер не будет видеть истинное значение реквизита – отобразится лишь значение, которое было приведено.
Стоит отметить, что так как, во время отработки свойства «Связи объектов и типы связей», реквизитное значение не поменяется, будет так: пользователь имеет возможность ввести лишь один возможный тип, а при клике на кнопку с выбором юзер сможет избрать только один тип. Чтобы такого не было – необходимо каждый раз проводить обработку изменения для значения вида субконто, а также привести значение субконто к возможному типу.
Для наглядности, такой пример: пусть существует форма, в которой существуют поля «Поле Ввода Значение Субконто» и «Поле Ввода Вид Субконто», которые имеют связь с соответствующими реквизитами из формы – «Значение Субконто» и «Вид Субконто». Элемент из формы «Поле Ввода Значение Субконто» содержит связь, согласно типу с реквизитом из формы «Вид Субконто». Чтобы обеспечить правильную работу связи, необходимо для события «При Изменении» внутри поля для ввода «Поле Ввода Вид Субконто» обозначить такой программный код обработчика:
Значение субконто
Здесь было обозначено, что для нового значения по виду субконто в 1С было взято описание типа, при помощи которого, значение субконто будет приведено к некоторому возможному типу.
А в поле ввода, которое будет редактировать значение субконто, можно провести связь по типу не только для вида субконто в 1С, но и для вида субконто счёта. Чтобы это сделать – нужно провести настройку связи по типу для реквизита, который имеет счёт. После этого, поле ввода будет содержать свойство «Вид субконто». В этом свойстве прописывается номер конкретного вида субконто счёта. К примеру, пусть у вида субконто в 1С указана единица, тогда во время изменения значения у счёта, в поле ввода будет обозначен тип по первому виду субконто счёта. Тогда, чтобы всё работало правильно, нужно провести обработку изменения значения счёта. В таком случае, программный код обработчика события «При изменении» будет иметь такой вид, как показано далее:
Значение субконто
В примере выше, во время изменения значения счёта, будет взят первый вид субконто счёта, при помощи этого типа будет приведено значение субконто. Стоит знать, что во время прописывания вида субконто в 1С внутри свойства, нумерация будет начинаться с единицы, а во время обращения к массиву с видами субконто, в программном коде, нумерация начинается всегда с нуля.
В данной статье было описано свойство в системе «Связи объектов и типы связей», его принципы работы, возможность сопоставления с полем ввода, а также сделаны важные оговорки по работе и приведены примеры работы с данным инструментарием.
Специалист компании "Кодерлайн"
Айдар Фархутдинов