Добавление реквизита документа в расширении и вывод его в динамическом списке.

1. 23.02.21 21:28 Сейчас в теме
Добрый день!

УТ 11.4, платформа 8.3.18.1289.

Задача:
1. В расширении добавить новый реквизит для документа «Реализация товаров и услуг».
2. В форме «Список документов» обработки «Журнал документов продажи» в динамическом списке включить этот реквизит в список выводимых на форму.

Засада на 2-ом этапе. Данные о документах, попадаемых в динамический список, берутся из регистра сведений «Реестр документов», точнее из поля «Ссылка». В конфигурации это составное поле, а в расширении тип – «ЛюбаяСсылка». Поэтому в конструкторе запросов нельзя развернуть поле «Ссылка» и выбрать нужный реквизит. При попытке вручную добавить в динамический список «Ссылка.МойРеквизит» выходит «Ошибка получения информации набора данных».

Для наглядного теста создал новую базу, добавил три справочника, для третьего справочника добавил составной реквизит с типом Справочник1 и Справочник2. Последовательно добавил все объекты в расширение. Проблема осталась. На скринах можно посмотреть наглядно.

Вероятно, если программно изменить запрос и программно выводить реквизит на форму, то получится обойти эту проблему, но хочется более простого решения. Этот метод не проверял, но возможно он работает.

Другое решение, это редактировать режим совместимости конфигурации, но при этом придётся включать возможность изменения конфигурации, чтобы расширить тип реквизита. Решение тоже плохое, т.к. частично теряется суть использования расширений. Этот метод точно работает, проверял. Если расширить типы данных реквизита в расширении, то «плюсик» в конструкторе с перечнем реквизитов объекта появляется.

Если есть опыт или идеи как решить эту задачу, не используя два предыдущих костыля, то буду очень благодарен :)
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Alexander-K 23.02.21 21:29 Сейчас в теме
3. Alexander-K 23.02.21 21:29 Сейчас в теме
4. Alexander-K 23.02.21 21:29 Сейчас в теме
5. Alexander-K 23.02.21 21:29 Сейчас в теме
6. Alexander-K 24.02.21 09:39 Сейчас в теме
Программный метод работает, но не всегда это удобно...
В моей задаче код выглядит следующим образом:

&НаСервере
Процедура КАС_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	СписокДокументыПродажи.ТекстЗапроса = СтрЗаменить(СписокДокументыПродажи.ТекстЗапроса, "ВЫБРАТЬ", "ВЫБРАТЬ Ссылка.КАС_Проект КАК Проект,");

	НоваяКолонкаТаблицы = Элементы.Добавить("СписокДокументыПродажиПроект", Тип("ПолеФормы"), Элементы.СписокДокументыПродажи);
	НоваяКолонкаТаблицы.ПутьКДанным = "СписокДокументыПродажи.Проект"; 	
	
КонецПроцедуры
Показать
Оставьте свое сообщение
Вопросы с вознаграждением