Имя: Пароль:
1C
1С v8
Сравнить 3 табеля учета рабочего времени не используя ИЛИ в запросе
0 breezee
 
05.03.19
18:54
Коллеги, добрый день.
ЗУП 3.1
Есть задача - сделать отчет, который сравнивает табель учета рабочего времени, введенный за месяц с 2 табелями, 1 введен за первую половину месяца, 2 за вторую половину месяца. Соединять по сотруднику и дате, выводить только строки, где есть отличия. Документы могут быть не проведены.
Меня смущает структура документа. В документе есть ТЧ "ДанныеОВремени". Есть колонка сотрудника и 31 колонка "День" + Номер дня, т.е. День1, День2, День3... День31.
Сразу в голову пришло взять левое соединение по сотруднику и в условиях прописать "Табель1.День1 <> Табель2.День1 Или Табель2.День2 <> Табель2.День2... Или Табель1.День16 <> Табель3.День16, ...
Я так и сделаю, может, только текст запроса буду циклом составлять, чтобы читалось получше.
Но у меня вопрос, можно ли как-то "красивей" решить?. Мне не нравиться что придется использовать очень много "ИЛИ" в запросе, "ИЛИ" работает медленно.
Конкретно в моем случае на оптимальность заказчику все равно, но, если попадется такая же задача где заказчику будет важна быстрота...
Есть у кого какие идеи?
1 Garykom
 
гуру
05.03.19
19:10
Сложи и сверяй не по дням а суммой часов за период
2 singlych
 
05.03.19
19:11
- ОБЪЕДИНИТЬ вместо ИЛИ
- вместо реальной таблицы дока использовать результат функции ТаблицаДанныхОВремени() из модуля объекта
3 viktor_vv
 
05.03.19
19:14
Вывод данных в отчет как выглядеть будет ? Конечный результат какой ?
Сверни два табеля за первую половину и за вторую в одну таблицу по сотруднику и сравнивай с полным табелем.
Точнее даже все табеля сверни только с разными знаками , например общий с плюсом половинчатые с минусом и выводи где не ноль.
Ошибка? Это не ошибка, это системная функция.