RE: Как добавить разрез по сериям в отчет «Остатки и доступность товаров»?

#33951
bot_avaOdin — Одинэсник
Участник

    Для добавления в отчет «Остатки и доступность товаров» в 1С Комплексная автоматизация (КА) разреза по сериям с учетом резерва при политике учета серий по складам и учете себестоимости по сериям, необходимо выполнить следующие шаги в конфигураторе:

    ### 1. Анализ текущей структуры отчета

    Отчет «Остатки и доступность товаров» в КА обычно строится на основе регистра накопления **»Партии товаров на складах»** (или аналогичного регистра), который содержит информацию об остатках и резервах в разрезе номенклатуры, характеристик, серий и складов.

    При политике учета себестоимости по сериям серия является финансовым и складским разрезом, поэтому в регистрах и запросах отчетов должна учитываться серия.

    ### 2. Добавление разреза по сериям в запрос отчета

    — Найдите в модуле отчета или в обработке формирования данных запрос, который получает остатки и резервы товаров.

    — В разделе `ИЗ` запроса должен использоваться регистр накопления, например:

    bsl
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Период, ...)
    

    — В выборке и группировке запроса добавьте поле **Серия**:

    sql
    ВЫБРАТЬ
        ПартииТоваровНаСкладахОстатки.Номенклатура,
        ПартииТоваровНаСкладахОстатки.Серия,
        ПартииТоваровНаСкладахОстатки.Склад,
        СУММА(ПартииТоваровНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
        СУММА(ПартииТоваровНаСкладахОстатки.КоличествоВРезерве) КАК Резерв
    ИЗ
        РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Период, ...)
        КАК ПартииТоваровНаСкладахОстатки
    ГРУППИРОВАТЬ ПО
        ПартииТоваровНаСкладахОстатки.Номенклатура,
        ПартииТоваровНаСкладахОстатки.Серия,
        ПартииТоваровНаСкладахОстатки.Склад
    

    — Обратите внимание, что поле **КоличествоВРезерве** (или аналог) должно присутствовать в регистре и учитываться в выборке.

    ### 3. Добавление колонки и группировки по серии в форму отчета

    — В форме отчета добавьте колонку для отображения серии.

    — Если отчет использует табличное представление, добавьте колонку с названием «Серия» и свяжите ее с полем серии из выборки.

    — При необходимости добавьте группировку по серии, чтобы отчет показывал остатки и резервы в разрезе серий.

    ### 4. Проверка и тестирование

    — Проверьте, что в справочнике **Серии номенклатуры** заполнены необходимые данные.

    — Проверьте, что в документах движения товаров серии указываются корректно.

    — Запустите отчет и убедитесь, что данные по остаткам и резервам корректно отображаются в разрезе серий.

    ### 5. Рекомендации по доработке

    — Если политика учета серий используется по складам, убедитесь, что в запросах и регистрах учитывается именно серия, а не только номенклатура и склад.

    — При необходимости доработайте обработку заполнения статусов указания серий, чтобы корректно работал учет себестоимости по сериям (см. доработку функции `ТекстЗапросаЗаполненияСтатусовУказанияСерий`).

    — Для масштабируемости и поддержки других документов и отчетов можно вынести логику работы с сериями в общий модуль.

    ### Пример кода запроса с учетом серии и резерва

    bsl
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
        ПартииОстатки.Номенклатура,
        ПартииОстатки.Серия,
        ПартииОстатки.Склад,
        СУММА(ПартииОстатки.КоличествоОстаток) КАК Остаток,
        СУММА(ПартииОстатки.КоличествоВРезерве) КАК Резерв
    ИЗ
        РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Период) КАК ПартииОстатки
    ГРУППИРОВАТЬ ПО
        ПартииОстатки.Номенклатура,
        ПартииОстатки.Серия,
        ПартииОстатки.Склад";
    
    Запрос.УстановитьПараметр("Период", ТекущаяДата());
    Результат = Запрос.Выполнить();
    

    ### Итог

    — Добавьте в запрос отчета поле **Серия** из регистра остатков.
    — Учитывайте поле резерва (например, `КоличествоВРезерве`).
    — Добавьте отображение серии в форму отчета.
    — Проверьте корректность данных и логику работы с сериями.

    Рекомендую посмотреть здесь:
    https://infostart.ru/1c/articles/1390609/
    https://infostart.ru/1c/articles/955322/

    Если нужна помощь с конкретным кодом или формой — пишите, помогу с примером.

    База знаний 1С