Имя: Пароль:
1C
1С v8
Как сделать отбор в форме списка справочника ?
, , , ,
0 rogachev
 
11.09.19
16:54
Добрый день всем!
В форме справочника два реквезита . контрагент  и договор

мне нужно чтобы отбирались все договора именно выбранного контрагента с отбором по виду договора - Договор поручителя

что для этого нужно ?  связь параметров выбора в реквизите ДоговорКонтрагента ? Отбор по владельцу. Отбор .Владелец .Контрагент .Очищать

программно  не работает

Лк_ДоговрПоручителяНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    ПараметрыОткрытия = Новый Структура();
    ПараметрыОткрытия.Вставить("Лк_ДоговорПоручителя", Объект.ДоговорПоручителя);

    ОткрытьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", ПараметрыОткрытия, ЭтотОбъект);
1 sqr4
 
11.09.19
16:56
(0) работает. Приучи себя писать конфу или хотябы какое приложение.
2 rogachev
 
11.09.19
16:57
(1) что я делаю не так подскажи
3 sqr4
 
11.09.19
17:00
(2) по дебильному задаешь вопросы и не даешь полной информации помогающему.
По тому что я понял, у тебя не правильные параметры открытия. Т.к в них нужно еще засунуть структуру с отбором.
ПараметрыОткрытия = Новый Структура();
    ПараметрыОткрытия.Вставить("Отбор", Новый Структура("Лк_ДоговорПоручителя", Объект.ДоговорПоручителя));
4 rogachev
 
11.09.19
17:12
(3) ты фигню сморозил, задаю вопросы как нужно . просто ты не в теме и код написал не рабочий
5 sqr4
 
11.09.19
17:14
(4) не рабочий код у тебя, еще и огрызается трындец
6 rogachev
 
11.09.19
17:15
(5) у тебя не рабочий
7 rogachev
 
11.09.19
17:16
(5) у меня код из рабочей процедуры

    СтандартнаяОбработка = Ложь;
    
    ПараметрыОткрытия = Новый Структура();
    ПараметрыОткрытия.Вставить("КодПоОКОФ",             Объект.КодПоОКОФ);
    ПараметрыОткрытия.Вставить("АмортизационнаяГруппа", Объект.АмортизационнаяГруппа);

    ОткрытьФорму("Справочник.ОсновныеСредства.Форма.ФормаВыбораАмортизационнойГруппы", ПараметрыОткрытия, ЭтотОбъект);
8 rogachev
 
11.09.19
17:17
(5) а вот ты фигню написал
9 sqr4
 
11.09.19
17:18
ПараметрыОткрытия.Вставить("Лк_ДоговорПоручителя", Объект.ДоговорПоручителя);
Это же твой код, ты же не отличаешь поле по которому нужно сделать отбор и название своего поля в которое выбираешь. Для тебя все это одно и тоже, а будешь дерзить, пойдешь лесом, вернее уже иди.
10 sqr4
 
11.09.19
17:18
(8) Почитай про расширения управляемых форм потом вякалку открывай
11 rogachev
 
11.09.19
17:20
(10) вякалка у твоей собаки . сам читай
12 rogachev
 
11.09.19
17:20
(10) гнусный тип
13 sqr4
 
11.09.19
17:20
(7) тут вероятнее всего, параметры отрабатываются уже в форме, а не автоматом делается отбор по дин списку, хотя уверен, ты даже проверить не сможешь... Все нахер иди
14 rogachev
 
11.09.19
17:22
(13) нахер ты пойдешь .
15 sqr4
 
11.09.19
17:23
(14) охренеть, борзометр зашкаливает, школота сраная
16 sqr4
 
11.09.19
17:23
(14) Кроме как стрелочки метать, папашка не научил ничему больше да.
17 rogachev
 
11.09.19
17:27
(16) мамашка ты тролль обыкновенный
18 sqr4
 
11.09.19
17:29
https://v8.1c.ru/metod/faq2/answer.jsp?id=548
первый метод, ничего не напоминает? А теперь со своими потугами сравни.
19 rogachev
 
11.09.19
17:31
(18) Запарил  подучи :

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

ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаСписка",ПараметрыВыбора);
2. Можно открыть форму списка без параметров:
ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаСписка");
И затем, в обработчике события формы списка приходных накладных ПриСозданииНаСервере написать код, который создает отбор в динамическом списке, являющемся основным реквизитом формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номер");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ЭлементОтбора.ПравоеЗначение = "000000001";

КонецПроцедуры
Преимущества данного метода в том, что ВидСравнения у отбора можно задавать не только Равно, как в первом случае, а и Больше, Меньше и т.п.
Но у такого способа есть и очень существенный недостаток: с этим отбором форма будет открываться всегда. Откуда бы ее ни вызвали. Поэтому такую форму не следует назначать основной. А если все же она основная -  то перед установкой отбора, необходимо предусмотреть какой-то анализ того, откуда открывается эта форма. Например, анализируя параметры формы.  
3. И наконец, условие отбора можно поместить в произвольный запрос, выбирающий данные для динамического списка. Например, нам нужно открыть список приходных накладных, в которых присутствует номенклатура, выделенная в списке номенклатуры.
Для этого в форме списка номенклатуры создадим команду и соответствующую ей кнопку Приходные накладные.

Обработчик выполнения этой команды заполним следующим образом:
&НаКлиенте
Процедура ПриходныеНакладные(Команда)

   ФормаСписка = ПолучитьФорму("Документ.ПриходнаяНакладная.ФормаСписка");
   ФормаСписка.ФильтрПоТовару = Элементы.Список.ТекущаяСтрока;
   ФормаСписка.Открыть();

КонецПроцедуры
В этом обработчике мы получаем форму списка приходных накладных и передаем в параметр формы ФильтрПоТовару ссылку на текущий элемент в списке номенклатуры и открываем форму с этим параметром.
Затем создадим форму списка документов ПриходнаяНакладная и создадим реквизит формы ФильтрПоТовару, который мы будем использовать в качестве параметра формы при ее открытии. Теперь откроем палитру свойств основного реквизита формы Список. Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть.

В поле Запрос введем следующий текст запроса:  
ВЫБРАТЬ
    ДокументПриходнаяНакладная.Номер,
    ДокументПриходнаяНакладная.Дата
ИЗ
    Документ.ПриходнаяНакладная КАК ДокументПриходнаяНакладная
ГДЕ
    ДокументПриходнаяНакладная.Товары.Товар = &Товар
В запросе мы используем параметр Товар, в который и будет передаваться ссылка на текущую строку в списке номенклатуры, содержащуюся в параметре формы списка приходных накладных ФильтрПоТовару. Для этого в обработчике события формы списка ПриОткрытии напишем код для установки значения параметра запроса Товар:
&НаКлиенте
Процедура ПриОткрытии(Отказ)

   Список.Параметры.УстановитьЗначениеПараметра("Товар", ФильтрПоТовару);

КонецПроцедуры
Здесь Список.Параметры - это список параметров запроса динамического списка для реквизита Список. Значение параметра Товар устанавливается равным значению параметра формы ФильтрПоТовару.
20 sqr4
 
11.09.19
17:31
(19) ахахахахах
21 sqr4
 
11.09.19
17:32
(19) знатно ты обосрался
22 sqr4
 
11.09.19
17:32
ладно, тужся дальше, глядишь что то выйдет
23 rogachev
 
11.09.19
17:33
(21) ты школота . сам обосраный
24 sqr4
 
11.09.19
17:34
(23) да все наскучило мне уже, давай задачу решать
25 hhhh
 
11.09.19
17:42
(23) ну ты из (19) какой способ применил из трех. Что-то непонятно
26 sqr4
 
11.09.19
17:44
(25) Вангую, что после того как отфильтруется, он и подбирать не будет.
27 sqr4
 
11.09.19
17:48
28 rogachev
 
11.09.19
17:48
(26) Вангую-Предвижу?
29 rogachev
 
11.09.19
17:48
(27) ну ты еще белье мое перерой
30 sqr4
 
11.09.19
17:53
(29) то в которое ты знатно обосрался))) ха.
а "Лк_ДоговрПоручителя" это крутое название для реквизита, а букву "о", просто нет желания поставить?
31 rogachev
 
11.09.19
17:58
(30) (30) Ты долб сказочный .которому нечем себя занять . иди в майл ответы и там тролль
32 sqr4
 
11.09.19
17:59
ПараметрыОткрытия = Новый Структура();
    ПараметрыОткрытия.Вставить("Отбор", Новый Структура("Вот тут названия реквизита по которому отбор из справочника договоров", Вот тут значение из твоей формы)); //Отбор просто обязателен, смотри пример, который ты сам прислал в (19)
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", ПараметрыОткрытия, ЭтотОбъект); //ЭтотОбъект в данном случае форма, а тебе нужен Элемент или поле в которое должно сохраниться.
(31) ага, второй день, на форму выбора отбор сделать не можешь а "долб" я.
Хотя решение тебе я написал, уже раза три - четыре. Там походу еще и типы реквизитов не совпадают и куча всякой херни. Плохо тебе вообщем.