Имя: Пароль:
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) Лучше сделать свою форму. В типовой форме многое всего натыкано, через ИзменениеИКонтроль лучше не модифицировать расширением. Ну или использовать аннотацию &После, снимая ненужные отборы, ориентируясь на параметры (я бы так по эстетическим соображениям не стал делать). Просто там много стандартных параметров, отладить нормально будет долго.
Закон Брукера: Даже маленькая практика стоит большой теории.