Сравниваем пустое описание и собственную связь с первым видом субконто поля Счет. Объекты описаний не создают счёт и не выполняют бухгалтерские операции.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте серверный общий модуль в отдельной учебной базе. Вставьте фрагмент в тело своей экспортной процедуры.
Планы счетов и регистры не нужны: здесь только описания в памяти. Этот фрагмент не подключает связь к какой-либо схеме.
ПустаяСвязь = Новый СвязьПоТипуКомпоновкиДанных;
Сообщить(ПустаяСвязь.Поле = Новый ПолеКомпоновкиДанных);
Сообщить(ПустаяСвязь.ЭлементСвязи = 0);
ПолеСчета = Новый ПолеКомпоновкиДанных("Счет");
СвязьСубконто = Новый СвязьПоТипуКомпоновкиДанных(ПолеСчета, 1);
Сообщить(СвязьСубконто.Поле = ПолеСчета);
Сообщить(СвязьСубконто.ЭлементСвязи = 1);Разбор по шагам
Без аргументов конструктор использует поле без имени и элемент связи 0.
Во втором описании задаём именованный путь и номер элемента 1 через конструктор: оба свойства только для чтения.
При настоящей связи со счётом номер обозначает вид субконто, откуда берётся тип. Само описание не проверяет существование такого счёта.
Чтобы применить связь в рабочей схеме, отдельно нужно подготовить соответствующее поле и источник типов; это не сделано этим коротким упражнением.
Как проверить результат
Четыре сравнения Истина. Никаких записей в плане счетов или движений не возникает.
В отладчике два независимых описания связи.
Ожидаемый результат
Понятен смысл конструктора и двух неизменяемых свойств описания связи.
На что обратить внимание
ЭлементСвязи не является индексом товара, номером строки результата или UUID счёта.
Нельзя присвоить значение в СвязьСубконто.Поле: свойство только для чтения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.