|
Как поставить условие в отчете на СКД | ☑ | ||
---|---|---|---|---|
0
Oleg102
24.07.13
✎
12:43
|
Всем привет! Помогите настроить отчет. Всю голову сломал. Есть отчет по проживающим в общежитие. Мне надо настроить отчет определенным образом.
Как сейчас: У меня есть документ "Карточка заселения" где указываются данные 1. "Проживающий" 2. "Дата заселения" 3. "Дата выселения" Так вот человек заселяется указывается кто он и ставится "Дата заселения" и такой нюанс, что "Дата выселения" ставится только тогда когда он выезжает по факту. ТАК ВОТ Сейчас сделал отчет который показывает: --------------------------------------------------------------------- Проживающий |Дата заселения|Дата выселения| Кол. дней | Иванов Иван Иванович| 02.07.2013 | | | --------------------------------------------------------------------- Дата выселения ставится в отчете тогда когда, если есть в документе движение с проставленной "Дата выселения" или если нет движения и указывается в отчете "&КонецПериода", то тогда в пустых датах выселения проставляется дата конца периода от чего и считается уже кол дней прожитых. Вот такой вид имеет: Начало периода - 01.07.2013 Конец периода - 31.07.2013 --------------------------------------------------------------------- Проживающий |Дата заселения|Дата выселения| Кол. дней | Иванов Иван Иванович| 02.07.2013 | 31.07.2013 | 29 | --------------------------------------------------------------------- Теперь к самому главному: Мне надо как то сделать вид отчета такой. Человек как видно выше "Иванов Иван Иванович" заселился "02.07.2013" и дата выселения в документе "карточка заселения" не стоит. Прошел месяц с тех пор был сформирован отчет за месяц, который тоже находится выше. Теперь начинается месяц "Август" и число у нас например "15.08.2013" и человек до сих пор живет. НО мне надо подсчитать, сколько он прожил (Период с "01.08.2013" до "15.08.2013"). Мне в данном отчете нужно, что бы когда я ставлю "Дата начала" и "дату конца", выбрало и добавило в отчет только тех людей у кого не проставлена "Дата выселения" в документе "карточка зеселения" и дата уже отсчета в отчете стояла с "01.08.2013" Имел такой вид: Начало периода - 01.08.2013 Конец периода - 15.08.2013 --------------------------------------------------------------------- Проживающий |Дата заселения|Дата выселения| Кол. дней | Иванов Иван Иванович| 01.08.2013 | 15.08.2013 | 15 | --------------------------------------------------------------------- А если стоит "Дата выселения" в документе то устанавливалась в отчете его реальная "дата выселения" по документу, но считала опять же количество дней уже исходя из "Начала периода", так как это новый месяц уже и считать количество прожитых дней надо с начало нового месяца. Как это все сделать просто незнаю и вообще возможно ли. Думал делать закрытия месяца, но это все так трудоемка, так как нужно сделать очень много документов движения. Это сделать выезд проживающего, как будто сдача белья и много дополнительных услуг которые присутствуют в документе и после создать новый с датой первого числа нового месяца. Подскажите как это можно реализовать в отчете! Уже голова болит. Может у кого есть какие идеи. Спасибо. |
|||
1
Oleg102
24.07.13
✎
13:04
|
Кто нибудь. Хелпппппппппп
|
|||
2
Rovan
гуру
24.07.13
✎
13:06
|
ВЫБОР КОГДА датавыселения = ДАТАВРЕМЯ(1,1,1)
ТОГДА КонецПериода ИНАЧЕ датавыселения КОНЕЦ |
|||
3
Oleg102
24.07.13
✎
13:09
|
(2) У меня такое уже условие стоит на Дата выселения где проставляется дата конца периода. Я же написал в вопросе. Или создать еще один свой реквизит в запросе отчета?
|
|||
4
Oleg102
24.07.13
✎
13:25
|
Походу ни у кого нет идей. =(
|
|||
5
Oleg102
24.07.13
✎
15:54
|
Подскажите Можно как то сделать 2-а движениея в одном документе. Это "Приход" и "Расход" По определным условиям. Например статус. Если стоит статус "выполняется" то приход если закрыт и провести "то расход". Возможно так сделать. что то пробовал не получается.
|
|||
6
Oleg102
24.07.13
✎
15:56
|
т.е. мне хочется сделать что бы не делать дополнительный документ выезд проживающего. А поставить дату окончания и статус закрыт. И сделалось движение по документу расход. Что бы было смотришь в регистр сведений и было видно что был приход +, а потом был расход -
|
|||
7
Oleg102
29.07.13
✎
08:53
|
Люди добрые помогите кто нибудь
|
|||
9
PuhUfa
29.07.13
✎
08:59
|
когда датазаселения < началопериода
тогда начлопериода иначе датазаселения конец |
|||
10
Oleg102
29.07.13
✎
09:05
|
(9) это в условие добавить? Или в реквизит свой создать
|
|||
11
Oleg102
29.07.13
✎
09:11
|
У меня дата начало проставляется. Мне надо как то этих людей перенести на следующий месяц получается. Когда я ставлю дату начало периода то в отчет документы не попадают которые были созданы в предыдущем месяце. Мне надо как сделать так что бы люди эти отображались и в следующем месяце по определенным условиям. Статус "выполняется" или "закрыт"
|
|||
12
Oleg102
29.07.13
✎
09:11
|
Статус документа
|
|||
13
Oleg102
29.07.13
✎
09:15
|
Хочется спросить вообще как то это возможно сделать? Что то мне кажется это не реально сделать в отчете, так как надо даже если поменяется статус на закрыт данный проживающий все равно должен отображаться в этом месяце
|
|||
14
Asmody
29.07.13
✎
09:15
|
(0) гляди в сторону регистров расчета. Если не сломаешь мозг, будет тебе счастье
|
|||
15
Asmody
29.07.13
✎
09:17
|
(13) если есть доступ к типовым, посмотри как в ЗУПе сделано состояние работника
|
|||
16
Asmody
29.07.13
✎
09:22
|
И еще: строить отчеты по документам — последнее дело. Отчет надо строить по регистрам.
|
|||
17
be-may
29.07.13
✎
09:23
|
(11) а какие движения делает твой документ ?
в отчете идет обращение к регистру или к табличной части самих документов? и вообще, давай уже текст запроса, а то очень сложно понять твою писанину в (0) |
|||
18
Oleg102
29.07.13
✎
09:45
|
Ребята я с планшета сижу. Инета на работе нет до 1 августа. А собираю я данные не с документов а с регистров тоже. Я походу понял как сделать спасибо за идею asmody по регистру расчетов. Буду пробовать делать. Позже выкину свой запрос
|
|||
19
Oleg102
29.07.13
✎
09:48
|
У меня просто организация платит за проживание полностью и оплату за проживание хотя есть и цена за сутки и сумма рассчитывалась уже в отчете поэтому даже не рассматривал оплату и расчет в документе. Если делать оплату по факту тогда будет и движение документов в нужные моменты времени. Думаю должно должно будет получится. Позже отпишу результат как получится
|
|||
20
Oleg102
01.08.13
✎
14:29
|
Решил данный вопрос. Сделал в настройках отчета СКД, на НачалоПериода поставил выражение "ДобавитьКДате(&ДатаНачала,"Месяц",-1)" т.е. уже вытягиваю с прошлого месяца людей на следующий месяй по условию статуса документа "Выполняется" после когда сдается отчет в конце месяца. делается как бы закрытие месяца с помощью "Групповой обработки документов" по условиям отбираются люди которые уже выселены и статус стоит "выполняется" ставим им статус "закрыт" и проводим. тем самым. Уже этих людей в следующий месяц не включаем, а кто проживает переносим на следующий месяц. Помогите решить другую проблему у меня в этот отчет выходят одно движение которое должно замещатся другим.
Как сейчас: Есть документ "Карточка заселения" и из этого документа выходят данные в мой отчет. и Есть документ "перемещение проживающего", где человек перемещается между комнатами и есть отдельные отчет где это отражается. но исходя из этого документа попадают в в мой отчет где идет уже идентичная первой строчки. т.е. происходит задвоение. Как мне нужно: Что бы если есть движение о перемещении сотрудника то выходило в отчет строка уже движения по перемещения а не карточка заселения. Мне нужно как то сделать условие, но не получается почему то , пишет ошибки и ошибки. Может как то не правильно делаю. Свой код запроса отчета прилагаю //////////////////////////////////////////////////////////// ВЫБРАТЬ УчетПроживающихОстаткиИОбороты.Проживающий КАК Проживающий, УчетПроживающихОстаткиИОбороты.Проживающий.Подразделение КАК Подразделение, УчетПроживающихОстаткиИОбороты.Проживающий.Должность КАК Должность, УчетПроживающихОстаткиИОбороты.Проживающий.Организация КАК Организация, УчетПроживающихОстаткиИОбороты.Категория, УчетПроживающихОстаткиИОбороты.КойкоМесто КАК КойкоМесто, УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель КАК Вагон, ВЫБОР КОГДА УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель ЕСТЬ НЕ NULL ТОГДА "Зав. №" + " " + "[" + УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель.ЗаводскойНомер + "]" + " " + "Инд. №" + " " + "[" + УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель.ИндНомер + "]" ИНАЧЕ 0 КОНЕЦ КАК НомерВагона, УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель.Родитель КАК Общежитие, СУММА(УчетПроживающихОстаткиИОбороты.КоличествоМестПриход) КАК КоличествоПроживающих, МАКСИМУМ(ВЫБОР КОГДА НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ) <= &ДатаНачала ТОГДА &ДатаНачала ИНАЧЕ НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаНачала, ДЕНЬ) КОНЕЦ) КАК ДатаЗаселения, МАКСИМУМ(ВЫБОР КОГДА НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ) <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ТОГДА НАЧАЛОПЕРИОДА(СведенияОДоговорахСрезПоследних.ДатаОкончания, ДЕНЬ) ИНАЧЕ &КонецПериода КОНЕЦ) КАК ДатаВыселения, СУММА(СведенияОДоговорахСрезПоследних.СуммаЗаСутки) КАК СуммаЗаСутки, ВЫБОР КОГДА ПаспортныеДанныеФизЛиц.ФизЛицо ЕСТЬ НЕ NULL ТОГДА ПаспортныеДанныеФизЛиц.ДокументСерия + " " + ПаспортныеДанныеФизЛиц.ДокументНомер ИНАЧЕ 0 КОНЕЦ КАК ПаспортныеДанные, СведенияОДоговорахСрезПоследних.СостояниеДоговора ПОМЕСТИТЬ ВТ_Данные {ВЫБРАТЬ Проживающий.*, КойкоМесто.*, Общежитие.*, КоличествоПроживающих} ИЗ РегистрНакопления.УчетПроживающих.ОстаткиИОбороты КАК УчетПроживающихОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОДоговорах.СрезПоследних КАК СведенияОДоговорахСрезПоследних ПО (СведенияОДоговорахСрезПоследних.Договор = УчетПроживающихОстаткиИОбороты.Договор) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц ПО (ПаспортныеДанныеФизЛиц.ФизЛицо = УчетПроживающихОстаткиИОбороты.Проживающий) ГДЕ УчетПроживающихОстаткиИОбороты.СуммаПриход <> 0 СГРУППИРОВАТЬ ПО УчетПроживающихОстаткиИОбороты.Проживающий, УчетПроживающихОстаткиИОбороты.КойкоМесто, УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель.Родитель, УчетПроживающихОстаткиИОбороты.Проживающий.Подразделение, УчетПроживающихОстаткиИОбороты.Проживающий.Должность, УчетПроживающихОстаткиИОбороты.Проживающий.Организация, УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель, ВЫБОР КОГДА УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель ЕСТЬ НЕ NULL ТОГДА "Зав. №" + " " + "[" + УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель.ЗаводскойНомер + "]" + " " + "Инд. №" + " " + "[" + УчетПроживающихОстаткиИОбороты.КойкоМесто.Родитель.ИндНомер + "]" ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ПаспортныеДанныеФизЛиц.ФизЛицо ЕСТЬ НЕ NULL ТОГДА ПаспортныеДанныеФизЛиц.ДокументСерия + " " + ПаспортныеДанныеФизЛиц.ДокументНомер ИНАЧЕ 0 КОНЕЦ, УчетПроживающихОстаткиИОбороты.Категория, СведенияОДоговорахСрезПоследних.СостояниеДоговора ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Данные.Проживающий, ВТ_Данные.Подразделение, ВТ_Данные.Должность, ВТ_Данные.Организация, ВТ_Данные.Категория, ВТ_Данные.КойкоМесто, ВТ_Данные.Вагон, ВТ_Данные.НомерВагона, ВТ_Данные.Общежитие, ВТ_Данные.КоличествоПроживающих, ВТ_Данные.ДатаЗаселения, ВТ_Данные.ДатаВыселения, ВТ_Данные.СуммаЗаСутки, ВТ_Данные.ПаспортныеДанные, ВТ_Данные.СостояниеДоговора, РАЗНОСТЬДАТ(ВТ_Данные.ДатаЗаселения, ВТ_Данные.ДатаВыселения, ДЕНЬ) + 1 КАК КоличествоДней, (РАЗНОСТЬДАТ(ВТ_Данные.ДатаЗаселения, ВТ_Данные.ДатаВыселения, ДЕНЬ) + 1) * ВТ_Данные.СуммаЗаСутки КАК СуммаЗаПроживание ИЗ ВТ_Данные КАК ВТ_Данные /////////////////////////////////////////////////////////// |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |