Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как сделать отбор в форме списка справочника ?

Как сделать отбор в форме списка справочника ?
Я
   rogachev
 
11.09.19 - 16:54
Добрый день всем!
В форме справочника два реквезита . контрагент  и договор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ОткрытьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", ПараметрыОткрытия, ЭтотОбъект);//ЭтотОбъект в данном случае форма, а тебе нужен Элемент или поле в которое должно сохраниться.

 (31) ага, второй день, на форму выбора отбор сделать не можешь а "долб" я. 
Хотя решение тебе я написал, уже раза три - четыре. Там походу еще и типы реквизитов не совпадают и куча всякой херни. Плохо тебе вообщем.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.