Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

СКД. Отбор по сотруднику в запросе

СКД. Отбор по сотруднику в запросе
Я
   Flempy
 
27.11.20 - 07:35
Имеется отчет в скд, где нужно выводить всех сотрудников, кроме одного. Как можно это сделать, чтобы не выбирать этого сотрудника в ручную?
   Арбузов
 
1 - 27.11.20 - 07:41
Любого одного сотрудника? Или какого-то конкретного?
   Flempy
 
2 - 27.11.20 - 07:45
(1) Конкретного
   ДенисЧ
 
3 - 27.11.20 - 07:49
Укажи этого сотрудника в коде...
   Арбузов
 
4 - 27.11.20 - 07:57
(2) Ну и укажи его в параметре запроса СКД.
   Flempy
 
5 - 27.11.20 - 08:07
(4) как я его укажу в параметре, если там можно выбрать лишь ссылку на справочник с сотрудниками
   Flempy
 
6 - 27.11.20 - 08:11
(3) Можно по-подробнее?
   Lexandr
 
7 - 27.11.20 - 08:11
(5) Сделай вариант отчета без сотрудника и сделай настройки общие для всех. Выгрузи настройку отчета из клиентского режима и загрузи в режиме конфигуратора. При открытии отчета можешь программно добавлять отбор по сотруднику. Да тут гулять можно во все стороны. Гугл просто распирает от подобных решений.
   kobzon2
 
8 - 27.11.20 - 08:11
(5) В графе выражение можно написать: Справочники.Сотрудники.НайтиПоНаименованию"Иванов Иван Иванович")
или по коду так же.
   Flempy
 
9 - 27.11.20 - 08:23
(8) Почему-то ругается, мол синтаксическая ошибка
   kobzon2
 
10 - 27.11.20 - 08:36
(9) Потому что я с ошибкой написал. Справочники.Сотрудники.НайтиПоНаименованию("Иванов Иван Иванович")
   Flempy
 
11 - 27.11.20 - 08:42
(10) Ну скобку я то добавил и сам) Не из-за этого ошибка
   breezee
 
12 - 27.11.20 - 09:31
(11) Было бы прекрасно, если бы мы могли видеть текст ошибки. Возможно, тогда мы бы и помочь смогли
   Flempy
 
13 - 27.11.20 - 09:47
(12) ошибка возникала в консоли скд, добавил в конфигурации - запустилось, однако условие не выполнилось, этот сотрудник все равно вывелся
   Homer
 
14 - 27.11.20 - 09:55
Справочники.СотрудникиОрганизаций.НайтиПоНаименованию("
   breezee
 
15 - 27.11.20 - 09:56
(13) Херово написали
   Flempy
 
16 - 27.11.20 - 14:57
В общем сделал программно через отбор следующим образом

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    УстановитьОтборСКД("ТС", ВидСравненияКомпоновкиДанных.НеРавно, Справочники.ТранспортныеСредства.НайтиПоНаименованию("B 096 EE 777 Mercedes-Benz GL 350 CDI 4MATIC"));
КонецПроцедуры
Процедура УстановитьОтборСКД(ИмяПоля, ВидОтбора, Значение)
    ПолеОтбора = Новый ПолеКомпоновкиДанных(ИмяПоля);
    ОтборыКомпановщика = КомпоновщикНастроек.Настройки.Отбор.Элементы;
    Для Каждого Стр Из ОтборыКомпановщика Цикл
        Если Стр.ЛевоеЗначение = ПолеОтбора Тогда
            Отбор = Стр;
        КонецЕсли;
    КонецЦикла;
    Если Отбор = Неопределено Тогда
        Отбор = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        Отбор.ЛевоеЗначение  = ПолеОтбора;
    КонецЕсли;
    
    Если Значение <> Неопределено Тогда
        Отбор.ВидСравнения   = ВидОтбора;
        Отбор.Использование  = Истина;
        Отбор.ПравоеЗначение  = Значение;
    Иначе
        Отбор.Использование  = Ложь;
    КонецЕсли;
    
КонецПроцедуры
   Flempy
 
17 - 27.11.20 - 14:58
Однако когда я собираюсь расшифровать отчет по сотруднику, вышеуказанная процедура затирает расшифровку. Как можно избежать этого?
   Flempy
 
18 - 27.11.20 - 14:59
И да, я сделал в итоге отбор по ТС, а не по сотруднику
   Flempy
 
19 - 27.11.20 - 15:00
Надо сделать чтобы процедура работала только при нажатии на кнопку Сформировать
   Chameleon1980
 
20 - 27.11.20 - 15:07
сделай в запросе
   Flempy
 
21 - 27.11.20 - 15:11
(20) это как, если не секрет
   Chameleon1980
 
22 - 27.11.20 - 19:28
самой первой сделай временную таблицу с твоей ссылкой хоть по коду хоть по наименованию
далее в твоём запросе используй эту вт как ыильтр
   Flempy
 
23 - 30.11.20 - 07:48
А ведь все было так просто. Нужно было лишь добавить в самом запросе условие
ГДЕ СправочникТранспортныеСредства.Наименование <> "НаименованиеМашины"
   ДенисЧ
 
24 - 30.11.20 - 07:51


Список тем форума
 
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.