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

Получить таблицу за каждый день

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

Вот есть такой ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(
        Запрос.МенеджерВременныхТаблиц,
        НачалоДня(ДатаНачалаПериода),
        КонецДня(ДатаОкончанияПериода),
        "ДЕНЬ",
        "Дата",
        "Календарь");
но как его правильно использовать для моей таблицы?
   Chameleon1980
 
1 - 26.10.20 - 07:44
почти везде был производственный карендаль
   qwerty42russ
 
2 - 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)

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

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

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

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


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

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.