|
программный Отбор в УФ из внешней обработки | ☑ | ||
---|---|---|---|---|
0
cheat
26.11.13
✎
10:12
|
Добрый день.
1С 8.2.19.68 Комплексная 1.1.51 есть внешняя обработка, в ней есть ПолеВвода так же есть следующая процедура: Процедура ДопПолеРезультат2НачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ФормаПользователи = Справочники.Пользователи.ПолучитьФормуВыбора(); Если Не ФормаПользователи.Открыта() Тогда ФормаПользователи.Элементы.Список.Отображение = ОтображениеТаблицы.Список; УжеЕстьОтбор = Ложь; Для Каждого ЭлементОтбора Из ФормаПользователи.Список.Отбор.Элементы Цикл Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель") Тогда ЭлементОтбора.ПравоеЗначение = Справочники.Пользователи.НайтиПоНаименованию("Мастер-приемщик"); ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; УжеЕстьОтбор = Истина; КонецЕсли; КонецЦикла; Если Не УжеЕстьОтбор Тогда ЭлементОтбора = ФормаПользователи.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("В группе"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Справочники.Пользователи.НайтиПоНаименованию("Мастер-приемщик"); ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; КонецЕсли; //ФормаПользователи.Элементы.Список.Обновить(); ВыбранныйПользователь = ФормаПользователи.ОткрытьМодально(); КонецЕсли; КонецПроцедуры в итоге формаВыбора справочника пользователей открывается всё равно без !включённого! отбора, т.е. сама строка есть но вот той самой галочки не стоит. но ведь я же пишу Использование = Истина, что ещё ей надо? |
|||
1
cheat
26.11.13
✎
10:20
|
то что у меня в коде закомментирована строка обновления таблицы не обращайте внимания, пробывал и с Обновить() и без не помогает в список тупо вываливается весь список пользователей (((
|
|||
2
Ерепень
26.11.13
✎
10:22
|
>пробывал
после этого ушёл из ветки |
|||
3
Euguln
26.11.13
✎
10:23
|
Новый ПолеКомпоновкиДанных("В группе") - это пять.
|
|||
4
cheat
26.11.13
✎
10:27
|
(2) Ну когда нечего сказать по делу до*бись до орфографии, так?
|
|||
5
Ерепень
26.11.13
✎
10:28
|
(4) нет
|
|||
6
cheat
26.11.13
✎
10:30
|
(3) это тоже не суть проблеммы, в данной ситуации я в этот блок не попадаю никогда, проверял отладчиком. Можно далее по делу пожалуйста. Или норм программеры перевелись?
|
|||
7
Euguln
26.11.13
✎
10:35
|
(6) Ты в открытой форме выбора отбор смотрел? Он там есть? Правильный?
|
|||
8
Apokalipsec
26.11.13
✎
10:40
|
(6) твой стиль общения не соответствует твоему желанию получить помощь.
v8: Как изменить отбор динамического списка 8.3! |
|||
9
George Wheels
26.11.13
✎
10:41
|
(0) ВидСравнения для отбора Родитель какой?
|
|||
10
cheat
26.11.13
✎
10:45
|
(7) да после открытия формы на экран, жду "Все действия" -> "Настроить список" -> Открывается форма "Настройка списка" -> вкладка "Отбор", правое Таб. поле содержит 2 строки
? Пометка удаления Равно Нет ? В группе Равно Мастер-приемщик если я нажму ОК то список переформируется и в нём останется что мне надо, а если жму отмена, то список пользователей так и остаётся без отбора |
|||
11
cheat
26.11.13
✎
10:48
|
(8) Если меня троллят то я груб не спорю! Да и выход найти можно всегда в крайнем случае создам свою форму сос списком нужных мне пользователей и буду просто возвращать ссылку на выбранного, так что моё желание не такое сильное что бы терпеть этот бред :-) всем добра.
|
|||
12
cheat
26.11.13
✎
10:51
|
(9) Там по умолчанию "Равно" это видимо происходит автоматом как я снимаю иерарх. просмотр.
|
|||
13
Euguln
26.11.13
✎
11:01
|
я бы передал через обработку выбора. Установка отбора после открытия формы.
|
|||
14
cheat
26.11.13
✎
11:09
|
(8) Почита тему по ссылке, сделал как ты там и советовал, очистил отбор, создал свой отбор, форма всё равно открывается как и раньше, отбор в списке отборов есть галочка слева стоит, а список всё равно весь подряд. ещё идеи?
|
|||
15
ilpar
26.11.13
✎
11:12
|
(6) используй правильный обработчик, раз в этот никогда не попадаешь
|
|||
16
ilpar
26.11.13
✎
11:13
|
P.S> не программеры перевелись, а телепаты
|
|||
17
cheat
26.11.13
✎
11:17
|
(15) эээ... вы о чём вообще? В обработчик события НачалоВыбора я попадаю, а вот в блок кода с Если нет, но как бы мне туда и не надо, мне нужно что бы открывалась формаВыбора справочника с уже установленным и действующим на список отбором.
|
|||
18
cheat
26.11.13
✎
11:18
|
(16) а что такого таинственного и не понятного вы уидели в моём коде? спрашивайте, выложу всё как на духу.
|
|||
19
cheat
26.11.13
✎
11:22
|
вообщем в итоге код следующий:
Процедура ДопПолеРезультат2НачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ФормаПользователи = Справочники.Пользователи.ПолучитьФормуВыбора(); Если Не ФормаПользователи.Открыта() Тогда ФормаПользователи.Элементы.Список.Отображение = ОтображениеТаблицы.Список; ФормаПользователи.Список.Отбор.Элементы.Очистить(); ЭлементОтбора = ФормаПользователи.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Справочники.Пользователи.НайтиПоНаименованию("Мастер-приемщик"); ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; ФормаПользователи.Элементы.Список.Обновить(); ВыбранныйПользователь = ФормаПользователи.ОткрытьМодально(); КонецЕсли; КонецПроцедуры но всё равно форма открывается со списком без отбора ((( |
|||
20
acsent
26.11.13
✎
11:26
|
Смотри в типовых модуль
ОтборыСписковКлиентСервер |
|||
21
Apokalipsec
26.11.13
✎
11:27
|
попробуй свой отбор передать через параметры формы.
|
|||
22
AllJoke
26.11.13
✎
11:30
|
||||
23
cheat
26.11.13
✎
11:34
|
(22) Да спасибо, гуглить умею )) это уже читал
|
|||
24
cheat
26.11.13
✎
11:36
|
(20) к сожалению из типовых есть только КА и Бух и ни в одной из них нет ничего такого ((
|
|||
25
Apokalipsec
26.11.13
✎
11:38
|
(23) Ну и? ни в одном из примеров твоего кода ты не передаешь отбор параметром формы, ты пробовал так передавать?
|
|||
26
AllJoke
26.11.13
✎
11:39
|
ФормаПользователи.Элементы.Список.Обновить(); - попробуй это убрать.
|
|||
27
spu79
26.11.13
✎
11:41
|
в порядке бреда...а ФормаПользователи.ОткрытьМодально() - вот в этой форме При/ПередОткрытием ни чего "забавного" не происходит?
|
|||
28
George Wheels
26.11.13
✎
11:44
|
(27) + ПриСозданииНаСервере
|
|||
29
spu79
26.11.13
✎
11:53
|
и здесь
ФормаПользователи.Элементы.Список.Обновить(); ВыбранныйПользователь = ФормаПользователи.ОткрытьМодально(); ИМХО метод обновить() используется для УЖЕ открытых форм... |
|||
30
cheat
26.11.13
✎
12:30
|
(25) если делать так:
ПараметрыВыбора = Новый Структура("Отбор", Новый Структура("Родитель",Справочники.Пользователи.НайтиПоНаименованию("Мастер-приемщик"))); ОткрытьФормуМодально("Справочник.Пользователи.ФормаВыбора", ПараметрыВыбора); то открывается с нужным мне отбором, НО как тогда убрать иерархический режим? |
|||
31
cheat
26.11.13
✎
13:05
|
всем спасибо за помощь, всё получилось
если интересно то в итоге вот так норм работает: Процедура ДопПолеРезультат2НачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ПараметрыВыбора = Новый Структура("Отбор", Новый Структура("Родитель",Справочники.Пользователи.НайтиПоНаименованию("Мастер-приемщик"))); ФормаПользователи = ПолучитьФорму("Справочник.Пользователи.ФормаВыбора", ПараметрыВыбора); ФормаПользователи.Элементы.Список.Отображение = ОтображениеТаблицы.Список; ВыбранныйПользователь = ФормаПользователи.ОткрытьМодально(); Если ВыбранныйПользователь <> Неопределено Тогда ДопПолеРезультат2 = ВыбранныйПользователь; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |