|
Отчет материалы без движения на дату | ☑ | ||
---|---|---|---|---|
0
ViKi_87
25.11.16
✎
08:50
|
У меня есть отчет который выводит материалы без движения за период, а как вывести с условием: материалы которые 90 дней без движения и которые без движения более 1 года, понять не могу как написать это в запросе.
Вот сам запрос: Функция СформироватьОтчет() ЭлементыФормы.Результат.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты.Номенклатура КАК Номенклатура, | БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество, | ВЫБОР | КОГДА ПоследниеДвижения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА ПоследниеДвижения.Период | ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) | КОНЕЦ КАК ДатаПоследнегоПрихода, | ВЫБОР | КОГДА ПоследниеДвижения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) | ТОГДА ПоследниеДвижения.Период | ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) | КОНЕЦ КАК ДатаПоследнегоРасхода | | |ПОМЕСТИТЬ ОстаткиНаСкладахДоСвертки |ИЗ | РегистрНакопления.БС_СУ_ТМЦВПодразделениях.ОстаткиИОбороты( | &НачалоПериода, | &КонецПериода, | Период, | ДвиженияИГраницыПериода, | Организация = &Организация | И Склад = &Склад) КАК БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | БС_СУ_ТМЦВПодразделениях.ВидДвижения КАК ВидДвижения, | БС_СУ_ТМЦВПодразделениях.Номенклатура КАК Номенклатура, | МАКСИМУМ(БС_СУ_ТМЦВПодразделениях.Период) КАК Период, | БС_СУ_ТМЦВПодразделениях.Склад КАК Склад | ИЗ | РегистрНакопления.БС_СУ_ТМЦВПодразделениях КАК БС_СУ_ТМЦВПодразделениях | ГДЕ | БС_СУ_ТМЦВПодразделениях.Организация = &Организация | И БС_СУ_ТМЦВПодразделениях.Склад = &Склад | | СГРУППИРОВАТЬ ПО | БС_СУ_ТМЦВПодразделениях.ВидДвижения, | БС_СУ_ТМЦВПодразделениях.Номенклатура, | БС_СУ_ТМЦВПодразделениях.Склад) КАК ПоследниеДвижения | ПО БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты.Номенклатура = ПоследниеДвижения.Номенклатура | И БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты.Склад = ПоследниеДвижения.Склад |ГДЕ | БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты.КоличествоПриход = 0 | И БС_СУ_ТМЦВПодразделенияхОстаткиИОбороты.КоличествоРасход = 0 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОстаткиНаСкладахДоСвертки.Номенклатура, | СУММА(ОстаткиНаСкладахДоСвертки.Количество) КАК Количество, | МАКСИМУМ(ОстаткиНаСкладахДоСвертки.ДатаПоследнегоПрихода) КАК ДатаПоследнегоПрихода, | МАКСИМУМ(ОстаткиНаСкладахДоСвертки.ДатаПоследнегоРасхода) КАК ДатаПоследнегоРасхода |ПОМЕСТИТЬ ОстаткиНаСкладах |ИЗ | ОстаткиНаСкладахДоСвертки КАК ОстаткиНаСкладахДоСвертки | |СГРУППИРОВАТЬ ПО | ОстаткиНаСкладахДоСвертки.Номенклатура; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура, | ВЫБОР | КОГДА ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток, 0) = 0 | ТОГДА 0 | ИНАЧЕ ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток / ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток | КОНЕЦ КАК ЦенаВБУ |ПОМЕСТИТЬ ЦеныВБУ |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты( | &НачалоПериода, | &КонецПериода, | Период, | ДвиженияИГраницыПериода, | Счет В ИЕРАРХИИ (&Счета10Кроме10071011), | &СубконтоНоменклатураСклады, | Организация = &Организация | И Субконто2 = &Склад) КАК ХозрасчетныйОстаткиИОбороты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОстаткиНаСкладах.Номенклатура, | ОстаткиНаСкладах.Количество, | ОстаткиНаСкладах.Количество * ЦеныВБУ.ЦенаВБУ КАК Сумма, | ОстаткиНаСкладах.ДатаПоследнегоПрихода, | ОстаткиНаСкладах.ДатаПоследнегоРасхода |ПОМЕСТИТЬ ПередПодготовкойКФорматуФайла |ИЗ | ОстаткиНаСкладах КАК ОстаткиНаСкладах | ЛЕВОЕ СОЕДИНЕНИЕ ЦеныВБУ КАК ЦеныВБУ | ПО ОстаткиНаСкладах.Номенклатура = ЦеныВБУ.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПередПодготовкойКФорматуФайла.Номенклатура.НаименованиеПолное КАК НаименованиеТМЦ, | ПередПодготовкойКФорматуФайла.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдИзм, | ПередПодготовкойКФорматуФайла.Количество КАК НаличиеНаПредприятии, | ЕСТЬNULL(ПередПодготовкойКФорматуФайла.Сумма, 0) / 1000 КАК НаСумму, | ПередПодготовкойКФорматуФайла.ДатаПоследнегоПрихода, | ПередПодготовкойКФорматуФайла.ДатаПоследнегоРасхода |ИЗ | ПередПодготовкойКФорматуФайла КАК ПередПодготовкойКФорматуФайла"; Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода)); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Склад", Склад); СубконтоНоменклатураСклады = Новый Массив; СубконтоНоменклатураСклады.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура); СубконтоНоменклатураСклады.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады); Запрос.УстановитьПараметр("СубконтоНоменклатураСклады", СубконтоНоменклатураСклады); Счета10Кроме10071011 = Новый Массив; Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.СырьеИМатериалы); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.ПокупныеПолуфабрикатыИКомплектующие); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.Топливо); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.Тара); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.ЗапасныеЧасти); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.ПрочиеМатериалы); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.СтроительныеМатериалы); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежности); Счета10Кроме10071011.Добавить(ПланыСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаНаСкладе); Запрос.УстановитьПараметр("Счета10Кроме10071011", Счета10Кроме10071011); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапка.Параметры.Организация = СокрЛП(Организация); ОбластьШапка.Параметры.Период = ПредставлениеПериода(НачалоПериода, КонецДня(КонецПериода), "ФП = Истина"); ТабДок.Вывести(ОбластьШапка); Индекс = 1; ИтоговаяСумма = 0; Пока Выборка.Следующий() Цикл ОбластьСтрокаТаблицы.Параметры.Заполнить(Выборка); ОбластьСтрокаТаблицы.Параметры.НомерПП = Индекс; ТабДок.Вывести(ОбластьСтрокаТаблицы); ИтоговаяСумма = ИтоговаяСумма + Выборка.НаСумму; Индекс = Индекс + 1; КонецЦикла; ОтветственныеЛица = ОбщегоНазначения.ОтветственныеЛица(Организация, ТекущаяДата()); ОбластьПодвал.Параметры.Заполнить(ОтветственныеЛица); ОбластьПодвал.Параметры.ИтоговаяСумма = ИтоговаяСумма; ОбластьПодвал.Параметры.Исполнитель = ПараметрыСеанса.ТекущийПользователь; ТабДок.Вывести(ОбластьПодвал); Возврат ТабДок; КонецФункции |
|||
1
ViKi_87
25.11.16
✎
08:51
|
1С 8.2 Бухгалтерия предприятия
|
|||
2
dka80
25.11.16
✎
09:50
|
Выбрать остатки и обороты из регистра бухгалтерии за период текущая дата и дата минус 90 дней.
если обороты = 0, то по ним движения нет |
|||
3
ViKi_87
25.11.16
✎
10:01
|
спасибо попробую
|
|||
4
ViKi_87
25.11.16
✎
10:03
|
типо :
ДатаПоследнегоРасхода-90??? |
|||
5
dka80
25.11.16
✎
10:12
|
"ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.Счет, | ХозрасчетныйОстаткиИОбороты.Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2, | ХозрасчетныйОстаткиИОбороты.Субконто3, | ХозрасчетныйОстаткиИОбороты.Организация, | ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&Период, ДЕНЬ, -90), &Период, , , , , ) КАК ХозрасчетныйОстаткиИОбороты |ГДЕ | ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт + ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт = 0" |
|||
6
dka80
25.11.16
✎
10:13
|
точнее ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт = 0 И ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт = 0
|
|||
7
ViKi_87
25.11.16
✎
10:15
|
я просто не очень разбираюсь. Это в какую часть моего запроса надо вставить тогда? Простите за глупые вопросы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |