Имя: Пароль:
1C
1С v8
Получить таблицу за каждый день
,
0 Juliette_
Juliette
 
26.10.20
07:21
Зуп
Дана таблица значений Сотрудник / ДатаНачала / ДатаОкончания
Как красиво на выходе получить таблицу за каждый день периода? Не хочется использовать обычный перебор, предполагаю в ЗУП есть механизм.
Иванов 01.10.20 03.10.20
на выходе
Иванов 01.10.20
Иванов 02.10.20
Иванов 03.10.20

Вот есть такой ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(
        Запрос.МенеджерВременныхТаблиц,
        НачалоДня(ДатаНачалаПериода),
        КонецДня(ДатаОкончанияПериода),
        "ДЕНЬ",
        "Дата",
        "Календарь");
но как его правильно использовать для моей таблицы?
1 Chameleon1980
 
26.10.20
07:44
почти везде был производственный карендаль
2 qwerty42russ
 
26.10.20
08:02
ВЫБРАТЬ
    0 КАК Цифра
ПОМЕСТИТЬ ТабЦифр

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) КАК День
ИЗ
    ТабЦифр КАК ТабЦифр1,
    ТабЦифр КАК ТабЦифр2,
    ТабЦифр КАК ТабЦифр3,
    ТабЦифр КАК ТабЦифр4
ГДЕ
    ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) <= ДОБАВИТЬКДАТЕ(&ДатаКонца, МЕСЯЦ, 2)

УПОРЯДОЧИТЬ ПО
    День УБЫВ
3 qwerty42russ
 
26.10.20
08:05
Это код на создание запросом календаря на определенную дату
Потыкай его, мб разберешься

Если что - ДОБАВИТЬКДАТЕ(&ДатаКонца, МЕСЯЦ, 2) - это мне нужно было сделать на 2 месяца вперед календарь. Оставь там "ДатаКонца" и это будет считаться границей календаря
4 SleepyHead
 
гуру
26.10.20
08:07
(0) Следующая тема - как свернуть таблицу дат по периодам.
5 Juliette_
Juliette
 
26.10.20
08:14
(4) это я умею
(1) не совсем понимаю

вот начала запроса, формируем ВТ "Календарь"
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    // Создание таблицы дней
    ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(
        Запрос.МенеджерВременныхТаблиц,
        НачалоДня(ДатаНачала),
        КонецДня(ДатаОкончания),
        "ДЕНЬ",
        "Дата",
        "Календарь");

Дальше не понимаю, как связать с таблицей (
6 SleepyHead
 
гуру
26.10.20
08:38
(5) Какую проблему решаешь с помощью такой таблицы?
7 Juliette_
Juliette
 
26.10.20
08:47
(6) создан документ отклонений, куда вносятся данные сотрудник, период отсутствия.
В Зуп 2.5 был такой механизм, в 3-ке от него отказались непонятно почему.
В итоге надо после заполнения табеля выполнить подмену вида времени за эти периоды.
Обычным перебором задача решается, но хочу "модно в стиле зуп"
8 Juliette_
Juliette
 
26.10.20
09:19
получилось )
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    // Создание таблицы дней

    ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(
        Запрос.МенеджерВременныхТаблиц,
        НачалоДня(ДатаНачала),
        КонецДня(ДатаОкончания),
        "ДЕНЬ",
        "Дата",
        "Календарь");

    Запрос.Текст =
        "ВЫБРАТЬ
        |    Календарь.Дата КАК Дата,
        |    ОтсутствияСотрудники.Сотрудник КАК Сотрудник
        |ИЗ
        |    Календарь КАК Календарь
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтсутствияСотрудники.Сотрудники КАК ОтсутствияСотрудники
        |        ПО (Календарь.Дата >= ОтсутствияСотрудники.ДатаНачала И Календарь.Дата <= ОтсутствияСотрудники.ДатаОкончания)
        |ГДЕ
        |    ОтсутствияСотрудники.Ссылка.Проведен";
9 SleepyHead
 
гуру
26.10.20
09:43
(7) "создан документ отклонений, куда вносятся данные сотрудник, период отсутствия.
В Зуп 2.5 был такой механизм, в 3-ке от него отказались непонятно почему."

В ЗУП 3.1 есть документ, регистрирующий отсутствия. Так и называется - "Отсутствие, неявка".

Чем он не подходит?
10 SleepyHead
 
гуру
26.10.20
09:46
(7) "В итоге надо после заполнения табеля выполнить подмену вида времени за эти периоды."

Все документы отсутствий и отклонений от нормального графика работы нужно вносить до расчета, а не после. А табель в ЗУП 3.1 вообще не нужен в большинстве случаев, если только речь не идет о работе с территориями или неформализуемым графиком работы

Сдается мне, ты пытаешься решить проблему "как раньше", но на другом инструменте, и получается пока не очень. Может быть, начать лучше с изучения ЗУП 3.1 ?
11 Juliette_
Juliette
 
26.10.20
13:18
(10) "Может быть, начать лучше с изучения ЗУП 3.1 ?" Правда что ли?
Так называемый документ "Отсутствие, неявка" заточен под определенные виды времени и начисления, неужели Вы думаете, что не рассматривался этот вариант?
Чтобы реализовать хотелку переписывать в типовом функционале придется достаточно - это и новый вид состояния сотрудника и в ПВР настроить соотношение с начислением.
Вопрос где мороки больше.
Сейчас все решилось добавлением нового вида документа и кодом в 30 строк.
12 D_E_S_131
 
26.10.20
13:51
(11) Неужели вы думаете, что кадровый учет в вашей компании какой-то уникальный и нигде в стране больше такого нет?
13 SleepyHead
 
гуру
26.10.20
16:33
(11) В этом ответе прекрасно всё.

Ну ок, ок, так и запишем.