Имя: Пароль:
1C
1С v8
программный Отбор в УФ из внешней обработки
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 = ВыбранныйПользователь;
    КонецЕсли;
КонецПроцедуры
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой