Имя: Пароль:
1C
1С v8
Отчет материалы без движения на дату
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
я просто не очень разбираюсь. Это в какую часть моего запроса надо вставить тогда? Простите за глупые вопросы