|
Не могу передать отбор параметром | ☑ | ||
---|---|---|---|---|
0
sidrd
08.07.12
✎
20:21
|
Есть таблица с сотрудниками, в ней допустим 3 сотрудника записаны, с типом спр.физлица, есть другая таблица там тоже есть физ лица и при выборе физ лица должны в форме выбора отображаться только те физлица что есть в таблице сотрудники.
Форма выбора её не существует, её создает 1С сама программно. Так вот как передать параметр той форме выбора с отбором в списке. Делаю так: &НаКлиенте Процедура УдержанияФизЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ТекущаяСтрока = Элементы.Сотрудники.ТекущиеДанные; ЗначениеОтбора = Новый Структура(); Для Каждого СтрокаТаблицы Из Объект.Сотрудники Цикл ЗначениеОтбора = Новый Структура("ФизЛицо", СтрокаТаблицы.ФизЛицо); КонецЦикла; ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора); ФормаВыбор = ПолучитьФорму("Справочник.ФизическиеЛица.ФормаВыбора", ПараметрыВыбора); //ФормаВыбор.Список.отбор = ПараметрыВыбора; //ФормаВыбора.Список.отбор.физлицо.использовать=истина; //ФормаВыбора.Список.отбор.физлицо.значение=ПараметрыВыбора; ФормаВыбор.открыть(); КонецПроцедуры Отбор не отрабатывает, даже если и есть форма выбора существующая физически, а не создающаяся программно. Как тут праильно передать параметры с отбором для списка формыВыбора? |
|||
1
AlexNew
08.07.12
✎
20:27
|
Чо это было?
|
|||
2
prosto-nik
08.07.12
✎
20:36
|
а к полю ФизЛица назначить список выбора, не?
|
|||
3
sidrd
08.07.12
✎
20:43
|
К полю физ лица список выбора не получиться назначить
|
|||
4
prosto-nik
08.07.12
✎
20:45
|
почему?
|
|||
5
sidrd
08.07.12
✎
20:47
|
Ну потому что всё время разные сотрудники будут, разные записи бывают. А в списке выбора указываются с определенным типом, а мне нужны все те кто в таблице сотрудники присутствуют.
|
|||
6
sidrd
08.07.12
✎
20:55
|
Можно сделать через процедуру обработки связи параметров выбора, но там в отборе будет текущий элемент который выбран а не все
|
|||
7
prosto-nik
08.07.12
✎
21:00
|
при изменении вот этого Объект.Сотрудники меняй СписокВыбора и все
|
|||
8
prosto-nik
08.07.12
✎
21:02
|
или ПриВыборе из списка формируй его из Объект.Сотрудники
|
|||
9
sidrd
08.07.12
✎
21:06
|
Так вот я это и хочу. Я так и формирую, там в цикле получаю всех текущих сотрудников, записываю их в структуру, а отбор то не выполняется, не передаётся он новой форме
|
|||
10
prosto-nik
08.07.12
✎
21:08
|
на мой взгляд у тебя
Элементы.Сотрудники = Объект.Сотрудники или я что то не понимаю? |
|||
11
prosto-nik
08.07.12
✎
21:08
|
а говоришь что две таб части
|
|||
12
sidrd
08.07.12
✎
21:11
|
Объект.Сотрудники это и есть Элементы.Сотрудники только первое Объект а второе его представление как элемент формы. Вот тут сотрудники у нас и находятся. Есть вторая таблица УчетРабВремени при добовлении новой строки и выборе из колонки физ лица там должна открыться форма выбора с физ лицами но только теми которые есть в Сотрудниках
|
|||
13
prosto-nik
08.07.12
✎
21:13
|
в твоем коде про "УчетРабВремени " ни слова...
|
|||
14
V_V_V
08.07.12
✎
21:15
|
(0) Может я чего и недопонял, но зачем используешь НачалоВыбора? А не ПриИзменении?
|
|||
15
sidrd
08.07.12
✎
21:15
|
сорри удержания: из таблицы УдержанияФизЛицо. Я и при изменении пробовал.
|
|||
16
prosto-nik
08.07.12
✎
21:17
|
(14) - ?
|
|||
17
prosto-nik
08.07.12
✎
21:18
|
приизменениии отбор уже излишен уже все выбрано ибо...
|
|||
18
sidrd
08.07.12
✎
21:19
|
Есть таблица с сотрудниками, в ней допустим 3 сотрудника записаны, с типом спр.физлица, есть другая таблица там тоже есть физ лица и при выборе физ лица должны в форме выбора отображаться только те физлица что есть в таблице сотрудники.
Та вторая таблица и есть УдержанияФизЛиц таблица в которой мы добовляя новую строчку тыкаем в колонку физ лицо, там и открывается наша форма выбора которая создается программно в ней и должен сработать отбор где должны быть все сотрудники что записаны в табл. сотрудники. Потому НачалоВыбора и делаю. |
|||
19
prosto-nik
08.07.12
✎
21:36
|
&НаКлиенте
Процедура УдержанияФизЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СписокВыбора = СписокФизЛицИзПервойТаблЧасти; ФЛ = СписокВыбора.ВыбратьЭлемент("Выберите ФЛ"); КонецПроцедуры |
|||
20
prosto-nik
08.07.12
✎
21:41
|
СписокВыбора.ВыбратьЭлемент("Выберите ФЛ")
Описание: Вызывает окно для интерактивного выбора одного из элементов, входящих в список значений. |
|||
21
sidrd
08.07.12
✎
22:28
|
Мне надо чтобы в списке выбора отображались только те сотрудники что есть в таблице сотрудники, мне не надо выбирать сразу кого то одного )
|
|||
22
sidrd
09.07.12
✎
01:54
|
Сделал, работает:
&НаКлиенте Процедура УдержанияФизЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; МассивСотрудников = Новый Массив; Для Каждого СтрТабЧасти Из Объект.Сотрудники Цикл МассивСотрудников.Добавить(СтрТабЧасти.ФизЛицо); КонецЦикла; УсловияОтбора = Новый Структура ("Ссылка" , МассивСотрудников); ПараметрыФормы = Новый Структура ("Отбор", УсловияОтбора); ФормаВыб = ОткрытьФормуМодально("Справочник.ФизическиеЛица.Форма.ФормаВыбораУпр", ПараметрыФормы); КонецПроцедуры Только при выборе не возвращается выбранный параметр. Как сделать чтобы параметр вернулся? пробовал указывать владельца формы не работает. |
|||
23
sanja26
09.07.12
✎
02:03
|
попробуй переменную из ПараметрыФормы получать
|
|||
24
GANR
09.07.12
✎
03:26
|
(0) Для данной ситуации код будет примерно таким:
НовыйОтбор = ФормаВыбор.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ФизЛицо"); НовыйОтбор.ВидСравнения = ВидаСравненияКомпоновкиДанных.ВСписке; НовыйОтбор.ПравоеЗначение = Список_ФизЛиц; Если что-то непонятно - в "Справка/Индекс справки" набираем "КоллекцияЭлементовОтбораКомпоновкиДанных" (в нашем случае ФормаВыбор.Список.Отбор.Элементы - это и есть та-самая коллекция) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |