|
Как сделать отчет периодами за каждый день , то есть сейчас идет пересчет только когда выбираем определеный день |
|
|
|
|
05.09.18, 15:18
|
Завсегдатай
   
Группа: Пользователи
Сообщений: 176
Спасибо сказали: 0 раз
Рейтинг: 0

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

Группа: Местный
Сообщений: 1967
Из: Проскуров
Спасибо сказали: 457 раз
Рейтинг: 447.4

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

|
Vidocq05 @ Сегодня, 11:53 
, да примеров хватает) спасибо) адаптируйте пожалуйста под мой код, я не могу въехать) burza @ Сегодня, 13:14 
, и календаря в конфе нет)
|
|
|
07.09.18, 15:30
|
Завсегдатай
   
Группа: Пользователи
Сообщений: 176
Спасибо сказали: 0 раз
Рейтинг: 0

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

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