В ВидыПодарочныхСертификатов аналитика связана по типу со СтатьяДоходов. Схема использует характеристику, а не заранее выдуманный тип СправочникСсылка.Номенклатура.
Где и как запускать
Полный серверный общий модуль учебной копии КА2 Progress. Только схема и собственные значения в памяти.
Подготовка
Используйте отдельную учебную копию КА2 Progress, соответствующую C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Названия и настройки проверены по реальным Catalogs/Номенклатура.xml и Catalogs/ВидыПодарочныхСертификатов.xml.
Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своего серверного обработчика учебной команды.
Примеры читают схему и создают значения только в памяти. Они не создают и не записывают товары, не меняют метаданные, не запускают заполнение объекта или перестроение поискового индекса.
Процедура ВыполнитьПример() Экспорт
Справочник = Метаданные.Справочники.Найти("ВидыПодарочныхСертификатов");
Если Справочник = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Справочники.ВидыПодарочныхСертификатов";
КонецЕсли;
Описание = Справочник.Реквизиты.Найти("АналитикаДоходов");
Если Описание = Неопределено Тогда
ВызватьИсключение "В найденном справочнике нет нужного реквизита учебного урока";
КонецЕсли;
Связь = Описание.СвязьПоТипу;
Если ТипЗнч(Связь) <> Тип("СвязьПоТипу") Тогда
ВызватьИсключение "Ожидалось описание связи по типу";
КонецЕсли;
Сообщить("Путь к ведущему реквизиту: " + Связь.ПутьКДанным);
Сообщить(НЕ ПустаяСтрока(Связь.ПутьКДанным));
Сообщить(Связь.ЭлементСвязи = 0);
Статья = Справочник.Реквизиты.Найти("СтатьяДоходов");
Если Статья = Неопределено Тогда
ВызватьИсключение "Не найден ведущий реквизит СтатьяДоходов";
КонецЕсли;
Сообщить(Статья.Тип.СодержитТип(Тип("ПланВидовХарактеристикСсылка.СтатьиДоходов")));
УчебнаяСвязь = Новый СвязьПоТипу(Связь.ПутьКДанным, Связь.ЭлементСвязи);
Сообщить(УчебнаяСвязь.ПутьКДанным = Связь.ПутьКДанным);
Сообщить(УчебнаяСвязь.ЭлементСвязи = Связь.ЭлементСвязи);
ПустаяСвязь = Новый СвязьПоТипу;
Сообщить(ПустаяСтрока(ПустаяСвязь.ПутьКДанным) И ПустаяСвязь.ЭлементСвязи = 0);
КонецПроцедурыРазбор по шагам
Исходная АналитикаДоходов имеет набор типов характеристики СтатьиДоходов, а ведущая СтатьяДоходов — ссылку на план видов характеристик.
СвязьПоТипу читается как описание пути. Оно не является самим выбранным значением статьи и не содержит автоматически прочитанной аналитики из базы.
ЭлементСвязи применяется к номеру вида субконто при связи с планом счетов. В этом реальном примере связь идёт к плану видов характеристик и XML задаёт 0.
Создаём отдельное описание с теми же двумя параметрами. Отдельный Новый СвязьПоТипу без аргументов показывает пустой путь и нулевой элемент.
Фактический допустимый тип аналитики зависит от выбранной характеристики. Не обещаем один ссылочный тип для всех статей и не читаем/записываем сами статьи.
Как проверить результат
Шесть контрольных Истина и строка фактического пути к ведущему реквизиту.
Описание схемы не изменено, подарочный сертификат и бухгалтерские операции не созданы.
Ожидаемый результат
Понятно, как описывается зависимый тип реквизита и почему нельзя угадать тип аналитики по её имени.
На что обратить внимание
СвязьПоТипу — не обычный отбор ссылок и не значение характеристики.
Не подставляйте номер субконто 1–3 в связь плана видов характеристик только по аналогии с планом счетов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.