Имя: Пароль:
1C
1С v8
Выбор последнего и предпоследнего значения из регистра накопления
0 shutova
 
10.05.19
14:51
Здравствуйте, столкнулась с проблемой. Когда выбираю последнее и предпоследнее количество надоя, в отчет выводится не последнее и предпоследнее значение, а все значения. Но если просто выводить даты последнего и предпоследнего надоя, тогда выводится все верно. Может кто знает в чем ошибка?


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    НадойМолока.Животное,
    МАКСИМУМ(НадойМолока.Период) КАК Период,
    НадойМолока.Количество
ПОМЕСТИТЬ ТекущийНадой
ИЗ РегистрНакопления.НадойМолока КАК НадойМолока
ГДЕ НадойМолока.Регистратор ССЫЛКА Документ.НадойМолока
    И НАЧАЛОПЕРИОДА(НадойМолока.Период, ДЕНЬ) <= &КонецПериода
СГРУППИРОВАТЬ ПО
    НадойМолока.Животное,
    НадойМолока.Количество
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТекущийНадой.Животное,
    ТекущийНадой.Период КАК ДатаТекущегоНадоя,
    МАКСИМУМ(ПоследнийНадой.Период) КАК ДатаПоследнегоНадоя,
    ТекущийНадой.Количество КАК ТекущийНадой,
    ПоследнийНадой.Количество КАК ПоследнийНадой
ПОМЕСТИТЬ Текущий_и_последний_надой
ИЗ ТекущийНадой КАК ТекущийНадой
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НадойМолока КАК ПоследнийНадой
        ПО ТекущийНадой.Животное = ПоследнийНадой.Животное
            И ТекущийНадой.Период > ПоследнийНадой.Период
            И (ПоследнийНадой.Регистратор ССЫЛКА Документ.НадойМолока)
СГРУППИРОВАТЬ ПО
    ТекущийНадой.Животное,
    ТекущийНадой.Период,
    ТекущийНадой.Количество,
    ПоследнийНадой.Количество
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Текущий_и_последний_надой.Животное,
    Надой.Период,
    Надой.Организация,
    Надой.Ферма
ПОМЕСТИТЬ НадойЖивотного
ИЗ Текущий_и_последний_надой КАК Текущий_и_последний_надой
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НадойМолока КАК Надой
        ПО (Надой.Регистратор ССЫЛКА Документ.НадойМолока)
            И Текущий_и_последний_надой.Животное = Надой.Животное
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НадойМолока КАК Надой1
        ПО Текущий_и_последний_надой.Животное = Надой1.Животное
            И (Надой.Период >= Надой1.Период)
СГРУППИРОВАТЬ ПО
    Текущий_и_последний_надой.Животное,
    Надой.Период,
    Надой.Организация,
    Надой.Ферма
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    Текущий_и_последний_надой.Животное,
    Текущий_и_последний_надой.ДатаТекущегоНадоя КАК ДатаПоследнегоНадоя,
    Текущий_и_последний_надой.ДатаПоследнегоНадоя КАК ДатаПредпоследнегоНадоя,
    Текущий_и_последний_надой.ТекущийНадой КАК ПоследнийНадой,
    Текущий_и_последний_надой.ПоследнийНадой КАК ПредПоследнийНадой
ИЗ Текущий_и_последний_надой КАК Текущий_и_последний_надой
        ЛЕВОЕ СОЕДИНЕНИЕ НадойЖивотного КАК НадойЖивотного
        ПО Текущий_и_последний_надой.Животное = НадойЖивотного.Животное
            И Текущий_и_последний_надой.ДатаТекущегоНадоя = НадойЖивотного.Период
        ЛЕВОЕ СОЕДИНЕНИЕ НадойЖивотного КАК НадойЖивотного1
        ПО Текущий_и_последний_надой.Животное = НадойЖивотного1.Животное
            И Текущий_и_последний_надой.ДатаПоследнегоНадоя = НадойЖивотного1.Период
{ГДЕ (НадойЖивотного.Период >= &НачалоПериода
    И НадойЖивотного.Период <= &КонецПериода)}
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший