Основано на infostart.ru/1c/reports/2535815/, но не добавляет реквизит в расширение, а тянет в динамическом запросе соединением по ТЧ.ЗадачаПриложения.Приложения документ и его поля Организация и Контрагент (остальные можно вытащить через Изменить форму).
Текст запроса динамических списков изменен через схему запроса.
Включено растягивание по горизонтали для группы формы ГруппаСписок (для списка и области просмотра можно регулировать ширину).
Доработана одна процедура в Документы.Задача.Формы.Задачи:
&НаСервере
Процедура Doc3_ЗадачиДокументы_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Модифицируем запрос СписокДействияЗадач
ТекстЗапроса = ЭтаФорма.СписокДействияЗадач.ТекстЗапроса;
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
Пакет = СхемаЗапроса.ПакетЗапросов[0];
Оператор = Пакет.Операторы[0];
// выбираем основной источник
ПриемникСвязи = Оператор.Источники.НайтиПоИмени("РегистрСведений.РеестрЗадачПоИсполнителям");
// добавляем источник связи
ИсточникСвязи = Оператор.Источники.Добавить("Документ.Задача.Приложения", "ЗадачаПриложения");
ИсточникСвязи.Соединения.Очистить(); // иначе автоматом добавит все возможные связи
УсловиеСоединения = ПриемникСвязи.Источник.Псевдоним+".Задача = ЗадачаПриложения.Ссылка";
ПриемникСвязи.Соединения.Добавить(ИсточникСвязи, УсловиеСоединения);
УсловиеСоединения = "ЗадачаПриложения.НомерСтроки = 1";
ПриемникСвязи.Соединения.Добавить(ИсточникСвязи, УсловиеСоединения);
УсловиеСоединения = "ЗадачаПриложения.Приложение ССЫЛКА Справочник.ДокументыПредприятия";
ПриемникСвязи.Соединения.Добавить(ИсточникСвязи, УсловиеСоединения); //по умолчанию ЛевоеВнешнее
Оператор.ВыбираемыеПоля.Добавить("ВЫРАЗИТЬ(ЗадачаПриложения.Приложение КАК Справочник.ДокументыПредприятия)");
Пакет.Колонки[Пакет.Колонки.Количество()-1].Псевдоним = "Doc3_Документ";
Оператор.ВыбираемыеПоля.Добавить("ВЫРАЗИТЬ(ЗадачаПриложения.Приложение КАК Справочник.ДокументыПредприятия).Организация");
Пакет.Колонки[Пакет.Колонки.Количество()-1].Псевдоним = "Doc3_Организация";
Оператор.ВыбираемыеПоля.Добавить("ВЫРАЗИТЬ(ЗадачаПриложения.Приложение КАК Справочник.ДокументыПредприятия).Контрагент");
Пакет.Колонки[Пакет.Колонки.Количество()-1].Псевдоним = "Doc3_Контрагент";
ЭтаФорма.СписокДействияЗадач.ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
// Модифицируем запрос СписокЗадач
ТекстЗапроса = ЭтаФорма.СписокЗадач.ТекстЗапроса;
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
Пакет = СхемаЗапроса.ПакетЗапросов[0];
Оператор = Пакет.Операторы[0];
// выбираем основной источник
ПриемникСвязи = Оператор.Источники.НайтиПоИмени("РегистрСведений.РеестрЗадачПоАвторам");
// добавляем источник связи
ИсточникСвязи = Оператор.Источники.Добавить("Документ.Задача.Приложения", "ЗадачаПриложения");
ИсточникСвязи.Соединения.Очистить(); // иначе автоматом добавит все возможные связи
УсловиеСоединения = ПриемникСвязи.Источник.Псевдоним+".Задача = ЗадачаПриложения.Ссылка";
ПриемникСвязи.Соединения.Добавить(ИсточникСвязи, УсловиеСоединения);
УсловиеСоединения = "ЗадачаПриложения.НомерСтроки = 1";
ПриемникСвязи.Соединения.Добавить(ИсточникСвязи, УсловиеСоединения);
УсловиеСоединения = "ЗадачаПриложения.Приложение ССЫЛКА Справочник.ДокументыПредприятия";
ПриемникСвязи.Соединения.Добавить(ИсточникСвязи, УсловиеСоединения); // по умолчанию ЛевоеВнешнее
Оператор.ВыбираемыеПоля.Добавить("ВЫРАЗИТЬ(ЗадачаПриложения.Приложение КАК Справочник.ДокументыПредприятия)");
Пакет.Колонки[Пакет.Колонки.Количество()-1].Псевдоним = "Doc3_Документ";
Оператор.ВыбираемыеПоля.Добавить("ВЫРАЗИТЬ(ЗадачаПриложения.Приложение КАК Справочник.ДокументыПредприятия).Организация");
Пакет.Колонки[Пакет.Колонки.Количество()-1].Псевдоним = "Doc3_Организация";
Оператор.ВыбираемыеПоля.Добавить("ВЫРАЗИТЬ(ЗадачаПриложения.Приложение КАК Справочник.ДокументыПредприятия).Контрагент");
Пакет.Колонки[Пакет.Колонки.Количество()-1].Псевдоним = "Doc3_Контрагент";
ЭтаФорма.СписокЗадач.ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
// Добавим новые элементы
Если Элементы.Найти("СписокДействияЗадачДокумент") = Неопределено Тогда
// СписокДействияЗадач
ПолеГруппа = Элементы.Добавить("Doc3_СписокДействияЗадачДокументГруппа", Тип("ГруппаФормы"), Элементы.СписокДействияЗадач);
ПолеПерваяСтрока = Элементы.Добавить("Doc3_СписокДействияЗадачПерваяСтрока", Тип("ГруппаФормы"), ПолеГруппа);
ПолеПерваяСтрока.Группировка = ГруппировкаКолонок.Горизонтальная;
ПолеДокумент = Элементы.Добавить("Doc3_СписокДействияЗадачДокумент", Тип("ПолеФормы"), ПолеПерваяСтрока);
ПолеДокумент.Заголовок = "Документ";
ПолеДокумент.ПутьКДанным = "СписокДействияЗадач.Doc3_Документ";
ПолеДокумент.Ширина = 30;
ПолеОрганизация = Элементы.Добавить("Doc3_СписокДействияЗадачОрганизация", Тип("ПолеФормы"), ПолеПерваяСтрока);
ПолеОрганизация.Заголовок = "Организация";
ПолеОрганизация.ПутьКДанным = "СписокДействияЗадач.Doc3_Организация";
ПолеОрганизация.Ширина = 30;
ПолеКонтрагент = Элементы.Добавить("Doc3_СписокДействияЗадачКонтрагент", Тип("ПолеФормы"), ПолеПерваяСтрока);
ПолеКонтрагент.Заголовок = "Контрагент";
ПолеКонтрагент.ПутьКДанным = "СписокДействияЗадач.Doc3_Контрагент";
ПолеКонтрагент.Ширина = 30;
Если СтрНачинаетсяС(КлючНазначенияИспользования, "Выбор") Тогда
ОтображениеКарточкиЗадачи = Перечисления.ВариантыОтображенияОбластиЧтения.НеОтображать;
Иначе
ОтображениеКарточкиЗадачи =
РаботаСЗадачами.ПолучитьПерсональнуюНастройку("ОтображениеКарточкиЗадачи");
КонецЕсли;
Если ОтображениеКарточкиЗадачи = Перечисления.ВариантыОтображенияОбластиЧтения.Справа Тогда
Элементы.ГруппаСписок.Ширина = 60;
ПолеДокумент.Высота = 2;
КонецЕсли;
// СписокЗадач
ПолеГруппа = Элементы.Добавить("Doc3_СписокЗадачДокументГруппа", Тип("ГруппаФормы"), Элементы.СписокЗадач);
ПолеПерваяСтрока = Элементы.Добавить("Doc3_СписокЗадачПерваяСтрока", Тип("ГруппаФормы"), ПолеГруппа);
ПолеПерваяСтрока.Группировка = ГруппировкаКолонок.Горизонтальная;
ПолеДокумент = Элементы.Добавить("Doc3_СписокЗадачДокумент", Тип("ПолеФормы"), ПолеПерваяСтрока);
ПолеДокумент.Заголовок = "Документ";
ПолеДокумент.ПутьКДанным = "СписокЗадач.Doc3_Документ";
ПолеДокумент.Ширина = 30;
ПолеОрганизация = Элементы.Добавить("Doc3_СписокЗадачОрганизация", Тип("ПолеФормы"), ПолеПерваяСтрока);
ПолеОрганизация.Заголовок = "Организация";
ПолеОрганизация.ПутьКДанным = "СписокЗадач.Doc3_Организация";
ПолеОрганизация.Ширина = 30;
ПолеКонтрагент = Элементы.Добавить("Doc3_СписокЗадачКонтрагент", Тип("ПолеФормы"), ПолеПерваяСтрока);
ПолеКонтрагент.Заголовок = "Контрагент";
ПолеКонтрагент.ПутьКДанным = "СписокЗадач.Doc3_Контрагент";
ПолеКонтрагент.Ширина = 30;
КонецЕсли;
// Перенесем ДеревоПриложений вертикально
//Элементы.ГруппаКолонки.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
//Элементы.Переместить(Элементы.ДеревоПриложений, Элементы.ГруппаКолонки);
// Включим растягивание по горизонтали ГруппаСписок
Элементы.ГруппаСписок.РастягиватьПоГоризонтали = Истина;
КонецПроцедуры
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, редакция 3.0, релизы 3.0.19.30
Вступайте в нашу телеграмм-группу Инфостарт