Версия для печати темы (https://pro1c.org.ua/index.php?s=4642dfee182cd6b155d69cb95a43637a&showtopic=4463)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Отчет СКД. Как связать параметры отбора, и определить параметры выбра при отборе?

Автор: logist 15.08.11, 13:37

В "быстрых" настройках есть поля "Контрагент" и "ДоговорКонтрагента" (тип СправочникСсылка), как связать поле Договора с Контрагентом (т.е. что бы при выборе договора отображались только договора выбранного контрагента (или сначала был выбор контрагента если Контрагент не заполнен)).
И как в список выбора Договора установить параметр отбора (т.е. что бы в списке отображались элементы с определенным значением в их реквизите, реквизит доступен в списке).
Конфигурация самописная.
Спасибо.

Автор: Vofka 16.08.11, 14:59

Это только мне ничего не понятно? smile.gif

Цитата
т.е. что бы при выборе договора

При выборе где/куда?

Цитата
И как в список выбора Договора установить параметр отбора

Тоже как-то не очень ясно unsure.gif

Автор: logist 16.08.11, 16:55

В отчете есть форма быстрой настройки (ну собственно это относится не только к быстрому отбору, а к отбору в отчете вообще)

При выборе в поле "Договор контрагента" нужно что бы осуществлялась связь с полем "Контрагент", т.е. что бы открывшийся список договоров отображал только Договора выбранного Контрагента. И еще нужно что бы форма выбора Договора включала отбор по некоему реквизиту элемента Договор.

Так понятней? smile.gif

Интуитивно я догадываюсь что это нужно задать тут:

Но все попытки ни к чему не приводят. Единственное чего добился - очистка поля "Договор контрагента" при изменении "Контрагента".

Автор: Vofka 16.08.11, 17:26

Вот нашёл в сети, но у меня (для не управляемого приложения) так не получилось:

Цитата
Могу предложить вариант для режима управляемого приложения (форма отчета должна быть управляемой).

1) в макете компоновки, на закладке "наборы данных" для "подчиненного" поля, например "ДоговорыКонтрагентов" надо перейти в поле "Параметры редактирования";
2) в поле "Параметры редактирования" открыть форму настройки и перейти в строку (поле) "связи параметров выбора";
3) в поле "Связи параметров выбора" настроить связь - открыть окно настройки (еще одно smile.gif) и в колонке "Параметр выбора" ввести Отбор.Владелец. Далее, в следующем поле "Поле" указать поле СКД, по которому будет определяться владелец при установке отбора, например поле "Контрагент". Естественно поле владельца должно присутствовать среди доступных полей компоновки

Автор: logist 16.08.11, 18:06

Спасибо!!!
Все оказалось намного проще:

Цитата
ввести Отбор.Владелец.

ТОЧКА в конце, вот о чем я не знал smile.gif)

Единственное что осталось - это если Контрагент не заполнено, при начале отбора Договора показывать список контрагентов, а не список всехвсех договоров.
Вот думаю может написать отдельную ФормуВыбора для этого случая?

Автор: Vofka 16.08.11, 18:39

Цитата
Все оказалось намного проще:

Так это управляемое приложение или обычное?

Цитата
Единственное что осталось - это если Контрагент не заполнено, при начале отбора Договора показывать список контрагентов, а не список всехвсех договоров.

Я набросал простой отчет по регистру продажи. При заполнении отбора по договору - выскакивает форма выбора контрагента, а потом список договоров по этому контрагенту. Если посмотреть код, можно это увидеть:

Процедура ПриОткрытии()

    //...
    
    Если РежимВыбора И НЕ ЗначениеЗаполнено(Отбор.Владелец.Значение) Тогда
        ФормаВыбораВладельца = Справочники.Контрагенты.ПолучитьФормуВыбора();
        ФормаВыбораВладельца.Заголовок = "Выберите контрагента, договор которого Вы хотите выбрать.";
        Контрагент = ФормаВыбораВладельца.ОткрытьМодально();
        Если ТипЗнч(Контрагент) = ТипЗнч(Отбор.Владелец.Значение) Тогда
            Отбор.Владелец.Значение = Контрагент;
        КонецЕсли;
        Отбор.Владелец.Использование = ЗначениеЗаполнено(Отбор.Владелец.Значение);
    КонецЕсли;

    //...

КонецПроцедуры

Поэтому добавить такое же в свою форму выбора да и всё.

Цитата
Вот думаю может написать отдельную ФормуВыбора для этого случая?

А что это даст? Как она будет вызываться?

Да, к стати, я на УТ последней смотрю.

Автор: logist 16.08.11, 18:49

Цитата(Vofka @ 16.08.11, 19:39) http://pro1c.org.ua/index.php?act=findpost&pid=30005
Я набросал простой отчет по регистру продажи. При заполнении отбора по договору - выскакивает форма выбора контрагента, а потом список договоров по этому контрагенту.

Не выскакивает, пока играюсь с параметрами.

Цитата(Vofka @ 16.08.11, 19:39) *
Поэтому добавить такое же в свою форму выбора да и всё.

Не катит такой код, хотя может если его переписать под управляемую форму... Позже попробую.

Конфигурация своя.

Автор: Vofka 16.08.11, 18:53

Цитата
Управляемое.

Потому что у меня на обычном так и не получилось.

Цитата
Не выскакивает, пока играюсь с параметрами.

Не выскакивает, потому что нету кода нужного smile.gif

Цитата
Не катит такой код

Ну я его привёл не как рабочий, а как описание логики.

Автор: logist 16.08.11, 20:33

Все оказалось намного проще - отбор договора по контрагенту работает (собственно как и другие подобные отборы), но только если в самом отчете установлена галка отбор по контрагенту.

Автор: Vofka 17.08.11, 9:26

Т.е. то, что описано в посте 4 делать не надо?

Автор: logist 17.08.11, 9:56

Цитата(Vofka @ 17.08.11, 10:26) *
Т.е. то, что описано в посте 4 делать не надо?

Надо! smile.gif

Автор: Spacer 15.05.12, 11:18

Цитата(logist @ 16.08.11, 19:06) *
ТОЧКА в конце, вот о чем я не знал

Точка здесь абсолютно не при чем. Без точки тоже работает.
Все дело лишь в том какое приложение. В управляемом работает. В обычном - нет. Проверено.

Автор: onsamuy 30.03.15, 9:16

а как в обычном сделать?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua