Имя: Пароль:
1C
1С v8
Вывод Таблицы значений
,
0 logo23
 
12.02.13
09:21
Добрый день.

Имеется форма документа с реквизитами УчебноеЗаведение(Тип СправочникСсылка) и Ответственный(Тип СправочникСсылка). При выборе УЗ должен отбираться соответсвующий этому уз ответсвенный(а не весь справочник), это я реализовал с помощью запроса. При отладке проверял, что запрос работает корректно, но необходимые мне значения заносятся в переменную Результат(тип ТаблицаЗначений).

Вопрос: Как вывести данные полученные в запросе в форму выбора Ответственый?

Версия 8.2 УПП

Заранее благодарен за помощь.

&НаКлиенте
Процедура ОтветственныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

УстановитьОтбор();
       
КонецПроцедуры

&НаСервере
Функция УстановитьОтбор()
   
   ДанныеОбъекта = РеквизитФормыВЗначение("Объект");
   
   Запрос = Новый Запрос;
   Запрос.Текст  = "ВЫБРАТЬ
                   |    ФизическиеЛица.Ссылка
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ВПО.Владелец КАК Владелец
                   |    ИЗ
                   |        (ВЫБРАТЬ
                   |            УчебныеЗаведенияВПО.Владелец КАК Владелец
                   |        ИЗ
                   |            Справочник.УчебныеЗаведенияВПО КАК УчебныеЗаведенияВПО
                   |        ГДЕ
                   |            УчебныеЗаведенияВПО.Ссылка = &Ссылка) КАК ВПО) КАК УчЗав
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                   |        ПО УчЗав.Владелец = ФизическиеЛица.Владелец";
   
   Запрос.УстановитьПараметр("Ссылка",ДанныеОбъекта.УчебноеЗаведение);
   
   Результат = Запрос.Выполнить().Выгрузить();
       
КонецФункции
1 pessok
 
12.02.13
09:22
открой для себя параметры Форма.Открыть() и СправочнимМенеджер.Выбрать()
2 pessok
 
12.02.13
09:22
СправочникМенеджер*
3 ДенисЧ
 
12.02.13
09:23
А просто отбор наложить - не вариант?
4 pessok
 
12.02.13
09:24
(0) кстати, надо сразу писать, что УФ, а то из "Версия 8.2 УПП  " этого как бэ непонятно :)
5 logo23
 
12.02.13
09:26
(3) Нет, есть еще справочники УЗВпо и др. элементы спр Ответсвенный подчинены общему спр. УЗ и ему же подчинены спр. УЗВп и УЗСпо.
Так что у меня получилось только с помощью запроса
6 logo23
 
12.02.13
09:29
(1) Спасибо, полез в справку.

Если можно, то обрисуйте более конкретней, чем эти эти параментры мне помогут, и механизм их использования в данной ситуации
7 DrShad
 
12.02.13
09:30
(6) ничем не помогут
и используй демонический список с произвольным запросом, а не ТЗ
8 logo23
 
12.02.13
09:33
(7) ДинамическийСписок в самом справочнике Ответсвенный?
Пробовал вылетает ошибка
9 DrShad
 
12.02.13
09:33
(8) плохо пробовал
10 DrShad
 
12.02.13
09:34
и не в самом справочнике, а в твоем мега документе
11 pessok
 
12.02.13
09:34
(7) ну если и формы справочников на УФ, то не поможет. Если на обычных формах, то как раз таки только так
12 pessok
 
12.02.13
09:35
+(11) ему ж надо просто отбор на форму выбора по владельцу, насколько я понял
13 logo23
 
12.02.13
09:35
(10) из моего мега документа открывается форма выбора справочника.

В каком месте в документе егго использовать?
14 logo23
 
12.02.13
09:36
(12) нет...щас опижу как должен вполняться отбор
не просто по подчиненному справочнику
15 Reset
 
12.02.13
09:36
Запрос порадовал. Владелец учебного заведения двойной выбор проходит, для надежности ;)
16 Reset
 
12.02.13
09:37
Нужно было просто УчебныеЗаведенияВПО соединить с ФизическиеЛица по общему владельцу. Если я понял правильно задумку, конечно.
17 pessok
 
12.02.13
09:38
(16) он щас объяснит задумку. к 14 камменту мы пришли к этому
18 logo23
 
12.02.13
09:42
Есть Справочники: Отвественный - в нем элементы подчинены спр. УчебныеЗаведения.

Есть справочники УчебныеЗаведенияХХХ и УчебныеЗаведенияУУУ(с разными элементами) - в них в них элементы подчинены спр. УчебныеЗаведения.

В форме документа открывается форма выбора спр. УчебныеЗаведенияХХХ или УчебныеЗаведенияУУУ и далее из этой же формы должен выбираться элемент спр. Ответственный подчиненный тому же элементу спр. УчебноеЗаведение, что и элемент спр. УченбноеЗаведениеХХХ.

т.е. отвественного нельзя отобрать по УчебноеЗаведениеХХХ
19 logo23
 
12.02.13
09:45
(18) в справочнике Ответственный Владелец указан элемент спр. УчебныеЗаведения.
А отбор должен идти по спр. УчебныеЗаведенияХХХ, который так же подчинен спр. УчебныеЗаведения
20 Reset
 
12.02.13
09:47
Ну, все верно.
Дальше я бы сделал свою форму выбора с дин списком(осн таблицей физлица) и этим запросом, как сказали уже в (7)
21 Reset
 
12.02.13
09:48
ну или еще есть варианты наверное, у меня опыта в УФ ноль почти
22 logo23
 
12.02.13
09:54
(21) т.е. создаю в своем документе форма выбора, реквизит Список ставлю произвольный запрос, вставляю свой запрос, потом открываю эту форму из своей форме вместо формы выбора спр. Ответсвенный, правильно?
23 Reset
 
12.02.13
09:56
(22) Да
24 logo23
 
12.02.13
10:00
(23) Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(19, 33)}: Не задано значение параметра "Ссылка"
УчебныеЗаведенияВПО.Ссылка = <<?>>&Ссылка) КАК ВПО) КАК УчЗав
25 DrShad
 
12.02.13
10:01
ну параметры то нужно задавать
26 pessok
 
12.02.13
10:02
(24) ПриСозданииНаСервере задай параметр дин.списка, если это действительно нужно
27 logo23
 
12.02.13
10:07
(23) нет идей, что ни так в запросе, откуда такая ошибка?
28 logo23
 
12.02.13
10:08
(27) Щас сделаю отпишусь
29 Wobland
 
12.02.13
10:09
(27) может, Учебные Заведения через пробел?
30 logo23
 
12.02.13
10:13
(29) Это имя справочника
(25) Про параметры можно подробней или ссылку на источник, где это ясно объясняется, до асса 1С мне пока далековато, но очень хочу научиться
31 Wobland
 
12.02.13
10:13
(30) ктрл+ф1 -> УстановитьПараметр
32 DrShad
 
12.02.13
10:14
ДинамическийСписок (DynamicList)
Параметры (Parameters)
Использование:

Только чтение.
Описание:

Тип: ЗначенияПараметровДанныхКомпоновкиДанных.
Содержит значения параметров запроса, если в запросе используются параметры.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
33 pessok
 
12.02.13
10:14
Список.Параметры.УстановитьЗначениеПараметра("Ссылка", СсылкаНаДокумент);
34 DrShad
 
12.02.13
10:14
(31) гы, не угадал
35 pessok
 
12.02.13
10:15
(31) ДС же
36 Wobland
 
12.02.13
10:15
(35) да? не слежу за дискуссией ;)
37 DrShad
 
12.02.13
10:16
ЗначениеПараметраКомпоновкиДанных (DataCompositionParameterValue)
Свойства:

Значение (Value)
ЗначенияВложенныхПараметров (NestedParameterValues)
Использование (Use)
Параметр (Parameter)
Родитель (Parent)

Описание:

Значение параметра.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data-composition-system/core}. Имя типа XDTO: ParameterValue
См. также:

ЗначенияПараметровВыводаГруппировкиКомпоновкиДанных, метод НайтиЗначениеПараметра
ЗначенияПараметровВыводаГруппировкиТаблицыКомпоновкиДанных, метод НайтиЗначениеПараметра
ЗначенияПараметровВыводаДиаграммыКомпоновкиДанных, метод НайтиЗначениеПараметра
ЗначенияПараметровВыводаКомпоновкиДанных, метод НайтиЗначениеПараметра
ЗначенияПараметровВыводаТаблицыКомпоновкиДанных, метод НайтиЗначениеПараметра
ЗначенияПараметровДанныхКомпоновкиДанных, метод НайтиЗначениеПараметра
КоллекцияЗначенийПараметровКомпоновкиДанных, метод Получить
КоллекцияЗначенийПараметровКомпоновкиДанных, метод Найти
КоллекцияЗначенийПараметровКомпоновкиДанных, метод Индекс
ОформлениеКомпоновкиДанных, метод НайтиЗначениеПараметра
ЗначенияПараметровВыводаГруппировкиДиаграммыКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ЗначенияПараметровВыводаГруппировкиКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ЗначенияПараметровВыводаГруппировкиТаблицыКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ЗначенияПараметровВыводаДиаграммыКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ЗначенияПараметровВыводаКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ОформлениеКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ЗначенияПараметровВыводаТаблицыКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ЗначенияПараметровДанныхКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
ПараметрыРедактированияКомпоновкиДанных, метод ПолучитьИдентификаторПоОбъекту
38 DrShad
 
12.02.13
10:16
(30) и вот скажи мне, зачем ты полез в УФ, коли в них не шаришь?
39 pessok
 
12.02.13
10:18
(38) вот это правильный вопрос, притом в УПП
40 logo23
 
12.02.13
10:24
(38) Хочу научиться, у Вас все в первый день получалось?
41 DrShad
 
12.02.13
10:25
(40) ну, имхо, для учебы ты себе не самое простое задание выбрал, начни с чего полегче
42 logo23
 
12.02.13
10:25
(33) &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Список.Параметры.УстановитьЗначениеПараметра("Ссылка", Документы.впоФорма01);
КонецПроцедуры

создал в своей новой форме выбора в документе, ошибка отображения типов
43 logo23
 
12.02.13
10:26
(41) разумеется, но с этим надо обязательно разобраться
44 DrShad
 
12.02.13
10:26
(43) и таки все равно придется с самого начала учиться работать с демоническими списками :)))
45 pessok
 
12.02.13
10:27
(42) в параметр надо передать ССЫЛКУ на документ
46 DrShad
 
12.02.13
10:30
(45) а если ее еще нет?
47 logo23
 
12.02.13
10:32
(45) Список.Параметры.УстановитьЗначениеПараметра("Ссылка", ДокументСсылка.впоФорма01);

ошибка: переменная не определена :
Список.Параметры.УстановитьЗначениеПараметра("Ссылка", <<?>>ДокументСсылка.впоФорма01); (Проверка: Сервер)
48 pessok
 
12.02.13
10:39
(46) как это нет? тебе туда надо передать ссылку того документа, из которого открываешь
49 logo23
 
12.02.13
10:40
Вообще в 8.1 это все реализованио в одну строчку
Элемент.ВыборПоВладельцу = УчебноеЗаведение.Владелец;
Но в УПП к сожалению так нельзя
50 pessok
 
12.02.13
10:41
(49) к счастью, есть такое понятие, как обратная соместимость. если бы ты не полез в УФ (которого в УПП 1.3 от силы 10%), то мог бы спокойно использовать эту конструкцию
51 logo23
 
12.02.13
10:45
(50) необходимо это реализовать иенно для тонкого клиента,
Скажите это  ДокументСсылка.впоФорма01  я правильно определил ссылку документа?
52 pessok
 
12.02.13
10:47
(51) человече... тебе надо передать в параметр ссылку на документ. Ты что передаешь? что такое впоФорма01?
53 DrShad
 
12.02.13
10:48
это ты сейчас тип называешь
54 pessok
 
12.02.13
10:51
+(52) кстати, в 8.2 тоже есть отладчик, как и в 8.1. таким образом можно проверить, что ты туда запихать хочешь
55 logo23
 
12.02.13
10:55
(52) впоФорма01 - это имя документа
56 GANR
 
12.02.13
10:57
(0) У динамических списков есть свойство Отбор.
57 pessok
 
12.02.13
10:57
(5) здорово! а чем имя документа отличается от ссылки на документ?
58 pessok
 
12.02.13
10:58
(57) к (50)
59 pessok
 
12.02.13
10:58
мля, к (55) :)
60 GANR
 
12.02.13
11:00
61 pessok
 
12.02.13
11:02
(60) какой смысл накладывать отбор на ДС с произвольным запросом?
62 logo23
 
12.02.13
11:03
(61) Список.Параметры.УстановитьЗначениеПараметра("Ссылка", Документы.впоФорма01.ПолучитьСсылку());
Так открывается пустой справочник, или я опять не правильно обратился к документу?
63 pessok
 
12.02.13
11:05
(62) угадал, неправильно. сейчас ты передал туда пустую ссылку.
ты же открываешь форму выбора из документа? из документа. вот ссылку на этот документ тебе и надо запихнуть в параметр запроса. у открытой формы есть владелец - это форма документа. у формы документа есть свойство Объект, а у объекта есть реквизит ссылка.
64 DrShad
 
12.02.13
11:06
(62) потому что ссылка пустая
65 logo23
 
12.02.13
11:17
(63) ПолучитьСсылку (GetRef)
Синтаксис:

ПолучитьСсылку(<УникальныйИдентификатор>)
Параметры:

<УникальныйИдентификатор> (необязательный)

Тип: УникальныйИдентификатор.
Уникальный идентификатор, из которого будет формироваться ссылка.
Возвращаемое значение:

Тип: ДокументСсылка.

Описание:

Формирует ссылку из значения типа УникальныйИдентификатор.
Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Если параметр не указан или передано значение Неопределено, то будет сформирована новая уникальная ссылка.
66 DrShad
 
12.02.13
11:19
(65) продолжайте наблюдения! только внимательно читай что нашел в СП - это вообще не из этой оперы :)))
67 DrShad
 
12.02.13
11:19
+(66) самую последнюю строчку прочитай
68 pessok
 
12.02.13
11:20
(65) ты уже научился использовать СП, молодец. Только к чему нам это? Еще раз внимательно прочти (63)
69 logo23
 
12.02.13
11:25
(68) "угадал, неправильно. сейчас ты передал туда пустую ссылку." (63) туда это в запрос?

Список.Параметры.УстановитьЗначениеПараметра("Ссылка", Документы.впоФорма01.ПолучитьСсылку("Ссылка"));
Ошибка: Несоответствие типов (параметр номер '1')
70 hhhh
 
12.02.13
11:34
(69) но какую ссылку передаете?

Документы.впоФорма01.ПолучитьСсылку("Ссылка"));

это же откуда-то с неба, и совершенно не связано с тем документом, который вы говорите.
71 logo23
 
12.02.13
11:37
Не тот день я чтобы бросить курить выбрал...какая  же там ссылка должна быть?
72 hhhh
 
12.02.13
11:41
(71) а, да у вас справочник там. А почему вы тогда упорно хотите передать совершенно новую ссылку на еще нигде не существующий документ? Ведь понятно, что документа нет в базе.
73 logo23
 
12.02.13
11:52
(72) Список.Параметры.УстановитьЗначениеПараметра("Ссылка", Справочники.ФизическиеЛица.ПолучитьСсылку());
Открывается пустая форма, я уже понял, из-за того что пустая ссылка, как правильно обратиться к параметру?
Заранее спасибо
74 pessok
 
12.02.13
11:53
(73) так... ЧТО тебе надо передать в параметр для начала?
про ПолучитьСсылку() вообще забудь нафиг!
75 logo23
 
12.02.13
11:55
(74) Ссылку на справочник ФизическиеЛица

я щас закурю))
76 pessok
 
12.02.13
11:55
(73) ага
Запрос.УстановитьПараметр("Ссылка",ДанныеОбъекта.УчебноеЗаведение);

вот тебе и надо:
Список.УстановитьПараметр("Ссылка", РеквизитФормыВЗначение(ЭтаФорма.ВладелецФормы.УчебноеЗаведение))
77 pessok
 
12.02.13
11:56
(75) на КАКОЙ элемент справочника физические лица? где он указан?
78 pessok
 
12.02.13
11:57
только УстановитьЗначениеПараметра, есессна
79 logo23
 
12.02.13
12:05
(78) Спасибо тебе за большое за помощь, извини, что отнимаю твое время, но опять выпадает ошибка "Свойство недоступно на сервере"


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   
   Список.УстановитьЗначениеПараметра("Ссылка", РеквизитФормыВЗначение(ЭтаФорма.ВладелецФормы.УчебноеЗаведение))


КонецПроцедуры
80 DrShad
 
12.02.13
12:09
ЭтаФорма.ВладелецФормы.УчебноеЗаведение можно без РеквизитФормыВЗначение
81 pessok
 
12.02.13
12:10
(79) а, ну да, на сервере недоступна ЭтаФорма.
Таким образом тебе надо передать параметр при открытии:
В обработчике на форме документа:
Параметры = Новый Структура("УЗ", Объект.УчебноеЗаведение);
ОткрытьФорму("ПолноеИмяТвоейФормы", Параметры, Элемент);
А уже при создании на сервере, заполняя параметры:
Список.УстановитьЗначениеПараметра("Ссылка", Параметры.УЗ))
82 pessok
 
12.02.13
12:11
на самой форме выбора надо добавить этот параметр, да
83 DrShad
 
12.02.13
12:11
(81) почему это не доступно?
УправляемаяФорма (ManagedForm)
ЭтаФорма (ThisForm)
Использование:

Только чтение.
Описание:

Тип: УправляемаяФорма.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
84 sapphire
 
12.02.13
12:18
(0)
&НаСервере
Функция УстановитьОтбор()
   
   ДанныеОбъекта = РеквизитФормыВЗначение("Объект");
   
   Запрос = Новый Запрос;
   Запрос.Текст  = "ВЫБРАТЬ
                   |    ФизическиеЛица.Ссылка
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ВПО.Владелец КАК Владелец
                   |    ИЗ
                   |        (ВЫБРАТЬ
                   |            УчебныеЗаведенияВПО.Владелец КАК Владелец
                   |        ИЗ
                   |            Справочник.УчебныеЗаведенияВПО КАК УчебныеЗаведенияВПО
                   |        ГДЕ
                   |            УчебныеЗаведенияВПО.Ссылка = &Ссылка) КАК ВПО) КАК УчЗав
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                   |        ПО УчЗав.Владелец = ФизическиеЛица.Владелец";
   
   Запрос.УстановитьПараметр("Ссылка",ДанныеОбъекта.УчебноеЗаведение);
   
   Результат = Запрос.Выполнить().Выгрузить();
   Возврат Результат.ВыгрузитьКолонку("Ссылка");        
КонецФункции

&НаКлиенте
Процедура ОтветственыйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   НастройкаОтбора = Новый Структура;
   НастройкаОтбора.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("Должность"));
   НастройкаОтбора.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.ВСписке);
   НастройкаОтбора.Вставить("ПравоеЗначение",УстановитьОтбор());
   НастройкаОтбора.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
   
   ПараметрыОтбора = Новый Структура;
   ПараметрыОтбора.Вставить("НастройкаОтбора", НастройкаОтбора);
   
   ПараметрыОткрытия = Новый Структура("ПараметрыОтбора", ПараметрыОтбора);
   ПараметрыОткрытия.Вставить("Иерархия", "Список");
   
   ОткрытьФорму("Справочник.ФизическиеЛица.ФормаВыбора", ПараметрыОткрытия, Элемент, ЭтаФорма);
КонецПроцедуры
85 logo23
 
12.02.13
12:19
(81) &НаКлиенте
Процедура ОтветственныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
       
   Параметры = Новый Структура("УЗ", Объект.УчебноеЗаведение);
   ОткрытьФорму("Документ.впоФорма01.Форма.ФормаВыбора", Параметры, Элемент);

КонецПроцедуры
это на основной форме документа, окуда вызывается форма выбора

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   
   //Список.УстановитьЗначениеПараметра("Ссылка", РеквизитФормыВЗначение(ЭтаФорма.ВладелецФормы.УчебноеЗаведение));
   Список.УстановитьЗначениеПараметра("Ссылка", Параметры.УЗ));


КонецПроцедуры


это на форме выбора и выпадает ошибка:
{Документ.впоФорма01.Форма.ФормаВыбора.Форма(7,60)}: Неопознанный оператор
   Список.УстановитьЗначениеПараметра("Ссылка", Параметры.УЗ)<<?>>); (Проверка: Сервер)
{Документ.впоФорма01.Форма.ФормаВыбора.Форма(7,60)}: Неопознанный оператор
   Список.УстановитьЗначениеПараметра("Ссылка", Параметры.УЗ)<<?>>); (Проверка: Тонкий клиент)
86 sapphire
 
12.02.13
12:23
(85) а (84) чем не устраивает?
У поля "Ответственный" выбрать событие НачалоВыбора
87 Wobland
 
12.02.13
12:25
(85) что бы это могло быть? может, ещё одну закрывающую скобку добавить?
88 Wobland
 
12.02.13
12:26
и ведь оно даже в место нужное пальцем тычет
89 logo23
 
12.02.13
12:39
(84) Выводится все элементы справочника, без отбора.

ставил точку останова, вычислял выражения, вроде все правильно, в чем может быть ошибка?
90 sapphire
 
12.02.13
13:42
(89) А по-внимательней посмотреть на код не судьба? :)

&НаКлиенте
Процедура ОтветственыйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   НастройкаОтбора = Новый Структура;
   НастройкаОтбора.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("Ссылка"));
   НастройкаОтбора.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.ВСписке);
   НастройкаОтбора.Вставить("ПравоеЗначение",УстановитьОтбор());
   НастройкаОтбора.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
   
   ПараметрыОтбора = Новый Структура;
   ПараметрыОтбора.Вставить("НастройкаОтбора", НастройкаОтбора);
   
   ПараметрыОткрытия = Новый Структура("ПараметрыОтбора", ПараметрыОтбора);
   ПараметрыОткрытия.Вставить("Иерархия", "Список");
   
   ОткрытьФорму("Справочник.ФизическиеЛица.ФормаВыбора", ПараметрыОткрытия, Элемент, ЭтаФорма);
КонецПроцедуры
91 logo23
 
12.02.13
14:39
(90) и все равно выводится полный список физ. лиц

Хотя в массив заносятся нужные значения соотв. этому учебному заведению, и при отладке вычисляю выражения, все значения определены и вроде верные.

если массив имеет верные значения, значит ошибка с выводом его в формувыбора справочника?
92 sapphire
 
12.02.13
15:52
(91) Отладчиком она вообще в процедуру ОтветственыйНачалоВыбора заходит?
93 logo23
 
12.02.13
15:55
(92) да заходит и в установить отбор заходит, и в каждую строку шагает и считает ее, а в итоге все-равно выводит весь справочник без отбора, в чем может быть проблема?
94 logo23
 
12.02.13
16:01
(92) Может вам какие-либо посчитанные значение опубликовать, чтобы легче было найти решение проблемы?
Я сам смотрел, на мой неопытный взгляд все вроде правильно, и массив заполнен отобранными значениями из справочника, а выводится все равно весь справочник.
95 logo23
 
12.02.13
16:37
(92) НастройкаОтбора (FilterSettings)


Методы:

Добавить (Add)
Индекс (IndexOf)
Количество (Count)
Найти (Find)
Очистить (Clear)
Получить (Get)
Удалить (Delete)

Описание:

Набор элементов управления отбором.

Доступность:

Сервер, толстый клиент, внешнее соединение.

А она у нас на клиенте?!
96 logo23
 
13.02.13
08:56
Ни у кого нет никаких соображений, почему не срабатывает отбор?
97 logo23
 
13.02.13
11:33
вообще никаких?
98 logo23
 
13.02.13
15:59
up
99 logo23
 
14.02.13
10:16
(98) up
100 Wobland
 
14.02.13
11:09
сто?
101 logo23
 
14.02.13
11:32
(100) 101 уже(
надеюсь до 200 и дальше не дойдет и мой вопрос решится быстрее
102 Wobland
 
14.02.13
11:55
(101) можешь срезюмировать проблему в один пост? лениво 99 читать ;)
103 logo23
 
14.02.13
12:58
(102) Конечно

Проблема сформулированна в первом посте,
на данный момент мы имеем вот что:&НаСервере
Функция УстановитьОтбор()
   
   ДанныеОбъекта = РеквизитФормыВЗначение("Объект");
   
   Запрос = Новый Запрос;
   Запрос.Текст  = "ВЫБРАТЬ
                   |    ФизическиеЛица.Ссылка
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ВПО.Владелец КАК Владелец
                   |    ИЗ
                   |        (ВЫБРАТЬ
                   |            УчебныеЗаведенияВПО.Владелец КАК Владелец
                   |        ИЗ
                   |            Справочник.УчебныеЗаведенияВПО КАК УчебныеЗаведенияВПО
                   |        ГДЕ
                   |            УчебныеЗаведенияВПО.Ссылка = &Ссылка) КАК ВПО) КАК УчЗав
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                   |        ПО УчЗав.Владелец = ФизическиеЛица.Владелец";
   
   Запрос.УстановитьПараметр("Ссылка",ДанныеОбъекта.УчебноеЗаведение);
   
   Результат = Запрос.Выполнить().Выгрузить();
   Возврат Результат.ВыгрузитьКолонку("Ссылка");        
КонецФункции

&НаКлиенте
Процедура ОтветственыйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   НастройкаОтбора = Новый Структура;
   НастройкаОтбора.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("Должность"));
   НастройкаОтбора.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.ВСписке);
   НастройкаОтбора.Вставить("ПравоеЗначение",УстановитьОтбор());
   НастройкаОтбора.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
   
   ПараметрыОтбора = Новый Структура;
   ПараметрыОтбора.Вставить("НастройкаОтбора", НастройкаОтбора);
   
   ПараметрыОткрытия = Новый Структура("ПараметрыОтбора", ПараметрыОтбора);
   ПараметрыОткрытия.Вставить("Иерархия", "Список");
   
   ОткрытьФорму("Справочник.ФизическиеЛица.ФормаВыбора", ПараметрыОткрытия, Элемент, ЭтаФорма);
КонецПроцедуры

Где в Результат заносятся верные значения отбора, а при открытии ФормыВыбора справочника из документа открываются все элементы справочника без отбора.

Проблема в том что все вроде правильно написано, отладчиком прохожусь, все тоже вроде верно, но при запуске программы эл-ты не отбираются
104 logo23
 
14.02.13
12:59
(103)
*НастройкаОтбора.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("Ссылка"));
105 Wobland
 
14.02.13
13:11
не работал с таким. мне вот тут не нравится:
ПараметрыОткрытия.Вставить("Иерархия", "Список")
в структуру в Иерархию вставляется строка
106 Reset
 
14.02.13
13:28
(102) Давай я срезюмирую :)
Есть три справочника: Папки, Дочки, Сынки.
Сынки и дочки являются подчиненными справочнику Папки.

На форме есть два поля: Дочка, Сынок.
Пользователь выбирает сначала дочку (видимо, без отбора по родителю, просто из списка всех; не суть)
Задача: Когда пользователь начнет выбирать Сынка, предоставить ему выбор не всех, а тех, у которых папка тот же, что и у выбранной дочки.
В теме уже предложили два варианта
- отдельную форму выбора для сынков с динамических списком
- "стандартную" форму, у которой установлено отбор по "в списке"
Оба варианта у автора не выходят.
Можно еще предложить ВыбратьИзСписка или заполнять СписокВыбора у поля, но я не буду, т.к. ретроград(сижу до сих пор на обычных формах) и могу что-то криво объяснить в УФ.
107 logo23
 
14.02.13
14:15
(106)
1) Есть три справочника: Папки, Дочки, Сынки.
Сынки и дочки являются подчиненными справочнику Папки - ДА;

2) На форме есть два поля: Дочка, Сынок.
Пользователь выбирает сначала дочку (видимо, без отбора по родителю, просто из списка всех; не суть)  - не из всех, а из подчиненных родителю;

3) Задача: Когда пользователь начнет выбирать Сынка, предоставить ему выбор не всех, а тех, у которых папка тот же, что и у выбранной дочки. - ДА
108 logo23
 
14.02.13
14:17
(105) и как тогда быть?
109 pessok
 
14.02.13
14:17
я не верю... ты до сих пор не смог сделать элементарный отбор в ДС?
110 logo23
 
14.02.13
14:21
(109) я тоже не верю
111 Reset
 
14.02.13
14:28
(106) >>не из всех, а из подчиненных родителю
Если у тебя есть реквизит с владельцем, который используется для первого, почему нельяз сделать точно также для второго? (свзять по владельцу) Зачем огородами целяться к дочке, если владелец есть?
112 Reset
 
14.02.13
14:29
То есть, раз есть решение для первого справоника, сделай *точно также* для второго
113 logo23
 
14.02.13
14:32
(112) элементы сыынка не подчинены дочке, они подчинены папке
114 Wobland
 
14.02.13
14:44
двоечник. немного медитации над СП и всё готово. делал впервые

&НаКлиенте
Процедура СынокНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   СтандартнаяОбработка=Ложь;
   Форма=ПолучитьФорму("Справочник.Сынки.ФормаВыбора");
   О=Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   О.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Ссылка");
   О.ВидСравнения=ВидСравненияКомпоновкиДанных.ВСписке;
   О.ПравоеЗначение=ВотЭтотОтбор();
   Объект.Сынок=Форма.ОткрытьМодально();
КонецПроцедуры

&НаСервере
Функция ВотЭтотОтбор()
   Запрос=Новый Запрос;
   Запрос.Текст=
   "ВЫБРАТЬ
   |    Сынки.Ссылка
   |ИЗ
   |    Справочник.Сынки КАК Сынки
   |ГДЕ
   |    Сынки.Владелец = &Владелец";
   Запрос.УстановитьПараметр("Владелец", Объект.Папка);
   Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
115 Reset
 
14.02.13
14:54
(113) Я в курсе, елки
116 Reset
 
14.02.13
14:55
(113) Мне не понятно, почему ты организовал связь по владельцу или что-там для дочки, почему не сделаешь ТОЧНО ТОЖЕ САМОЕ для сынка.
117 logo23
 
14.02.13
15:13
ВСЕ работает!
Спасибо большое(ОГРОМНОЕ!) за помощь

вот код с которым заработало:
&НаКлиенте
Процедура СынокНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   СтандартнаяОбработка=Ложь;
   Форма=ПолучитьФорму("Справочник.ФизическиеЛица.ФормаВыбора");
   О=Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   О.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Ссылка");
   О.ВидСравнения=ВидСравненияКомпоновкиДанных.ВСписке;
   О.ПравоеЗначение=ВотЭтотОтбор();
   Объект.Ответственный=Форма.ОткрытьМодально();
КонецПроцедуры

&НаСервере
Функция ВотЭтотОтбор()
  ДанныеОбъекта = РеквизитФормыВЗначение("Объект");
   
   Запрос = Новый Запрос;
   Запрос.Текст  = "ВЫБРАТЬ
                   |    ФизическиеЛица.Ссылка
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ВПО.Владелец КАК Владелец
                   |    ИЗ
                   |        (ВЫБРАТЬ
                   |            УчебныеЗаведенияВПО.Владелец КАК Владелец
                   |        ИЗ
                   |            Справочник.УчебныеЗаведенияВПО КАК УчебныеЗаведенияВПО
                   |        ГДЕ
                   |            УчебныеЗаведенияВПО.Ссылка = &Ссылка) КАК ВПО) КАК УчЗав
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                   |        ПО УчЗав.Владелец = ФизическиеЛица.Владелец";
   
   Запрос.УстановитьПараметр("Ссылка",ДанныеОбъекта.УчебноеЗаведение);
   
   Результат = Запрос.Выполнить().Выгрузить();
   Возврат Результат.ВыгрузитьКолонку("Ссылка");

КонецФункции
118 Reset
 
14.02.13
15:16
(117) Сравни свой запрос с (114)
119 logo23
 
14.02.13
15:19
(118)
я ж его и переделывал, или ты хочешь сказать, что они одинаковы7?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.