Нужно чтобы отчет показывал информацию за год в пределах дня какое количество работающих ибо выбирать каждый день в период года это не реально.сейчас работает на дату.
ВЫБРАТЬ
ШтатноеРасписаниеСрезПоследних.Подразделение,
ШтатноеРасписаниеСрезПоследних.Должность,
РаботающиеСотрудникиНаДату.КоличествоРаботников КАК КоличествоРаботников
ИЗ
РегистрСведений.ШтатноеРасписание.СрезПоследних(, ) КАК ШтатноеРасписаниеСрезПоследних
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
РегистрСотрудниковСрезПоследних.Подразделение КАК Подразделение,
КОЛИЧЕСТВО(РегистрСотрудниковСрезПоследних.Работник) КАК КоличествоРаботников,
РегистрСотрудниковСрезПоследних.Должность КАК Должность
ИЗ
РегистрСведений.РегистрСотрудников.СрезПоследних(, ) КАК РегистрСотрудниковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
КадровыйДокументСотрудникиПринимаемые.Ссылка КАК Ссылка,
КадровыйДокументСотрудникиПринимаемые.Сотрудник КАК Сотрудник,
КадровыйДокументСотрудникиПринимаемые.Ссылка.Подразделение КАК Подразделение,
КадровыйДокументСотрудникиПринимаемые.ДатаПриема КАК ДатаПриема,
КадровыйДокументСотрудникиПринимаемые.Должность КАК Должность,
КадровыйДокументСотрудникиПринимаемые.Примечание КАК Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиПринимаемые КАК КадровыйДокументСотрудникиПринимаемые
ГДЕ
КадровыйДокументСотрудникиПринимаемые.Ссылка.ПометкаУдаления = ЛОЖЬ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КадровыйДокументСотрудникиУвольняемые.Ссылка,
КадровыйДокументСотрудникиУвольняемые.Сотрудник,
КадровыйДокументСотрудникиУвольняемые.Ссылка.Подразделение,
КадровыйДокументСотрудникиУвольняемые.ДатаПриема,
КадровыйДокументСотрудникиУвольняемые.Должность,
КадровыйДокументСотрудникиУвольняемые.Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиУвольняемые КАК КадровыйДокументСотрудникиУвольняемые
ГДЕ
КадровыйДокументСотрудникиУвольняемые.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК КадровыеДанные
ПО РегистрСотрудниковСрезПоследних.Подразделение = КадровыеДанные.Подразделение
И РегистрСотрудниковСрезПоследних.Работник = КадровыеДанные.Сотрудник
И РегистрСотрудниковСрезПоследних.ДатаПриема = КадровыеДанные.ДатаПриема
И РегистрСотрудниковСрезПоследних.Должность = КадровыеДанные.Должность
И РегистрСотрудниковСрезПоследних.Регистратор = КадровыеДанные.Ссылка
ГДЕ
РегистрСотрудниковСрезПоследних.Статус = &параметрСтатусРаботает
СГРУППИРОВАТЬ ПО
РегистрСотрудниковСрезПоследних.Подразделение,
РегистрСотрудниковСрезПоследних.Должность) КАК РаботающиеСотрудникиНаДату
ПО ШтатноеРасписаниеСрезПоследних.Подразделение = РаботающиеСотрудникиНаДату.Подразделение
И ШтатноеРасписаниеСрезПоследних.Должность = РаботающиеСотрудникиНаДату.Должность
вот пример на сегодня.
а так понемаю нужно сделать что-то вроде этого
ВЫБРАТЬ
Номенклатура,
Период,
ВНаличииКонечныйОстаток КАК Было
ПОМЕСТИТЬ Шаг0ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , )
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Номенклатура,
&НачалоПериода,0ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, ДЕНЬ, , )
;
////////Повторяется Х раз////////
ВЫБРАТЬ
Номенклатура,
Период,
ЕСТЬNULL(МАКСИМУМ(Было), МАКСИМУМ(Стало)) КАК Было
ПОМЕСТИТЬ Шаг1ИЗ
(ВЫБРАТЬ
Номенклатура КАК Номенклатура,
Период КАК Период,
Было КАК Было,
NULL КАК Стало
ИЗ
Шаг0//таблица, полученная на предыдущем шаге
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Номенклатура,
ДОБАВИТЬКДАТЕ(Период, ДЕНЬ, 1),//каждый раз вдвое больше дней: 1, 2, 4 и так далееNULL,
Было
ИЗ
Шаг0
ГДЕ
ДОБАВИТЬКДАТЕ(Период, ДЕНЬ, 1) <= &КонецПериода) КАК Куча
СГРУППИРОВАТЬ ПО
Номенклатура,
Период
;
////////конец повторов////////
ВЫБРАТЬ
Номенклатура,
Период,
Было
ИЗ
ШагХ
УПОРЯДОЧИТЬ ПО
Номенклатура,
Период
Живет на форуме
Группа: Местный
Сообщений: 2752
Из: Проскуров
Спасибо сказали: 709 раз
Рейтинг: 688.5
Цитата(burza @ 05.09.18, 16:18)
ВЫБРАТЬ Номенклатура, Период, ВНаличииКонечныйОстаток КАК Было ПОМЕСТИТЬ Шаг0 ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , )
попробуйте только вот это. группировки - таблица, строки - сотрудники, колонки - период
sava1 @ Вчера, 17:55
, это был пример) я прошу помочь адаптировать его к моему коду) если этот пример позволит сделать то что мне надо конечно) я могу ошибаться что это то что нужно
burza @ Вчера, 13:27
, Вот примерчик. Вроде как то так...
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) КАК Дата
ПОМЕСТИТЬ Календарь
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Календарь.Дата КАК Дата,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник) КАК Сотрудник
ИЗ
Календарь КАК Календарь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних КАК СостояниеРаботниковОрганизацийСрезПоследних
ПО Календарь.Дата >= СостояниеРаботниковОрганизацийСрезПоследних.Период
ГДЕ
СостояниеРаботниковОрганизацийСрезПоследних.Состояние = &Состояние
СГРУППИРОВАТЬ ПО
Календарь.Дата
burza @ Сегодня, 13:27
, Сделал вот такое но что-то тут не так
ВЫБРАТЬ РАЗЛИЧНЫЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ Дни
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ШтатноеРасписаниеСрезПоследних.Подразделение,
ШтатноеРасписаниеСрезПоследних.Должность,
СУММА(РаботающиеСотрудникиНаДату.КоличествоРаботников) КАК КоличествоРаботников,
ШтатноеРасписаниеСрезПоследних.Период,
РаботающиеСотрудникиНаДату.Работник,
Дни.ДатаКалендаря КАК ДатаКалендаря,
СУММА(ВЫБОР
КОГДА ШтатноеРасписаниеСрезПоследних.Период = &НачалоПериодаТОГДА ШтатноеРасписаниеСрезПоследних.КоличествоЕдиниц
КОНЕЦ) КАК КоличествоКонечныйОстаток
ИЗ
РегистрСведений.ШтатноеРасписание.СрезПоследних КАК ШтатноеРасписаниеСрезПоследних
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
РегистрСотрудниковСрезПоследних.Подразделение КАК Подразделение,
КОЛИЧЕСТВО(РегистрСотрудниковСрезПоследних.Работник) КАК КоличествоРаботников,
РегистрСотрудниковСрезПоследних.Должность КАК Должность,
РегистрСотрудниковСрезПоследних.Работник КАК Работник
ИЗ
РегистрСведений.РегистрСотрудников.СрезПоследних КАК РегистрСотрудниковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
КадровыйДокументСотрудникиПринимаемые.Ссылка КАК Ссылка,
КадровыйДокументСотрудникиПринимаемые.Сотрудник КАК Сотрудник,
КадровыйДокументСотрудникиПринимаемые.Ссылка.Подразделение КАК Подразделение,
КадровыйДокументСотрудникиПринимаемые.ДатаПриема КАК ДатаПриема,
КадровыйДокументСотрудникиПринимаемые.Должность КАК Должность,
КадровыйДокументСотрудникиПринимаемые.Примечание КАК Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиПринимаемые КАК КадровыйДокументСотрудникиПринимаемые
ГДЕ
КадровыйДокументСотрудникиПринимаемые.Ссылка.ПометкаУдаления = ЛОЖЬ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КадровыйДокументСотрудникиУвольняемые.Ссылка,
КадровыйДокументСотрудникиУвольняемые.Сотрудник,
КадровыйДокументСотрудникиУвольняемые.Ссылка.Подразделение,
КадровыйДокументСотрудникиУвольняемые.ДатаПриема,
КадровыйДокументСотрудникиУвольняемые.Должность,
КадровыйДокументСотрудникиУвольняемые.Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиУвольняемые КАК КадровыйДокументСотрудникиУвольняемые
ГДЕ
КадровыйДокументСотрудникиУвольняемые.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК КадровыеДанные
ПО РегистрСотрудниковСрезПоследних.Подразделение = КадровыеДанные.Подразделение
И РегистрСотрудниковСрезПоследних.Работник = КадровыеДанные.Сотрудник
И РегистрСотрудниковСрезПоследних.ДатаПриема = КадровыеДанные.ДатаПриема
И РегистрСотрудниковСрезПоследних.Должность = КадровыеДанные.Должность
И РегистрСотрудниковСрезПоследних.Регистратор = КадровыеДанные.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Дни КАК Дни
ПО РегистрСотрудниковСрезПоследних.Период = Дни.ДатаКалендаря
ГДЕ
РегистрСотрудниковСрезПоследних.Статус = &параметрСтатусРаботает
СГРУППИРОВАТЬ ПО
РегистрСотрудниковСрезПоследних.Подразделение,
РегистрСотрудниковСрезПоследних.Должность,
РегистрСотрудниковСрезПоследних.Работник) КАК РаботающиеСотрудникиНаДату
ПО ШтатноеРасписаниеСрезПоследних.Подразделение = РаботающиеСотрудникиНаДату.Подразделение
И ШтатноеРасписаниеСрезПоследних.Должность = РаботающиеСотрудникиНаДату.Должность
ЛЕВОЕ СОЕДИНЕНИЕ Дни КАК Дни
ПО ШтатноеРасписаниеСрезПоследних.Период <= Дни.ДатаКалендаря
СГРУППИРОВАТЬ ПО
ШтатноеРасписаниеСрезПоследних.Подразделение,
ШтатноеРасписаниеСрезПоследних.Должность,
Дни.ДатаКалендаря,
РаботающиеСотрудникиНаДату.Работник,
ШтатноеРасписаниеСрезПоследних.Период
УПОРЯДОЧИТЬ ПО
Дни.ДатаКалендаря
ВЫБРАТЬ
ШтатноеРасписаниеСрезПоследних.Подразделение,
ШтатноеРасписаниеСрезПоследних.Должность,
ШтатноеРасписаниеСрезПоследних.Должность.Родитель,
ШтатноеРасписаниеСрезПоследних.Оклад,
ШтатноеРасписаниеСрезПоследних.КоличествоЕдиниц,
РаботающиеСотрудникиНаДату.КоличествоРаботников
ИЗ
РегистрСведений.ШтатноеРасписание.СрезПоследних(, ) КАК ШтатноеРасписаниеСрезПоследних
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
РегистрСотрудниковСрезПоследних.Подразделение КАК Подразделение,
КОЛИЧЕСТВО(РегистрСотрудниковСрезПоследних.Работник) КАК КоличествоРаботников,
РегистрСотрудниковСрезПоследних.Должность КАК Должность
ИЗ
РегистрСведений.РегистрСотрудников.СрезПоследних(, ) КАК РегистрСотрудниковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
КадровыйДокументСотрудникиПринимаемые.Ссылка КАК Ссылка,
КадровыйДокументСотрудникиПринимаемые.Сотрудник КАК Сотрудник,
КадровыйДокументСотрудникиПринимаемые.Ссылка.Подразделение КАК Подразделение,
КадровыйДокументСотрудникиПринимаемые.ДатаПриема КАК ДатаПриема,
КадровыйДокументСотрудникиПринимаемые.Должность КАК Должность,
КадровыйДокументСотрудникиПринимаемые.Примечание КАК Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиПринимаемые КАК КадровыйДокументСотрудникиПринимаемые
ГДЕ
КадровыйДокументСотрудникиПринимаемые.Ссылка.ПометкаУдаления = ЛОЖЬ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КадровыйДокументСотрудникиУвольняемые.Ссылка,
КадровыйДокументСотрудникиУвольняемые.Сотрудник,
КадровыйДокументСотрудникиУвольняемые.Ссылка.Подразделение,
КадровыйДокументСотрудникиУвольняемые.ДатаПриема,
КадровыйДокументСотрудникиУвольняемые.Должность,
КадровыйДокументСотрудникиУвольняемые.Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиУвольняемые КАК КадровыйДокументСотрудникиУвольняемые
ГДЕ
КадровыйДокументСотрудникиУвольняемые.Ссылка.ПометкаУдаления = ЛОЖЬ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КадровыйДокументСотрудникиПереводимые.Ссылка,
КадровыйДокументСотрудникиПереводимые.Сотрудник,
КадровыйДокументСотрудникиПереводимые.Ссылка.Подразделение,
КадровыйДокументСотрудникиПереводимые.ДатаПриема,
КадровыйДокументСотрудникиПереводимые.ДолжностьИсх,
КадровыйДокументСотрудникиПереводимые.Примечание
ИЗ
Документ.КадровыйДокумент.СотрудникиПереводимые КАК КадровыйДокументСотрудникиПереводимые
ГДЕ
КадровыйДокументСотрудникиПереводимые.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК КадровыеДанные
ПО РегистрСотрудниковСрезПоследних.Подразделение = КадровыеДанные.Подразделение
И РегистрСотрудниковСрезПоследних.Работник = КадровыеДанные.Сотрудник
И РегистрСотрудниковСрезПоследних.ДатаПриема = КадровыеДанные.ДатаПриема
И РегистрСотрудниковСрезПоследних.Должность = КадровыеДанные.Должность
И РегистрСотрудниковСрезПоследних.Регистратор = КадровыеДанные.Ссылка
ГДЕ
РегистрСотрудниковСрезПоследних.Статус = &параметрСтатусРаботает
СГРУППИРОВАТЬ ПО
РегистрСотрудниковСрезПоследних.Подразделение,
РегистрСотрудниковСрезПоследних.Должность) КАК РаботающиеСотрудникиНаДату
ПО ШтатноеРасписаниеСрезПоследних.Подразделение = РаботающиеСотрудникиНаДату.Подразделение
И ШтатноеРасписаниеСрезПоследних.Должность = РаботающиеСотрудникиНаДату.Должность
добавить функцию вот этого пример
ВЫБРАТЬ РАЗЛИЧНЫЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ Дни
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
; ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Движения.Номенклатура,
ДНИ.ДатаКалендаря КАК ДатаКалендаря,
СУММА(ВЫБОР
КОГДА Движения.Период = &НачалоПериодаТОГДА Движения.КоличествоКонечныйОстаток
ИНАЧЕ ВЫБОР
КОГДА Движения.Период <= ДНИ.ДатаКалендаря
ТОГДА Движения.КоличествоОборот
ИНАЧЕ0
КОНЕЦ
КОНЕЦ) КАК КоличествоКонечныйОстаток
ИЗ
Дни КАК ДНИ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ДвиженияПО (Движения.Период <= ДНИ.ДатаКалендаря)
ГДЕ
Движения.Номенклатура.ОсновнойПоставщик = &ОсновнойПоставщикИ Движения.Номенклатура.Код = &Код
СГРУППИРОВАТЬ ПО
Движения.Номенклатура,
ДНИ.ДатаКалендаря
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!