|
Вывод Таблицы значений | ☑ | ||
---|---|---|---|---|
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? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |