Имя: Пароль:
1C
1С v8
Навигационная ссылка на список с отбором
0 pavlushov
 
29.08.24
13:23
Нужно программно получить навигационную ссылку на список документов с отбором по автору. В справке для метода есть вариант синтаксиса: Ссылка на списки с заданными настройками
Синтаксис: ПолучитьНавигационнуюСсылку(<Объект>, <Настройки>, <ПредставлениеНавигационнойСсылки>,<ВнешниеДанныеНавигационнойСсылки>). Пишу так:
	НастройкиКД = Новый НастройкиКомпоновкиДанных;
	
	Отбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Автор");
	Отбор.ПравоеЗначение = Пользователь;
	Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	Отбор.Использование = Истина;

	Настройки = Новый НастройкиТаблицыДинамическогоСписка();
	Настройки.ФиксированныеНастройки = НастройкиКД;
	
	НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПолучитьФорму("ФормаСпискаЗаявокКСогласованию"), Настройки, "Заявки по автору");


Дает ошибку, не нравится тип 2-го параметра в методе ПолучитьНавигационнуюСсылку()
1 PR
 
29.08.24
11:53
Плохо
2 Волшебник
 
29.08.24
14:46
попробуйте так:
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.ЗаявкаНаРасходованиеДенежныхСредств, Настройки, "Заявки по автору");
3 pavlushov
 
29.08.24
13:06
(2) точно так же ругается на 2-й параметр, как будто этот вариант синтаксиса не работает
4 PR
 
29.08.24
13:23
(3) Во-первых, на тебе на будущее вопросиков ????????????????????
Во-вторых, научись внимательно читать СП, там же написано НастройкиТаблицыДинамическогоСписка, а не НастройкиКомпоновкиДанных
Для первого параметра, кстати, тоже написано метаданные, а не форма
5 pavlushov
 
29.08.24
13:31
(4) не хами, посмотри на мой код, именно НастройкиТаблицыДинамическогоСписка я и передаю во 2-й параметр:

Настройки = Новый НастройкиТаблицыДинамическогоСписка();
    Настройки.ФиксированныеНастройки = НастройкиКД;
    
    НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПолучитьФорму("ФормаСпискаЗаявокКСогласованию"), Настройки, "Заявки по автору");
6 pavlushov
 
29.08.24
13:32
(4) вариант с метаданными тоже пробовал:
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Документы.ЗаявкаНаРасходованиеДенежныхСредств, Настройки, "Заявки по автору");
7 osa1C
 
29.08.24
13:49
(5) Тебе говорят передавай НастройкиТаблицыДинамическогоСписка, а ты в них вставляешь НастройкиКомпоновкиДанных и еще утверждаешь, что правильно передаешь
8 Максимка_
Космонавтом
 
29.08.24
13:57
(6) Это не метаданные, это менеджер. Метаданные - это когда Метаданные.Документы.ЗаявкаНаРасходованиеДенежныхСредств
9 Максимка_
Космонавтом
 
29.08.24
14:03
(7) Как раз-таки второй параметр верно создает и передает. Ошибка определения варианта синтаксиса идет из-за не правильного первого параметра.
10 osa1C
 
29.08.24
14:07
ПолучитьНавигационнуюСсылку(<Объект>, <ИмяРеквизита>, <Индекс>)  

Параметры: <Объект> (обязательный)
Тип: Ссылка на объект информационной базы. Ссылка на объект.
<ИмяРеквизита> (необязательный)
Тип: Строка. Имя реквизита объекта или ресурса Регистра сведений, для которого нужно выяснить ссылку. Если это реквизит табличной части объекта, то параметр указывается как <имя табличной части>.<имя реквизита>, то есть с разделителем "." (точка).
<Индекс> (необязательный)
Тип: Число. Индекс строки в табличной части, в том случае если объект является реквизитом табличной части. Первая строка имеет индекс равный 0.
Возвращаемое значение: Тип: Строка.
Описание: Получает текст ссылки на объект информационной базы или его реквизит в формате 1С:Предприятия.
В первом случае принимает в качестве параметра ссылку на объект (это может быть как ссылка, так и ключ записи регистра сведений). Объектом могут быть: справочник, документ, ключ записи регистра сведений, бизнес процессы, задачи.
Во втором, в качестве параметров принимает ключ объекта (это может быть как ссылка, так и ключ записи регистра сведений) и имя реквизита (ресурса). Если нужно получить ссылку на реквизит табличной части, перед именем реквизита необходимо добавить имя табличной части и точку ".".
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание: Выполняет обращение к серверу только при получении ссылки на реквизит. При получении ссылки на объект информационной базы запрос на сервер не выполняется.
11 Волшебник
 
29.08.24
14:07
(8) кстати, да
12 pavlushov
 
29.08.24
14:25
(7) их и передаю, ну как вы не видите
13 pavlushov
 
29.08.24
14:33
(8) да, именно так - Метаданные.Документы.ЗаявкаНаРасходованиеДенежныхСредств, но я как то криво передал настройки КД))), форма списка открылась но без отборов
14 pavlushov
 
29.08.24
14:33
печально, что можно открыть только форму списка по умолчанию
15 Максимка_
Космонавтом
 
29.08.24
14:42
(14) А версия платформы какая? Потому что этот вариант синтаксиса еще и не на каждой версии отрабатывает. На некоторых 23-х, 25-х точно знаю, что не работает из-за бага платформы
16 pavlushov
 
29.08.24
14:44
(15) 8.3.24.1586
17 Максимка_
Космонавтом
 
29.08.24
14:48
(16) Ну вот одна из последних, ага, может не работать. Тут фиг его знает, как узнать точно
18 PR
 
29.08.24
14:54
(5) А, про настройки сорян, недоглядел
А про метаданные?
19 PR
 
29.08.24
14:57
(14) Ну так делай свою команду, делай на нее ссылку, в ней открывай что хочешь
20 Мультук
 
29.08.24
14:57
21 PR
 
29.08.24
14:57
(9) Все верно, так и есть
22 PR
 
29.08.24
14:58
(20) Не прояснит, там только про интерактив
23 pavlushov
 
29.08.24
16:36
По итогу вот так работает:
	НастройкиКД = Новый НастройкиКомпоновкиДанных;
	
	Отбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Автор");
	Отбор.ПравоеЗначение = Пользователь;
	Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	Отбор.Использование = Истина;
	
	Настройки = Новый НастройкиТаблицыДинамическогоСписка();
	Настройки.ФиксированныеНастройки = НастройкиКД;
	
	НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.ЗаявкаНаРасходованиеДенежныхСредств, Настройки, "Заявки по автору");


Но! В форме когда открываешь настройку списка, отбора не видно, хотя он применен (вижу по данным списка).
24 CepeLLlka
 
29.08.24
16:33
(23)Наверное потому что это не форма с отбором, а ссылка на форму с уже отобранными данными.

Она вам эта навигационная ссылка вообще для чего?
25 pavlushov
 
29.08.24
17:21
(24) это для оповещения пользователя о необходимости проработать определенные документы, в оповещении должна быть навигационная ссылка которая откроет список документов с отбором по пользователю
26 Волшебник
 
29.08.24
17:34
(25) Сделайте ссылку на обработку, а она уже откроёт всё, что нужно.
27 ptiz
 
29.08.24
17:51
(23) Прикольно. Похоже, как и любой отбор формы с параметрами отбора - они не видны.
А вот вопрос: как ещё можно открыть УФ дин.списка с отбором (не на простое равенство), не меняя код в форме?
28 CepeLLlka
 
29.08.24
18:03
(25)А оповещение каким образом работает? Не легче просто сразу форму с отбором открывать как в (19) предлагают, почему именно через навигационную ссылку?
29 Михаил Козлов
 
29.08.24
23:58
(23) Предположу, что не видны, т.к. это ФиксированныеНастройки.
30 lEvGl
 
30.08.24
00:05
(29) ну это всегда так было, установленное программно либо невидно, либо не доступно к редактированию
31 toypaul
 
30.08.24
07:40
(22) фиксированные настройки в СКД (не знаю как тут, но похоже также) тоже не видны. может там есть другие (не фиксированные) настройки?