|
Как это сделать в СКД? | ☑ | ||
---|---|---|---|---|
0
Масянька
07.12.23
✎
08:49
|
Доброе утро!
Простой запрос: ВЫБРАТЬ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период КАК Период, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник КАК Сотрудник, ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени КАК ВидУчетаВремени, ВЫБОР КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&СписокЧасовогоВремени) ТОГДА 0 ИНАЧЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни КОНЕЦ КАК Дни, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Часы КАК Часы, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Регистратор КАК Регистратор, ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени.ОсновноеВремя КАК ВидУчетаВремениОсновноеВремя, ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени.БуквенныйКод КАК ВидУчетаВремениБуквенныйКод ИЗ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК ДанныеТабельногоУчетаРабочегоВремениСотрудников ГДЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И НЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&ЯвкиИВыходные) УПОРЯДОЧИТЬ ПО ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник Второе условие: И НЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&ЯвкиИВыходные) - хочу сделать через флажки на форме отчета: установлен флажок "Выводить явки" в параметр ЯвкиИВыходные добавляется вид времени "Явки". Аналогично с выходными. Как? Спасибо. |
|||
1
SleepyHead
07.12.23
✎
08:52
|
Ну, как вариант - сделай параметр "ПорядокУчетаЯвокИВыходных" в режиме выбора из списка
Для пользователя это будет наглядно Значением может быть число, представлением - что угодно. 0 - Явки и выходные 1 - Только явки 2 - Только выходные и в зависимости от его значения строй условие в запросе, например так ВЫБОР КОГДА &порядокУчетаЯвокВыходных=0 ТОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (Значение(Справочник.ВидыУчераРабочегоВремени.Явка),Значение(Справочник.ВидыУчераРабочегоВремени.Выходной) ) ... |
|||
2
toypaul
07.12.23
✎
09:05
|
Добавить параметры, отображать их на форме, в при компоновке их анализировать и формировать список. С отображением будет конечно отдельная проблема ... просто так параметр флажком не сделать
|
|||
3
Масянька
07.12.23
✎
09:28
|
(1) Получается так:
Если (ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&СписокЧасовогоВремени)) Тогда 0 ИначеЕсли (ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = Справочники.ВидыИспользованияРабочегоВремени.Явка И &Явки = Ложь) Тогда 0 ИначеЕсли (ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = Справочники.ВидыИспользованияРабочегоВремени.ВыходныеДни И &Выходные = Ложь) Тогда 0 Иначе ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни КонецЕсли; Как в запрос правильно воткнуть? |
|||
4
SleepyHead
07.12.23
✎
09:58
|
Если надо заменить на ВЫБОР КОГДА
Выбор КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&СписокЧасовогоВремени) Тогда 0 КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = Значение(Справочник.ВидыИспользованияРабочегоВремени.Явка) И &Явки = Ложь Тогда 0 КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = Значение(Справочник.ВидыИспользованияРабочегоВремени.ВыходныеДни И &Выходные = Ложь Тогда 0 Иначе ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни Конец |
|||
5
Масянька
07.12.23
✎
10:01
|
(4) Вельми понеже ©
Огромное человеческое спасибо! |
|||
6
toypaul
07.12.23
✎
11:16
|
(3),(4) что за ужос вы тут пишете. был же нормальный запрос в (0)
|
|||
7
SleepyHead
07.12.23
✎
11:25
|
(6)
Конечно, можно сделать список значений в качестве параметра и туда вносить лишние виды времени Но я представляю лицо марьиванны, когда ей такое предложишь. А перехват события ПриКомпоновке ТС (видимо) не хочет) |
|||
8
Масянька
07.12.23
✎
11:41
|
(2) Как добавить параметры на форму?
|
|||
9
SleepyHead
07.12.23
✎
11:42
|
(8) так в УФ они сами добавляются. А у тебя что?
|
|||
10
Масянька
07.12.23
✎
11:45
|
По-моему, получается каменный цветок 🤨
|
|||
11
АгентБезопасной Нацио
07.12.23
✎
12:00
|
а почему не добавить еще условие?
И НЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&ЯвкиИВыходные) // тут всё, без явок и выходных И НЕ (ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = &Явки И &ФлагЯвки) И НЕ (ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = &Выходные И &ФлагВыходные) Параметры СКД &Явки и &Выходные - заполнить и сделать недоступными. а параметры &ФлагЯвки и &ФлагВыходные - сделать доступными и в пользовательских настройках? |
|||
12
Масянька
07.12.23
✎
15:44
|
Не совсем...
На форме появились явки и выходные, а вот изменение (да/нет ан форме) не срабатывает. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СписокВидовЧасовогоВремени = Новый СписокЗначений; СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Вечерние часы")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Вечерние часы ВРО")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Вечерние часы РВ")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Ночные часы")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Ночные часы НРО")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Ночные часы РВ")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Праздники")); СписокВидовЧасовогоВремени.Добавить(Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Простой, не зависящий от работодателя и работника")); ПараметрВыходные = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Выходные")); ПараметрЯвки = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Явки")); сообщить("" + ПараметрВыходные.Значение + " / " + ПараметрЯвки.Значение); СписокЯвокИВыходных = Новый СписокЗначений; Если (ПараметрВыходные.Значение = ЛОЖЬ) Тогда СписокЯвокИВыходных.Добавить(Справочники.ВидыИспользованияРабочегоВремени.ВыходныеДни); КонецЕсли; если (ПараметрЯвки.Значение = ЛОЖЬ) Тогда СписокЯвокИВыходных.Добавить(Справочники.ВидыИспользованияРабочегоВремени.Явка); КонецЕсли; Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных; Параметры.УстановитьЗначениеПараметра("СписокЧасовогоВремени", СписокВидовЧасовогоВремени); Параметры.УстановитьЗначениеПараметра("ЯвкиИВыходные", СписокЯвокИВыходных); ЗарплатаКадрыОтчеты.ПриКомпоновкеРезультатаВТабличныйДокумент(ЭтотОбъект, ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка, Ложь); КонецПроцедуры В независимости от того, что выбрано на форме (да или нет) - всегда Нет. |
|||
13
Масянька
07.12.23
✎
15:45
|
+(12) Форма - https://postimg.cc/Jsy171ZH
|
|||
14
Масянька
07.12.23
✎
15:52
|
Вообще фигня какая-то получается...всё, что в списке часового времени тоже не выводится...
|
|||
15
toypaul
07.12.23
✎
15:53
|
КомпоновщикНастроек.ПолучитьНастройки() - и отсюда затем берем все что нужно
|
|||
16
lEvGl
07.12.23
✎
16:04
|
(15) как бы да, в интерфейсе как хочется получить список/массив и при каком нибудь событии назначить его параметру
+ по-моему получитьнастройки - копирует настройки в переменную, а можно Настройки.УстановитьЗначениеПараметра(Список), как то так было |
|||
17
Масянька
07.12.23
✎
16:12
|
(15) Спасибо! 😘
|
|||
18
Масянька
07.12.23
✎
16:18
|
А вариант упорядочить параметры на форме?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |