Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запрос по остаткам и оборотам регистра бухгалтерии
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
pablo
Была поставлена задача разделения данных по амортизации на 131 счету согласно счету учета ОС.
Для этого используется следующий запрос:
ВЫБРАТЬ
    СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство.Ссылка КАК ссылка,
    СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство.Код
ПОМЕСТИТЬ ОС
ИЗ
    РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних КАК СчетаБухгалтерскогоУчетаОССрезПоследних
ГДЕ
    СчетаБухгалтерскогоУчетаОССрезПоследних.СчетУчета В ИЕРАРХИИ(&СчетУчета)
    И СчетаБухгалтерскогоУчетаОССрезПоследних.Активность = ИСТИНА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Период КАК Период,
    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт,
    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт,
    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт,
    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт) КАК СуммаНачальныйОстатокКт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НП, &КП, Месяц, ДвиженияИГраницыПериода, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОС КАК ОС
        ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ОС.ссылка

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстаткиИОбороты.Период

УПОРЯДОЧИТЬ ПО
    Период

Если отчет формируется за месяц, то данные выбираются правильно. Если же берем более длинный период (как минимум, 3 месяца), то возникают проблемы с "внутренним" месяцем.
При подробном рассмотрении выплыла следующая заморочка. Если ОС полностью изношено, но не списано (т.е. по ОС нет никаких движений за период отчета), то запрос по 3 месяцам получает только две записи - за первый и последний месяц. Внимание, вопрос: это такая особенность 1С и следует собирать данные как-то по другому или можно как-то переписать запрос?
Vofka
Это такая особенность. Данных за период нет - показывать нечего. Можно во временную таблицу собрать данные в виде периодов на начало месяца между месяцами с &НП и &КП. И во втором запросе сделать запрос к этой таблице и левым соединением прицепить то, что у вас сейчас на месте второго запроса. Этот вариант, конечно, не только запросом, но если очень надо, то можно и так сделать.
Vofka
pablo, кстати, если это у вас отчет, то средствами СКД, по-моему, можно вывести и те периоды, в которых движений не было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.