|   |   | 
| 
 | Разные результаты - консоль и СКД | ☑ | ||
|---|---|---|---|---|
| 0
    
        Масянька 06.02.24✎ 08:36 | 
        Доброе утро!
 Запрос: ВЫБРАТЬ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период КАК Период, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность, ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени КАК ВидУчетаВремени, ВЫБОР КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&СписокЧасовогоВремени) ТОГДА 0 ИНАЧЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни КОНЕЦ КАК Дни, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Часы КАК Часы ИЗ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК ДанныеТабельногоУчетаРабочегоВремениСотрудников ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаНачала, ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)) КАК КадроваяИсторияСотрудниковСрезПоследних ПО (ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник) ГДЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И НЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&ЯвкиИВыходные) И ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник = &Сотрудник УПОРЯДОЧИТЬ ПО ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник В РС кадровая история по сотруднику 4 записи: 2 начальная штатная расстановка и 2 перемещения (временных), 2 временных более поздние. В консоли возвращает правильную должность (постоянную). В СКД возвращает временную должность. Изначально отчет СКД был без условия на пустую дату (ДействуетДо). После добавления условия - все равно возвращает не ту должность. Что не так в СКД? Спасибо. | |||
| 1
    
        Волшебник 06.02.24✎ 08:38 | 
        условие ДействуетДо вытащите из параметров в ГДЕ     | |||
| 2
    
        Волшебник 06.02.24✎ 08:38 | 
        в параметрах добавьте условие на сотрудника     | |||
| 3
    
        Масянька 06.02.24✎ 08:42 | 
        (1) 
 ВЫБРАТЬ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период КАК Период, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность, ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени КАК ВидУчетаВремени, ВЫБОР КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&СписокЧасовогоВремени) ТОГДА 0 ИНАЧЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни КОНЕЦ КАК Дни, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Часы КАК Часы ИЗ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК ДанныеТабельногоУчетаРабочегоВремениСотрудников ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаНачала, ) КАК КадроваяИсторияСотрудниковСрезПоследних ПО ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник ГДЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И НЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&ЯвкиИВыходные) И (КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)) //ИЛИ КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо ЕСТЬ NULL) УПОРЯДОЧИТЬ ПО ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник Не арбайтен (не та должность). | |||
| 4
    
        Гена гуру 06.02.24✎ 08:45 | 
        Попробуйте соединяться не с КадроваяИсторияСотрудников
 а с КадроваяИсторияСотрудниковИнтервальный Там уже чётко будут должности по датам. | |||
| 5
    
        Масянька 06.02.24✎ 08:48 | 
        (4) Там тоже самое (4 записи, с теми же должностями).
 Почему разные результаты в консоли и СКД? | |||
| 6
    
        Гена гуру 06.02.24✎ 08:50 | 
        (5) И всё-таки попробуйте.     | |||
| 7
    
        Масянька 06.02.24✎ 08:55 | 
        (6) 
 ВЫБРАТЬ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период КАК Период, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность, ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени КАК ВидУчетаВремени, ВЫБОР КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&СписокЧасовогоВремени) ТОГДА 0 ИНАЧЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни КОНЕЦ КАК Дни, ДанныеТабельногоУчетаРабочегоВремениСотрудников.Часы КАК Часы ИЗ РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК ДанныеТабельногоУчетаРабочегоВремениСотрудников ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК КадроваяИсторияСотрудниковСрезПоследних ПО ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник ГДЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период МЕЖДУ &ДатаНачала И &ДатаОкончания И НЕ ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В (&ЯвкиИВыходные) И КадроваяИсторияСотрудниковСрезПоследних.ДатаОкончания > &ДатаНачала УПОРЯДОЧИТЬ ПО ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник То же самое - не та должность. | |||
| 8
    
        Масянька 06.02.24✎ 08:56 | 
        +(7) В консоли - правильная должность.     | |||
| 9
    
        АгентБезопасной Нацио 06.02.24✎ 09:00 | 
        как вариант, перехвати ПриКомпоновкеРезультата, посмотри в подготовленный МакетКомпоновки.НаборыДанных соотвествующий НаборДанных и его  запрос (т.е. тот текст запроса, в который СКД првратила твой начальный запрос).     | |||
| 10
    
        toypaul гуру 06.02.24✎ 09:32 | 
        (0) когда в СКД результат другой, надо под рукой иметь другую консоль. не запросов, а консоль компоновки данных     | |||
| 11
    
        Буковка 06.02.24✎ 09:42 | 
        (0) попробуй переименовать параметры ДатаНачала и ДатаОкончания. Есть предположение, что в скд пересекается со стандартными параметрами РС.     | |||
| 12
    
        Масянька 06.02.24✎ 10:03 | 
        Ребята!
 Спасибо за наводки - буду пробовать (только вечером). Отпишусь. | |||
| 13
    
        Web00001 06.02.24✎ 10:03 | 
        >Почему разные результаты в консоли и СКД?
 Очень старый анекдот. СКД оптимизирует запрос. Может изменить условие или выкинуть поле, если не увидит. что оно тебе нужно(а у тебя по нему группировка). Нужна консоль которая покажет реальный запрос который СКД отправляет к БД. | |||
| 14
    
        Гена гуру 06.02.24✎ 10:36 | 
        Коллеги, у меня два теоретических вопроса. 
 1. Это нормально в (3): ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаНачала, ) ? Не надо разве здесь ставить &ДатаОкончания ? 2. Это нормально в (7): ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный ? Разве не надо добавить .СрезПоследних(&ДатаОкончания, ) ? | |||
| 15
    
        VladZ 06.02.24✎ 15:00 | 
        (0) СКД - это некая "магическая шляпа", для которой текст запроса всего лишь "часть фокуса".  Нужно смотреть остальные настройки. Это во-первых.
 Во-вторых, СКД думает, что он умнее всех и пытается что-то там оптимизировать. Не всегда корректно. Попробуй разбить запрос. | |||
| 16
    
        gul_Sayan 06.02.24✎ 16:06 | 
        (0) Если ЗУП 3 то лучше пользоваться РС КадроваяИсторияСотрудниковИнтервальный. При наличии временного перемещения срез последних не верный результат выдаст.     | |||
| 17
    
        Web00001 06.02.24✎ 16:35 | 
        (15)>Во-вторых, СКД думает, что он умнее всех 
 И надо сказать, что в 99% случаев он прав | |||
| 18
    
        Масянька 06.02.24✎ 20:42 | 
        (14) 1. В данном случае, не принципиально.
 2. Нету в КадроваяИсторияСотрудниковИнтервальный среза последних... Нету! | |||
| 19
    
        Волшебник 06.02.24✎ 20:54 | 
        (14) Не создавайте нам теорию сверх платформы.     | |||
| 20
    
        Волшебник 06.02.24✎ 21:08 | 
        Платформа предоставляет РегистрыСведений и СрезПоследних по измерениям с полем Период
 Всё остальное гибкое и настраиваемое. специально делают дубли данных, чтобы быстрее доставать. | |||
| 21
    
        Гена гуру 06.02.24✎ 21:34 | 
        (20) Возьмём обычный неинтервальный РС. 
 Пусть есть бессрочный Приём на работу: 01.01.2024 ... бухгалтер ... И есть временный кадровый перевод: 15.01.2024 ... программист ... действует до 01.02.2024 Срез последних на сегодня 06 февраля по какому периоду сработает? Не выдаст ли он по периоду регистрации записей ошибочно, что сегодня программист, а не правильное бухгалтер? | |||
| 22
    
        Гена гуру 06.02.24✎ 21:39 | 
        Я к чему. Не есть ли разница между СКД и консолью, что в одном случае СрезПоследних работает по периоду регистрации, а в другом - по периоду действия?     | |||
| 23
    
        Волшебник 06.02.24✎ 21:40 | 
        (22) Если есть различия в параметрах, то возможна разница в результате. А к чему вопрос-то?     | |||
| 24
    
        Гена гуру 06.02.24✎ 21:43 | 
        (23) Да это я для себя. Для понимания )     | |||
| 25
    
        Волшебник 06.02.24✎ 21:49 | 
        (24) 👍 Я вам больше скажу. Нормальная система иногда специально отвечает по-другому на один и тот же запрос, иначе кажется идиотом.     | |||
| 26
    
        Масянька 07.02.24✎ 15:05 | 
        Я продолжу...
 Сделала новый отчет СКД с тем же (!!!!) запросом. Правильная должность выводиться! Где эти настройки и как их грохнуть?! | |||
| 27
    
        Буковка 07.02.24✎ 15:10 | 
        (26) а заменить отчет на новый нельзя? возможно, дело было в кэше     | |||
| 28
    
        kir-g 07.02.24✎ 15:24 | 
        (27) Скорее всего отчет есть в Дополнительных, а новый отчет открывают как внешний отчет и если названия совпадают такая дичь может творится     | |||
| 29
    
        gul_Sayan 07.02.24✎ 15:29 | 
        (26) Есть такая штука если внешний отчет уже подключен к базе то запрос берётся из него, нужно либо заменять подключенный на новый или называть его по новому.     | |||
| 30
    
        Масянька 07.02.24✎ 15:45 | 
        (28) (29) Непереводимая игра слов с использованием местных идиоматических выражений ©
 Спасибо! | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |