|
Ограничение отбора ДС по нескольким параметрам | ☑ | ||
---|---|---|---|---|
0
Юзер123
01.09.23
✎
10:35
|
Доброго времени.
Есть Список документов Требование накладная. Для пользователей с ограниченными правами там установлен программно отбор по ответственному. ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ответственный"); ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь(); Сейчас поставили задачу добавить в список накладных еще документы где ЦФО получатель.ФизЛицо - ФизЛицо текущего пользователя. И тут встал вопрос. Первый отбор исключает второй. Делаю через изменение запроса ДС. С Объединением. 1 часть с отбором по ответственному 2 часть с отбором по физ лицу. Делаю все это в процедуре ПриСозданииНаСервере Запрос полностью скопирован из Типового запроса ДС. И в Конструкторе запроса все хорошо. К Документам где ответственный текущий пользователь добавляются документы где Физ лицо текущего пользователя совпадает с ФизЛицом ЦФО получателя. Но ДС под пользователем формируется криво. Не так как Типовой. Пропадает 1 столбец.. Состояние Внутр. ЭДО Типовой запрос ВЫБРАТЬ ДокументТребованиеНакладная0315006.Ссылка, ДокументТребованиеНакладная0315006.ВерсияДанных, ДокументТребованиеНакладная0315006.ПометкаУдаления, ДокументТребованиеНакладная0315006.Номер, ДокументТребованиеНакладная0315006.Дата, ДокументТребованиеНакладная0315006.Проведен, ДокументТребованиеНакладная0315006.Организация, ДокументТребованиеНакладная0315006.ИФО, ДокументТребованиеНакладная0315006.ПодразделениеОтправитель, ДокументТребованиеНакладная0315006.ЦМООтправитель, ДокументТребованиеНакладная0315006.Комментарий, ДокументТребованиеНакладная0315006.ЦМОПолучатель, ДокументТребованиеНакладная0315006.ПодразделениеПолучатель, ДокументТребованиеНакладная0315006.КорСчет, ДокументТребованиеНакладная0315006.ВидПеремещения, ДокументТребованиеНакладная0315006.МоментВремени, ДокументТребованиеНакладная0315006.СчетУчета, ДокументТребованиеНакладная0315006.ИдентификаторПечатнойФормы КАК ИдентификаторПечатнойФормы, ДокументТребованиеНакладная0315006.ПредставлениеПечатнойФормы КАК ПредставлениеПечатнойФормы, ОперацииДокументов.СуммаОперации, ОперацииДокументов.Операция, ВЫБОР КОГДА ОперацииДокументов.ЕстьПроводки ЕСТЬ NULL ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ОперацияНеВыбрана) КОГДА НЕ ОперацииДокументов.ЕстьПроводки ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиОтсутствуют) КОГДА ЕСТЬNULL(ОперацииДокументов.ДокументСторнирован, ЛОЖЬ) = ИСТИНА ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ДокументСторнирован) КОГДА ЕСТЬNULL(ОперацииДокументов.РучнаяКорректировка, ЛОЖЬ) = ИСТИНА ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиИзмененыВручную) КОГДА ЕСТЬNULL(ОперацииДокументов.ИсправлениеОшибки, ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ПустаяСсылка)) В (ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаПрошлогоГода), ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаРанееПрошлогоГода)) ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ИсправлениеОшибки) ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиСформированы) КОНЕЦ КАК СостояниеОперации, ВЫБОР КОГДА ОперацииДокументов.ЕстьПроводки ЕСТЬ NULL ТОГДА 0 КОГДА НЕ ОперацииДокументов.ЕстьПроводки ТОГДА 1 КОГДА ЕСТЬNULL(ОперацииДокументов.ДокументСторнирован, ЛОЖЬ) = ИСТИНА ТОГДА 4 КОГДА ЕСТЬNULL(ОперацииДокументов.РучнаяКорректировка, ЛОЖЬ) = ИСТИНА ТОГДА 3 КОГДА ЕСТЬNULL(ОперацииДокументов.ИсправлениеОшибки, ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ПустаяСсылка)) В (ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаПрошлогоГода), ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаРанееПрошлогоГода)) ТОГДА 5 ИНАЧЕ 2 КОНЕЦ КАК СостояниеОперацииКод, ДокументТребованиеНакладная0315006.Ответственный, ВЫБОР КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL ТОГДА 0 КОГДА НаличиеФайлов.ЕстьФайлы ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ЕстьФайлы, СостоянияЭД.ПредставлениеСостояния КАК СостояниеЭДО, NULL КАК СостояниеОригиналаПервичногоДокумента, ИСТИНА КАК ОбщееСостояние, 0 КАК СостояниеОригиналПолучен ИЗ Документ.ТребованиеНакладная0315006 КАК ДокументТребованиеНакладная0315006 {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД ПО (СостоянияЭД.СсылкаНаОбъект = ДокументТребованиеНакладная0315006.Ссылка)} {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОперацииДокументов КАК ОперацииДокументов ПО ДокументТребованиеНакладная0315006.Ссылка = ОперацииДокументов.Документ} {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов ПО ДокументТребованиеНакладная0315006.Ссылка = НаличиеФайлов.ОбъектСФайлами} Мой запрос Список.Отбор.Элементы.Очистить(); Список.ТекстЗапроса = "ВЫБРАТЬ | ДокументТребованиеНакладная0315006.Ссылка КАК Ссылка, | ДокументТребованиеНакладная0315006.ВерсияДанных КАК ВерсияДанных, | ДокументТребованиеНакладная0315006.ПометкаУдаления КАК ПометкаУдаления, | ДокументТребованиеНакладная0315006.Номер КАК Номер, | ДокументТребованиеНакладная0315006.Дата КАК Дата, | ДокументТребованиеНакладная0315006.Проведен КАК Проведен, | ДокументТребованиеНакладная0315006.Организация КАК Организация, | ДокументТребованиеНакладная0315006.ИФО КАК ИФО, | ДокументТребованиеНакладная0315006.ПодразделениеОтправитель КАК ПодразделениеОтправитель, | ДокументТребованиеНакладная0315006.ЦМООтправитель КАК ЦМООтправитель, | ВЫРАЗИТЬ(ДокументТребованиеНакладная0315006.Комментарий КАК СТРОКА(250)) КАК Комментарий, | ДокументТребованиеНакладная0315006.ЦМОПолучатель КАК ЦМОПолучатель, | ДокументТребованиеНакладная0315006.ПодразделениеПолучатель КАК ПодразделениеПолучатель, | ДокументТребованиеНакладная0315006.КорСчет КАК КорСчет, | ДокументТребованиеНакладная0315006.ВидПеремещения КАК ВидПеремещения, | ДокументТребованиеНакладная0315006.МоментВремени КАК МоментВремени, | ДокументТребованиеНакладная0315006.СчетУчета КАК СчетУчета, | ДокументТребованиеНакладная0315006.ИдентификаторПечатнойФормы КАК ИдентификаторПечатнойФормы, | ДокументТребованиеНакладная0315006.ПредставлениеПечатнойФормы КАК ПредставлениеПечатнойФормы, | ОперацииДокументов.СуммаОперации КАК СуммаОперации, | ОперацииДокументов.Операция КАК Операция, | ВЫБОР | КОГДА ОперацииДокументов.ЕстьПроводки ЕСТЬ NULL | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ОперацияНеВыбрана) | КОГДА НЕ ОперацииДокументов.ЕстьПроводки | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиОтсутствуют) | КОГДА ЕСТЬNULL(ОперацииДокументов.ДокументСторнирован, ЛОЖЬ) = ИСТИНА | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ДокументСторнирован) | КОГДА ЕСТЬNULL(ОперацииДокументов.РучнаяКорректировка, ЛОЖЬ) = ИСТИНА | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиИзмененыВручную) | КОГДА ЕСТЬNULL(ОперацииДокументов.ИсправлениеОшибки, ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ПустаяСсылка)) В (ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаПрошлогоГода), ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаРанееПрошлогоГода)) | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ИсправлениеОшибки) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиСформированы) | КОНЕЦ КАК СостояниеОперации, | ВЫБОР | КОГДА ОперацииДокументов.ЕстьПроводки ЕСТЬ NULL | ТОГДА 0 | КОГДА НЕ ОперацииДокументов.ЕстьПроводки | ТОГДА 1 | КОГДА ЕСТЬNULL(ОперацииДокументов.ДокументСторнирован, ЛОЖЬ) = ИСТИНА | ТОГДА 4 | КОГДА ЕСТЬNULL(ОперацииДокументов.РучнаяКорректировка, ЛОЖЬ) = ИСТИНА | ТОГДА 3 | КОГДА ЕСТЬNULL(ОперацииДокументов.ИсправлениеОшибки, ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ПустаяСсылка)) В (ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаПрошлогоГода), ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаРанееПрошлогоГода)) | ТОГДА 5 | ИНАЧЕ 2 | КОНЕЦ КАК СостояниеОперацииКод, | ДокументТребованиеНакладная0315006.Ответственный КАК Ответственный, | ВЫБОР | КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL | ТОГДА 0 | КОГДА НаличиеФайлов.ЕстьФайлы | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ЕстьФайлы, | СостоянияЭД.ПредставлениеСостояния КАК СостояниеЭДО, | NULL КАК СостояниеОригиналаПервичногоДокумента, | ИСТИНА КАК ОбщееСостояние, | 0 КАК СостояниеОригиналПолучен |ИЗ | Документ.ТребованиеНакладная0315006 КАК ДокументТребованиеНакладная0315006 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД | ПО (СостоянияЭД.СсылкаНаОбъект = ДокументТребованиеНакладная0315006.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОперацииДокументов КАК ОперацииДокументов | ПО ДокументТребованиеНакладная0315006.Ссылка = ОперацииДокументов.Документ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов | ПО ДокументТребованиеНакладная0315006.Ссылка = НаличиеФайлов.ОбъектСФайлами |ГДЕ | ДокументТребованиеНакладная0315006.Ответственный = &ТекущийПользователь | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ДокументТребованиеНакладная0315006.Ссылка, | ДокументТребованиеНакладная0315006.ВерсияДанных, | ДокументТребованиеНакладная0315006.ПометкаУдаления, | ДокументТребованиеНакладная0315006.Номер, | ДокументТребованиеНакладная0315006.Дата, | ДокументТребованиеНакладная0315006.Проведен, | ДокументТребованиеНакладная0315006.Организация, | ДокументТребованиеНакладная0315006.ИФО, | ДокументТребованиеНакладная0315006.ПодразделениеОтправитель, | ДокументТребованиеНакладная0315006.ЦМООтправитель, | ВЫРАЗИТЬ(ДокументТребованиеНакладная0315006.Комментарий КАК СТРОКА(250)), | ДокументТребованиеНакладная0315006.ЦМОПолучатель, | ДокументТребованиеНакладная0315006.ПодразделениеПолучатель, | ДокументТребованиеНакладная0315006.КорСчет, | ДокументТребованиеНакладная0315006.ВидПеремещения, | ДокументТребованиеНакладная0315006.МоментВремени, | ДокументТребованиеНакладная0315006.СчетУчета, | ДокументТребованиеНакладная0315006.ИдентификаторПечатнойФормы, | ДокументТребованиеНакладная0315006.ПредставлениеПечатнойФормы, | ОперацииДокументов.СуммаОперации, | ОперацииДокументов.Операция, | ВЫБОР | КОГДА ОперацииДокументов.ЕстьПроводки ЕСТЬ NULL | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ОперацияНеВыбрана) | КОГДА НЕ ОперацииДокументов.ЕстьПроводки | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиОтсутствуют) | КОГДА ЕСТЬNULL(ОперацииДокументов.ДокументСторнирован, ЛОЖЬ) = ИСТИНА | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ДокументСторнирован) | КОГДА ЕСТЬNULL(ОперацииДокументов.РучнаяКорректировка, ЛОЖЬ) = ИСТИНА | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиИзмененыВручную) | КОГДА ЕСТЬNULL(ОперацииДокументов.ИсправлениеОшибки, ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ПустаяСсылка)) В (ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаПрошлогоГода), ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаРанееПрошлогоГода)) | ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ИсправлениеОшибки) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияОперацииДокумента.ПроводкиСформированы) | КОНЕЦ, | ВЫБОР | КОГДА ОперацииДокументов.ЕстьПроводки ЕСТЬ NULL | ТОГДА 0 | КОГДА НЕ ОперацииДокументов.ЕстьПроводки | ТОГДА 1 | КОГДА ЕСТЬNULL(ОперацииДокументов.ДокументСторнирован, ЛОЖЬ) = ИСТИНА | ТОГДА 4 | КОГДА ЕСТЬNULL(ОперацииДокументов.РучнаяКорректировка, ЛОЖЬ) = ИСТИНА | ТОГДА 3 | КОГДА ЕСТЬNULL(ОперацииДокументов.ИсправлениеОшибки, ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ПустаяСсылка)) В (ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаПрошлогоГода), ЗНАЧЕНИЕ(Перечисление.ПорядокИсправленияОшибокПрошлыхЛет.ОшибкаРанееПрошлогоГода)) | ТОГДА 5 | ИНАЧЕ 2 | КОНЕЦ, | ДокументТребованиеНакладная0315006.Ответственный, | ВЫБОР | КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL | ТОГДА 0 | КОГДА НаличиеФайлов.ЕстьФайлы | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ, | СостоянияЭД.ПредставлениеСостояния, | NULL, | ИСТИНА, | 0 |ИЗ | Документ.ТребованиеНакладная0315006 КАК ДокументТребованиеНакладная0315006 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД | ПО (СостоянияЭД.СсылкаНаОбъект = ДокументТребованиеНакладная0315006.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОперацииДокументов КАК ОперацииДокументов | ПО ДокументТребованиеНакладная0315006.Ссылка = ОперацииДокументов.Документ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов | ПО ДокументТребованиеНакладная0315006.Ссылка = НаличиеФайлов.ОбъектСФайлами |ГДЕ | ДокументТребованиеНакладная0315006.ЦМОПолучатель.Сотрудник.Контрагент.ЮридическоеФизическоеЛицо = &ФизЛицоТекПользователя"; БГУ Конфа.. |
|||
1
Юзер123
01.09.23
✎
13:42
|
Апь. Сейчас при формировании выдает ошибку. Под другим пользователем с ограниченными правами.
|
|||
2
Юзер123
01.09.23
✎
14:45
|
Основная таблица динамического списка задана неверно.
Вот такая сейчас ошибка. СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); СвойстваСписка.ТекстЗапроса = ТекстЗапроса; СвойстваСписка.ОсновнаяТаблица = Список.ОсновнаяТаблица; СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ТекущийПользователь", Пользователи.ТекущийПользователь()); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ФизЛицоТекПользователя", Пользователи.ТекущийПользователь().ФизическоеЛицо); |
|||
3
Юзер123
01.09.23
✎
14:48
|
СвойстваСписка.ОсновнаяТаблица = "";
Сделал так. взлетело. |
|||
4
Юзер123
01.09.23
✎
17:04
|
(3) а нет.. не взлетело. Список выводится, но он не активный. т.е. нельзя в документ зайти.
|
|||
5
Юзер123
01.09.23
✎
19:05
|
Разобрался) пятницо.. После моих переделок Основная таблица из итогового запроса улетела. . .
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |