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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как добавить разрез по сериям в отчет «Остатки и доступность товаров»?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33950
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        1с комплексная автоматизация, у номенклатуры серия Партия товаров, но политика учета серий используется по складам, Учет себестоимости по сериям, как добавть в отчет Остатки и доступность товаров в разрезе серий по резерву, в конфигураторе

      • #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 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С