|
СКД. Отбор по сотруднику в запросе | ☑ | ||
---|---|---|---|---|
0
Flempy
27.11.20
✎
07:35
|
Имеется отчет в скд, где нужно выводить всех сотрудников, кроме одного. Как можно это сделать, чтобы не выбирать этого сотрудника в ручную?
|
|||
1
Арбузов
27.11.20
✎
07:41
|
Любого одного сотрудника? Или какого-то конкретного?
|
|||
2
Flempy
27.11.20
✎
07:45
|
(1) Конкретного
|
|||
3
ДенисЧ
27.11.20
✎
07:49
|
Укажи этого сотрудника в коде...
|
|||
4
Арбузов
27.11.20
✎
07:57
|
(2) Ну и укажи его в параметре запроса СКД.
|
|||
5
Flempy
27.11.20
✎
08:07
|
(4) как я его укажу в параметре, если там можно выбрать лишь ссылку на справочник с сотрудниками
|
|||
6
Flempy
27.11.20
✎
08:11
|
(3) Можно по-подробнее?
|
|||
7
Lexandr
27.11.20
✎
08:11
|
(5) Сделай вариант отчета без сотрудника и сделай настройки общие для всех. Выгрузи настройку отчета из клиентского режима и загрузи в режиме конфигуратора. При открытии отчета можешь программно добавлять отбор по сотруднику. Да тут гулять можно во все стороны. Гугл просто распирает от подобных решений.
|
|||
8
kobzon2
27.11.20
✎
08:11
|
(5) В графе выражение можно написать: Справочники.Сотрудники.НайтиПоНаименованию"Иванов Иван Иванович")
или по коду так же. |
|||
9
Flempy
27.11.20
✎
08:23
|
(8) Почему-то ругается, мол синтаксическая ошибка
|
|||
10
kobzon2
27.11.20
✎
08:36
|
(9) Потому что я с ошибкой написал. Справочники.Сотрудники.НайтиПоНаименованию("Иванов Иван Иванович")
|
|||
11
Flempy
27.11.20
✎
08:42
|
(10) Ну скобку я то добавил и сам) Не из-за этого ошибка
|
|||
12
breezee
27.11.20
✎
09:31
|
(11) Было бы прекрасно, если бы мы могли видеть текст ошибки. Возможно, тогда мы бы и помочь смогли
|
|||
13
Flempy
27.11.20
✎
09:47
|
(12) ошибка возникала в консоли скд, добавил в конфигурации - запустилось, однако условие не выполнилось, этот сотрудник все равно вывелся
|
|||
14
Homer
27.11.20
✎
09:55
|
Справочники.СотрудникиОрганизаций.НайтиПоНаименованию("
|
|||
15
breezee
27.11.20
✎
09:56
|
(13) Херово написали
|
|||
16
Flempy
27.11.20
✎
14:57
|
В общем сделал программно через отбор следующим образом
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) УстановитьОтборСКД("ТС", ВидСравненияКомпоновкиДанных.НеРавно, Справочники.ТранспортныеСредства.НайтиПоНаименованию("B 096 EE 777 Mercedes-Benz GL 350 CDI 4MATIC")); КонецПроцедуры Процедура УстановитьОтборСКД(ИмяПоля, ВидОтбора, Значение) ПолеОтбора = Новый ПолеКомпоновкиДанных(ИмяПоля); ОтборыКомпановщика = КомпоновщикНастроек.Настройки.Отбор.Элементы; Для Каждого Стр Из ОтборыКомпановщика Цикл Если Стр.ЛевоеЗначение = ПолеОтбора Тогда Отбор = Стр; КонецЕсли; КонецЦикла; Если Отбор = Неопределено Тогда Отбор = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = ПолеОтбора; КонецЕсли; Если Значение <> Неопределено Тогда Отбор.ВидСравнения = ВидОтбора; Отбор.Использование = Истина; Отбор.ПравоеЗначение = Значение; Иначе Отбор.Использование = Ложь; КонецЕсли; КонецПроцедуры |
|||
17
Flempy
27.11.20
✎
14:58
|
Однако когда я собираюсь расшифровать отчет по сотруднику, вышеуказанная процедура затирает расшифровку. Как можно избежать этого?
|
|||
18
Flempy
27.11.20
✎
14:59
|
И да, я сделал в итоге отбор по ТС, а не по сотруднику
|
|||
19
Flempy
27.11.20
✎
15:00
|
Надо сделать чтобы процедура работала только при нажатии на кнопку Сформировать
|
|||
20
Chameleon1980
27.11.20
✎
15:07
|
сделай в запросе
|
|||
21
Flempy
27.11.20
✎
15:11
|
(20) это как, если не секрет
|
|||
22
Chameleon1980
27.11.20
✎
19:28
|
самой первой сделай временную таблицу с твоей ссылкой хоть по коду хоть по наименованию
далее в твоём запросе используй эту вт как ыильтр |
|||
23
Flempy
30.11.20
✎
07:48
|
А ведь все было так просто. Нужно было лишь добавить в самом запросе условие
ГДЕ СправочникТранспортныеСредства.Наименование <> "НаименованиеМашины" |
|||
24
ДенисЧ
30.11.20
✎
07:51
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |