|
Передача в запрос параметра для отображения в динамическом списке | ☑ | ||
---|---|---|---|---|
0
Bilkinbill
11.10.18
✎
12:11
|
Всем привет!
Есть запрос, одним из полем которого (Ознакомление) определяется открывался ли документ пользователем (запись в регистре сведений). Необходимо в динамическом списке документов в соответствующем поле выводить запись "Прочитано" или "не прочитано". Вопрос: В процедуре ПриОткрытии() пишу: СписокДокументыДляСогласования.Параметры.УстановитьЗначениеПараметра("Пользователь",ПараметрыСеанса.КанцТекущееДолжностноеЛицо); СписокДокументыДляСогласования.Параметры.УстановитьЗначениеПараметра("ЭтотДок",ТекСтр(Элементы.СписокДокументыДляСогласования.ТекущиеяДанные)); Но в динам.списке в колонке "Ознакомление" пишется неверная запись (из регистра)...Что я делаю не так? ВЫБРАТЬ РАЗЛИЧНЫЕ Канц_РКК.Ссылка КАК Ссылка, Канц_РКК.ВидДокумента КАК ВидДокумента, Канц_РККМаршрут.Получатель КАК Получатель, Канц_РККСогласование.ДолжностноеЛицо КАК ДолжностноеЛицо, Канц_РКК.СтатусСогласования КАК СтатусСогласования, Канц_РККСогласование.Решение КАК Решение, ВложенныйЗапрос.Ознакомление КАК Ознакомление ИЗ Документ.Канц_РКК КАК Канц_РКК ЛЕВОЕ СОЕДИНЕНИЕ Документ.Канц_РКК.Маршрут КАК Канц_РККМаршрут ПО Канц_РКК.Ссылка = Канц_РККМаршрут.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.Канц_РКК.Согласование КАК Канц_РККСогласование ПО Канц_РКК.Ссылка = Канц_РККСогласование.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВЫБОР КОГДА Канц_ОзнакомлениеСДокументами.ДолжностноеЛицо <> &Пользователь И Канц_ОзнакомлениеСДокументами.Документ = &ЭтотДок ТОГДА "Не прочитано" ИНАЧЕ "прочитано" КОНЕЦ КАК Ознакомление, Канц_ОзнакомлениеСДокументами.Документ КАК Документ ИЗ РегистрСведений.Канц_ОзнакомлениеСДокументами КАК Канц_ОзнакомлениеСДокументами) КАК ВложенныйЗапрос ПО Канц_РКК.Ссылка = ВложенныйЗапрос.Документ.Ссылка ГДЕ (Канц_РККМаршрут.Получатель = &Пользователь ИЛИ Канц_РККСогласование.ДолжностноеЛицо = &Пользователь) |
|||
1
Bilkinbill
11.10.18
✎
12:13
|
(1) В процедуре ПриОткрытии() пишу:
СписокДокументыДляСогласования.Параметры.УстановитьЗначениеПараметра("Пользователь",ПараметрыСеанса.КанцТекущееДолжностноеЛицо); СписокДокументыДляСогласования.Параметры.УстановитьЗначениеПараметра("ЭтотДок",Элементы.СписокДокументыДляСогласования.ТекущиеДанные)); |
|||
2
hhhh
11.10.18
✎
12:15
|
(1) ну Элементы.СписокДокументыДляСогласования.ТекущиеДанные - это не документ. Почему вы это в ЭтотДок пихаете?
|
|||
3
Bilkinbill
11.10.18
✎
12:17
|
(2) Пробовал Элементы.СписокДокументыДляСогласования.ТекущиеДанные.ссылка
Ошибка |
|||
4
hhhh
11.10.18
✎
12:19
|
(3) значит забыли колонку "Ссылка" добавить в этот список.
|
|||
5
aleks_default
11.10.18
✎
12:20
|
Зачем вам вообще нужен ЭтотДок? Нужно просто соединить список документов с записями регистров по ссылке и вывести поле Ознакомление - все.
|
|||
6
catena
11.10.18
✎
12:27
|
Параметр запроса - из строки результата запроса? Это не серьезно.
|
|||
7
Bilkinbill
11.10.18
✎
16:30
|
(5) в этом случае (если убрать условие по ЭтомуДоку) возникает ошибка "Обнаружено дублирование ключевых значений в колонках Ссылка"....если кончено запрос корректный
ВЫБРАТЬ РАЗЛИЧНЫЕ Канц_РКК.Ссылка КАК Ссылка, Канц_РКК.ВидДокумента КАК ВидДокумента, Канц_РКК.ВидДокумента.Родитель КАК ВидДокументаРодитель, Канц_РККМаршрут.Получатель КАК Получатель, Канц_РККСогласование.ДолжностноеЛицо КАК ДолжностноеЛицо, Канц_РКК.СтатусСогласования КАК СтатусСогласования, Канц_РККСогласование.Решение КАК Решение, ВложенныйЗапрос.Ознакомление КАК Ознакомление ИЗ Документ.Канц_РКК КАК Канц_РКК ЛЕВОЕ СОЕДИНЕНИЕ Документ.Канц_РКК.Маршрут КАК Канц_РККМаршрут ПО Канц_РКК.Ссылка = Канц_РККМаршрут.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.Канц_РКК.Согласование КАК Канц_РККСогласование ПО Канц_РКК.Ссылка = Канц_РККСогласование.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВЫБОР КОГДА Канц_ОзнакомлениеСДокументами.ДолжностноеЛицо <> &Пользователь ТОГДА "Не прочитано" ИНАЧЕ "прочитано" КОНЕЦ КАК Ознакомление, Канц_ОзнакомлениеСДокументами.Документ КАК Документ ИЗ РегистрСведений.Канц_ОзнакомлениеСДокументами КАК Канц_ОзнакомлениеСДокументами) КАК ВложенныйЗапрос ПО Канц_РКК.Ссылка = ВложенныйЗапрос.Документ.Ссылка ГДЕ (Канц_РККМаршрут.Получатель = &Пользователь ИЛИ Канц_РККСогласование.ДолжностноеЛицо = &Пользователь) |
|||
8
Bilkinbill
11.10.18
✎
16:31
|
(4) не забыл
|
|||
9
Bilkinbill
11.10.18
✎
16:32
|
(6) предложите более серьезное решение
|
|||
10
catena
12.10.18
✎
08:04
|
(7)Условием связи на левое соединение. Дублирование записей - это уже другой вопрос, смотрите, из-за каких значений дублируется и какие связи нужно добавить
|
|||
11
Bilkinbill
12.10.18
✎
09:33
|
(10) дублируется полем ссылка видимо..т.к. без условия с ЭтотДок появляются 2 записи...условие связи по полю ссылка на документ из дух таблиц
|
|||
12
catena
12.10.18
✎
09:43
|
(11)Вопрос не в том, ЧТО дублируется, а в том ИЗ-ЗА ЧЕГО. Значит у вас один документ встречается в регистре ознакомления несколько раз. Определитесь, какой из этих разов вам нужен.
|
|||
13
Bilkinbill
12.10.18
✎
09:57
|
(12) естественно несколько раз.....в регистре сведений записываются записи в Измерения Документ и пользователь..один документ могут открывать разные пользователи
|
|||
14
catena
12.10.18
✎
10:03
|
(13)Ну так выбирайте только по текущему пользователю, а свое прочитано/непрочитано вынесите в основные поля
Выбор когда ВложенныйЗапрос.Документ естьNULL тогда "Непрочитано" иначе "Прочитано" конец |
|||
15
Bilkinbill
12.10.18
✎
10:36
|
(14) спасибо...всё работает....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |