Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать отчет периодами за каждый день
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Нужно чтобы отчет показывал информацию за год в пределах дня какое количество работающих
ибо выбирать каждый день в период года это не реально.сейчас работает на дату.
ВЫБРАТЬ
    ШтатноеРасписаниеСрезПоследних.Подразделение,
    ШтатноеРасписаниеСрезПоследних.Должность,
    РаботающиеСотрудникиНаДату.КоличествоРаботников КАК КоличествоРаботников
ИЗ
    РегистрСведений.ШтатноеРасписание.СрезПоследних(, ) КАК ШтатноеРасписаниеСрезПоследних
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РегистрСотрудниковСрезПоследних.Подразделение КАК Подразделение,
            КОЛИЧЕСТВО(РегистрСотрудниковСрезПоследних.Работник) КАК КоличествоРаботников,
            РегистрСотрудниковСрезПоследних.Должность КАК Должность
        ИЗ
            РегистрСведений.РегистрСотрудников.СрезПоследних(, ) КАК РегистрСотрудниковСрезПоследних
                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    КадровыйДокументСотрудникиПринимаемые.Ссылка КАК Ссылка,
                    КадровыйДокументСотрудникиПринимаемые.Сотрудник КАК Сотрудник,
                    КадровыйДокументСотрудникиПринимаемые.Ссылка.Подразделение КАК Подразделение,
                    КадровыйДокументСотрудникиПринимаемые.ДатаПриема КАК ДатаПриема,
                    КадровыйДокументСотрудникиПринимаемые.Должность КАК Должность,
                    КадровыйДокументСотрудникиПринимаемые.Примечание КАК Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиПринимаемые КАК КадровыйДокументСотрудникиПринимаемые
                ГДЕ
                    КадровыйДокументСотрудникиПринимаемые.Ссылка.ПометкаУдаления = ЛОЖЬ
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    КадровыйДокументСотрудникиУвольняемые.Ссылка,
                    КадровыйДокументСотрудникиУвольняемые.Сотрудник,
                    КадровыйДокументСотрудникиУвольняемые.Ссылка.Подразделение,
                    КадровыйДокументСотрудникиУвольняемые.ДатаПриема,
                    КадровыйДокументСотрудникиУвольняемые.Должность,
                    КадровыйДокументСотрудникиУвольняемые.Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиУвольняемые КАК КадровыйДокументСотрудникиУвольняемые
                ГДЕ
                    КадровыйДокументСотрудникиУвольняемые.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК КадровыеДанные
                ПО РегистрСотрудниковСрезПоследних.Подразделение = КадровыеДанные.Подразделение
                    И РегистрСотрудниковСрезПоследних.Работник = КадровыеДанные.Сотрудник
                    И РегистрСотрудниковСрезПоследних.ДатаПриема = КадровыеДанные.ДатаПриема
                    И РегистрСотрудниковСрезПоследних.Должность = КадровыеДанные.Должность
                    И РегистрСотрудниковСрезПоследних.Регистратор = КадровыеДанные.Ссылка
        ГДЕ
            РегистрСотрудниковСрезПоследних.Статус = &параметрСтатусРаботает
        
        СГРУППИРОВАТЬ ПО
            РегистрСотрудниковСрезПоследних.Подразделение,
            РегистрСотрудниковСрезПоследних.Должность) КАК РаботающиеСотрудникиНаДату
        ПО ШтатноеРасписаниеСрезПоследних.Подразделение = РаботающиеСотрудникиНаДату.Подразделение
            И ШтатноеРасписаниеСрезПоследних.Должность = РаботающиеСотрудникиНаДату.Должность



вот пример на сегодня.



а так понемаю нужно сделать что-то вроде этого
ВЫБРАТЬ
    Номенклатура,
    Период,
    ВНаличииКонечныйОстаток КАК Было
ПОМЕСТИТЬ Шаг0
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , )

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    Номенклатура,
    &НачалоПериода,
    0
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, ДЕНЬ, , )
;

////////Повторяется Х раз////////
ВЫБРАТЬ
    Номенклатура,
    Период,
    ЕСТЬNULL(МАКСИМУМ(Было), МАКСИМУМ(Стало)) КАК Было
ПОМЕСТИТЬ Шаг1
ИЗ
    (ВЫБРАТЬ
        Номенклатура КАК Номенклатура,
        Период КАК Период,
        Было КАК Было,
        NULL КАК Стало
    ИЗ      
        Шаг0 //таблица, полученная на предыдущем шаге
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Номенклатура,
        ДОБАВИТЬКДАТЕ(Период, ДЕНЬ, 1),//каждый раз вдвое больше дней: 1, 2, 4 и так далее
        NULL,
        Было
    ИЗ      
        Шаг0
    ГДЕ
        ДОБАВИТЬКДАТЕ(Период, ДЕНЬ, 1) <= &КонецПериода) КАК Куча

СГРУППИРОВАТЬ ПО
    Номенклатура,
    Период
;
////////конец повторов////////

ВЫБРАТЬ
    Номенклатура,
    Период,
    Было
ИЗ
    ШагХ

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Период


помогите адаптировать к моему коду.
sava1
Цитата(burza @ 05.09.18, 16:18) необходимо зарегистрироваться для просмотра ссылки
ВЫБРАТЬ Номенклатура, Период, ВНаличииКонечныйОстаток КАК Было ПОМЕСТИТЬ Шаг0 ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , )


попробуйте только вот это.
группировки - таблица, строки - сотрудники, колонки - период
burza
sava1 @ Вчера, 17:55 необходимо зарегистрироваться для просмотра ссылки ,
это был пример) я прошу помочь адаптировать его к моему коду) если этот пример позволит сделать то что мне надо конечно) я могу ошибаться что это то что нужно
burza
Поможет кто-то?)
Vidocq05
burza @ Вчера, 13:27 необходимо зарегистрироваться для просмотра ссылки ,
Вот примерчик.
Вроде как то так...

ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) КАК Дата
ПОМЕСТИТЬ Календарь
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Календарь.Дата КАК Дата,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник) КАК Сотрудник
ИЗ
    Календарь КАК Календарь
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних КАК СостояниеРаботниковОрганизацийСрезПоследних
        ПО Календарь.Дата >= СостояниеРаботниковОрганизацийСрезПоследних.Период
ГДЕ
    СостояниеРаботниковОрганизацийСрезПоследних.Состояние = &Состояние

СГРУППИРОВАТЬ ПО
    Календарь.Дата
burza
Vidocq05 @ Сегодня, 11:53 необходимо зарегистрироваться для просмотра ссылки ,
да примеров хватает) спасибо) адаптируйте пожалуйста под мой код, я не могу въехать)

burza @ Сегодня, 13:14 необходимо зарегистрироваться для просмотра ссылки ,
и календаря в конфе нет)
burza
burza @ Сегодня, 13:27 необходимо зарегистрироваться для просмотра ссылки ,
Сделал вот такое но что-то тут не так
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ Дни
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ШтатноеРасписаниеСрезПоследних.Подразделение,
    ШтатноеРасписаниеСрезПоследних.Должность,
    СУММА(РаботающиеСотрудникиНаДату.КоличествоРаботников) КАК КоличествоРаботников,
    ШтатноеРасписаниеСрезПоследних.Период,
    РаботающиеСотрудникиНаДату.Работник,
    Дни.ДатаКалендаря КАК ДатаКалендаря,
    СУММА(ВЫБОР
            КОГДА ШтатноеРасписаниеСрезПоследних.Период = &НачалоПериода
                ТОГДА ШтатноеРасписаниеСрезПоследних.КоличествоЕдиниц
        КОНЕЦ) КАК КоличествоКонечныйОстаток
ИЗ
    РегистрСведений.ШтатноеРасписание.СрезПоследних КАК ШтатноеРасписаниеСрезПоследних
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РегистрСотрудниковСрезПоследних.Подразделение КАК Подразделение,
            КОЛИЧЕСТВО(РегистрСотрудниковСрезПоследних.Работник) КАК КоличествоРаботников,
            РегистрСотрудниковСрезПоследних.Должность КАК Должность,
            РегистрСотрудниковСрезПоследних.Работник КАК Работник
        ИЗ
            РегистрСведений.РегистрСотрудников.СрезПоследних КАК РегистрСотрудниковСрезПоследних
                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    КадровыйДокументСотрудникиПринимаемые.Ссылка КАК Ссылка,
                    КадровыйДокументСотрудникиПринимаемые.Сотрудник КАК Сотрудник,
                    КадровыйДокументСотрудникиПринимаемые.Ссылка.Подразделение КАК Подразделение,
                    КадровыйДокументСотрудникиПринимаемые.ДатаПриема КАК ДатаПриема,
                    КадровыйДокументСотрудникиПринимаемые.Должность КАК Должность,
                    КадровыйДокументСотрудникиПринимаемые.Примечание КАК Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиПринимаемые КАК КадровыйДокументСотрудникиПринимаемые
                ГДЕ
                    КадровыйДокументСотрудникиПринимаемые.Ссылка.ПометкаУдаления = ЛОЖЬ
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    КадровыйДокументСотрудникиУвольняемые.Ссылка,
                    КадровыйДокументСотрудникиУвольняемые.Сотрудник,
                    КадровыйДокументСотрудникиУвольняемые.Ссылка.Подразделение,
                    КадровыйДокументСотрудникиУвольняемые.ДатаПриема,
                    КадровыйДокументСотрудникиУвольняемые.Должность,
                    КадровыйДокументСотрудникиУвольняемые.Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиУвольняемые КАК КадровыйДокументСотрудникиУвольняемые
                ГДЕ
                    КадровыйДокументСотрудникиУвольняемые.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК КадровыеДанные
                ПО РегистрСотрудниковСрезПоследних.Подразделение = КадровыеДанные.Подразделение
                    И РегистрСотрудниковСрезПоследних.Работник = КадровыеДанные.Сотрудник
                    И РегистрСотрудниковСрезПоследних.ДатаПриема = КадровыеДанные.ДатаПриема
                    И РегистрСотрудниковСрезПоследних.Должность = КадровыеДанные.Должность
                    И РегистрСотрудниковСрезПоследних.Регистратор = КадровыеДанные.Ссылка
                ЛЕВОЕ СОЕДИНЕНИЕ Дни КАК Дни
                ПО РегистрСотрудниковСрезПоследних.Период = Дни.ДатаКалендаря
        ГДЕ
            РегистрСотрудниковСрезПоследних.Статус = &параметрСтатусРаботает
        
        СГРУППИРОВАТЬ ПО
            РегистрСотрудниковСрезПоследних.Подразделение,
            РегистрСотрудниковСрезПоследних.Должность,
            РегистрСотрудниковСрезПоследних.Работник) КАК РаботающиеСотрудникиНаДату
        ПО ШтатноеРасписаниеСрезПоследних.Подразделение = РаботающиеСотрудникиНаДату.Подразделение
            И ШтатноеРасписаниеСрезПоследних.Должность = РаботающиеСотрудникиНаДату.Должность
        ЛЕВОЕ СОЕДИНЕНИЕ Дни КАК Дни
        ПО ШтатноеРасписаниеСрезПоследних.Период <= Дни.ДатаКалендаря

СГРУППИРОВАТЬ ПО
    ШтатноеРасписаниеСрезПоследних.Подразделение,
    ШтатноеРасписаниеСрезПоследних.Должность,
    Дни.ДатаКалендаря,
    РаботающиеСотрудникиНаДату.Работник,
    ШтатноеРасписаниеСрезПоследних.Период

УПОРЯДОЧИТЬ ПО
    Дни.ДатаКалендаря
burza
Помогите из этого
ВЫБРАТЬ
    ШтатноеРасписаниеСрезПоследних.Подразделение,
    ШтатноеРасписаниеСрезПоследних.Должность,
    ШтатноеРасписаниеСрезПоследних.Должность.Родитель,
    ШтатноеРасписаниеСрезПоследних.Оклад,
    ШтатноеРасписаниеСрезПоследних.КоличествоЕдиниц,
    РаботающиеСотрудникиНаДату.КоличествоРаботников
ИЗ
    РегистрСведений.ШтатноеРасписание.СрезПоследних(, ) КАК ШтатноеРасписаниеСрезПоследних
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РегистрСотрудниковСрезПоследних.Подразделение КАК Подразделение,
            КОЛИЧЕСТВО(РегистрСотрудниковСрезПоследних.Работник) КАК КоличествоРаботников,
            РегистрСотрудниковСрезПоследних.Должность КАК Должность
        ИЗ
            РегистрСведений.РегистрСотрудников.СрезПоследних(, ) КАК РегистрСотрудниковСрезПоследних
                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    КадровыйДокументСотрудникиПринимаемые.Ссылка КАК Ссылка,
                    КадровыйДокументСотрудникиПринимаемые.Сотрудник КАК Сотрудник,
                    КадровыйДокументСотрудникиПринимаемые.Ссылка.Подразделение КАК Подразделение,
                    КадровыйДокументСотрудникиПринимаемые.ДатаПриема КАК ДатаПриема,
                    КадровыйДокументСотрудникиПринимаемые.Должность КАК Должность,
                    КадровыйДокументСотрудникиПринимаемые.Примечание КАК Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиПринимаемые КАК КадровыйДокументСотрудникиПринимаемые
                ГДЕ
                    КадровыйДокументСотрудникиПринимаемые.Ссылка.ПометкаУдаления = ЛОЖЬ
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    КадровыйДокументСотрудникиУвольняемые.Ссылка,
                    КадровыйДокументСотрудникиУвольняемые.Сотрудник,
                    КадровыйДокументСотрудникиУвольняемые.Ссылка.Подразделение,
                    КадровыйДокументСотрудникиУвольняемые.ДатаПриема,
                    КадровыйДокументСотрудникиУвольняемые.Должность,
                    КадровыйДокументСотрудникиУвольняемые.Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиУвольняемые КАК КадровыйДокументСотрудникиУвольняемые
                ГДЕ
                    КадровыйДокументСотрудникиУвольняемые.Ссылка.ПометкаУдаления = ЛОЖЬ
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    КадровыйДокументСотрудникиПереводимые.Ссылка,
                    КадровыйДокументСотрудникиПереводимые.Сотрудник,
                    КадровыйДокументСотрудникиПереводимые.Ссылка.Подразделение,
                    КадровыйДокументСотрудникиПереводимые.ДатаПриема,
                    КадровыйДокументСотрудникиПереводимые.ДолжностьИсх,
                    КадровыйДокументСотрудникиПереводимые.Примечание
                ИЗ
                    Документ.КадровыйДокумент.СотрудникиПереводимые КАК КадровыйДокументСотрудникиПереводимые
                ГДЕ
                    КадровыйДокументСотрудникиПереводимые.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК КадровыеДанные
                ПО РегистрСотрудниковСрезПоследних.Подразделение = КадровыеДанные.Подразделение
                    И РегистрСотрудниковСрезПоследних.Работник = КадровыеДанные.Сотрудник
                    И РегистрСотрудниковСрезПоследних.ДатаПриема = КадровыеДанные.ДатаПриема
                    И РегистрСотрудниковСрезПоследних.Должность = КадровыеДанные.Должность
                    И РегистрСотрудниковСрезПоследних.Регистратор = КадровыеДанные.Ссылка
        ГДЕ
            РегистрСотрудниковСрезПоследних.Статус = &параметрСтатусРаботает
        
        СГРУППИРОВАТЬ ПО
            РегистрСотрудниковСрезПоследних.Подразделение,
            РегистрСотрудниковСрезПоследних.Должность) КАК РаботающиеСотрудникиНаДату
        ПО ШтатноеРасписаниеСрезПоследних.Подразделение = РаботающиеСотрудникиНаДату.Подразделение
            И ШтатноеРасписаниеСрезПоследних.Должность = РаботающиеСотрудникиНаДату.Должность


добавить функцию вот этого пример
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ Дни
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
; ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Движения.Номенклатура,
    ДНИ.ДатаКалендаря КАК ДатаКалендаря,
    СУММА(ВЫБОР
            КОГДА Движения.Период = &НачалоПериода
                ТОГДА Движения.КоличествоКонечныйОстаток
            ИНАЧЕ ВЫБОР
                    КОГДА Движения.Период <= ДНИ.ДатаКалендаря
                        ТОГДА Движения.КоличествоОборот
                    ИНАЧЕ 0
                КОНЕЦ
        КОНЕЦ) КАК КоличествоКонечныйОстаток
ИЗ
    Дни КАК ДНИ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК Движения
        ПО (Движения.Период <= ДНИ.ДатаКалендаря)
ГДЕ
    Движения.Номенклатура.ОсновнойПоставщик = &ОсновнойПоставщик
    И Движения.Номенклатура.Код = &Код
СГРУППИРОВАТЬ ПО
    Движения.Номенклатура,
    ДНИ.ДатаКалендаря


остаток рабочих на каждый день нужно
Vidocq05
burza @ Вчера, 14:59 необходимо зарегистрироваться для просмотра ссылки ,
Какая конфигурация?
burza
Vidocq05 @ Сегодня, 9:58 необходимо зарегистрироваться для просмотра ссылки ,
самописная
это приделал РегистрСведений.РегламентированныйПроизводственныйКалендарь
Vidocq05
burza @ Сегодня, 10:45 необходимо зарегистрироваться для просмотра ссылки ,
Ну так, без конфигурации, я не смогу подкорректировать Ваш запрос.
burza
Vidocq05 @ Сегодня, 11:13 необходимо зарегистрироваться для просмотра ссылки ,
необходимо зарегистрироваться для просмотра ссылки

там отчет КоличествоПоДолжностям вот его нужно на каждый день сделать
burza
Vidocq05 @ Вчера, 11:13 необходимо зарегистрироваться для просмотра ссылки ,
ну конфу скинул, как вы говорили. Поможете, или то было просто так сказано.
Vidocq05
Цитата(burza @ 11.09.18, 12:53) необходимо зарегистрироваться для просмотра ссылки
необходимо зарегистрироваться для просмотра ссылки

По ссылке ничего нет.
Цитата(burza @ 12.09.18, 9:21) необходимо зарегистрироваться для просмотра ссылки
Поможете, или то было просто так сказано.

Попытаюсь. Кидайте отчет и конфигурацию.
burza
Vidocq05 @ Сегодня, 10:04 необходимо зарегистрироваться для просмотра ссылки ,

необходимо зарегистрироваться для просмотра ссылки

отчет встроенный КоличествоПоДолжностям
burza
Vidocq05 @ 12.09.18, 10:04 необходимо зарегистрироваться для просмотра ссылки ,
Так что скажите?
Vidocq05
burza @ 14.09.18, 12:37 необходимо зарегистрироваться для просмотра ссылки ,
Прошу прощения. Сейчас работой пригрузили, нет времени. Постараюсь выделить время в ближайшие дни.
burza
Vidocq05 @ Сегодня, 13:06 необходимо зарегистрироваться для просмотра ссылки ,
Понял.Спасибо.жду)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.