Имя: Пароль:
1C
1С v8
УФ. Передача параметра в форму выбора
0 Slon747
 
24.12.20
11:50
Имеется ТЧ с типом данных ТаблицаЗначений и столбцом Ссылка с типом данных Справочник.Соглашения.
Нужно чтобы при обычном добавлении новых строк на форму выбора накладывался фильтр по типовым соглашениям.
Посмотрел в код формы выбора справочника и обнаружил там, что анализируется параметр "ТолькоТиповые".
Осталось только передать этот параметр в форму выбора.
Где это делается в УФ? В событии ПриНачалеРедактирования или как-то иначе?
1 vicof
 
24.12.20
11:58
Через ОткрытьФорму как вариант
2 Slon747
 
24.12.20
12:04
(1) Т.е. несмотря на то, что в моей обработке уже есть функционал для изменения ТЧ (стандартные действия типа добавить/удалить и пр.) я не могу так просто наложить фильтр как в обычных формах в НачалоВыбора?
3 ДенисЧ
 
24.12.20
12:08
(2) В оф ты тоже просто так не можешь наложить. Тебе надо отказаться от стандарта, получить форму, наложить фильтры...
В уф почти то же самое. Формируешь структуру параметров и ОткрытьФорму() с этими параметрами.
Чтобы передать отбор в динсписок - используй Структура("Отбор", СтруктураОтбора) или фиксированную структуру с настройками динсписка.
4 Slon747
 
24.12.20
12:16
(3) Т.е. в моем случае нужно оставить только ТЧ (без панели стандартных кнопок) и добавить свою кнопку, по нажатию которой вызывается форма выбора с установленными параметрами.
5 Slon747
 
24.12.20
12:16
(4) Это был вопрос.
6 ДенисЧ
 
24.12.20
12:17
(4) Зачем? В нужном поле хватаешь событие ПриНачалеВыбора...
7 vicof
 
24.12.20
12:23
(4)(7) Только не ПриНачалеВыбора, а НачалоВыбора. И Стандартную обработку там в Ложь.
8 Slon747
 
24.12.20
12:28
(6)(7) Спасибо. Понял.
9 Slon747
 
24.12.20
12:40
Но есть другая проблема.
В форме выбора в ПриСозданииНаСервере есть код:
Список.Параметры.УстановитьЗначениеПараметра("ТолькоТиповые", Параметры.ТолькоТиповые);
Список.Параметры.УстановитьЗначениеПараметра("Партнер", Параметры.Партнер);

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

P.S. В начале ПриСозданииНаСервере есть строки:

    Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
        Возврат;
    КонецЕсли;

Это как раз для моего случая?
10 ДенисЧ
 
24.12.20
12:46
"Как можно отказаться от выполнения кода в ПриСозданииНаСервере "
Никак. Если только форму не создавать ))
11 vicof
 
24.12.20
12:49
Или расширение написать, и подменить метод :)
12 vicof
 
24.12.20
12:50
Или свою форму создавать
13 Slon747
 
24.12.20
12:50
(10) В данном случае я передал параметр "АвтоТест" и код не выполнился. Но и форма не показалась. Стала выаполняться ПриЗагрузкеДанныхИзНастроекНаСервере(), а там еще и еще и в результате полезли ошибки компоновщика.
Чувствую, придется делать свою произвольную форму, в которой будет заполняться список соглашений по моему желанию
14 Ненавижу 1С
 
гуру
24.12.20
13:33
а что "Параметры выбора" уже нельзя?
15 Slon747
 
24.12.20
13:34
(14) Если в форме выбора какой-то код уже ограничивает выбор в динамическом списке, я уже не могу ничего сделать.
16 Ненавижу 1С
 
гуру
24.12.20
13:52
(15) ты точно пробовал?
17 Slon747
 
24.12.20
14:01
(16)
В форме выбора нализируются 2 параметра.
При этом если второй параметр не передается, то фильтр по нему все равно ставится.
18 Ненавижу 1С
 
гуру
24.12.20
14:21
(17) параметры выбора передаются в поле Отбор (тип структура)  у значения Параметры
19 Cthulhu
 
24.12.20
19:31
хотя бы попробовал передать в параметрах только тот отбор. который нужен...
а то одни увлекательные рассказы о том, какой там типовой код, и смелые предположения...
20 d4rkmesa
 
24.12.20
21:59
(13) Лучше сделать свою форму. В типовой форме многое всего натыкано, через ИзменениеИКонтроль лучше не модифицировать расширением. Ну или использовать аннотацию &После, снимая ненужные отборы, ориентируясь на параметры (я бы так по эстетическим соображениям не стал делать). Просто там много стандартных параметров, отладить нормально будет долго.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой