Как добавить поле Регистратор в запрос на остатки и обороты?

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38480
      Фото аватараOdineski
      Участник

        Как добавить Регистратор в этот запрос:

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

          Чтобы добавить измерение Регистратор в ваш запрос, нужно:

          1. Везде, где вы работаете с остатками и оборотами, добавить поле Регистратор в выборку и в группировку (если есть).
          2. В таблицах и соединениях, где есть поле Регистратор, добавить его в выборку и условия соединения.
          3. В таблице дат и ближайших дат остатков тоже добавить Регистратор, чтобы корректно группировать и связывать данные.

          Пример, как добавить Регистратор в ваш запрос (только ключевые места):

          ### 1. В выборке из регистра накопления остатков и оборотов:

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

          ### 2. В таблице ближайших дат остатков добавить Регистратор в выборку и группировку:

          |ВЫБРАТЬ
          | ТаблицаДат.Период КАК ТДПериод,
          | МАКСИМУМ(ВТ_Остатки.Период) КАК ПериодРО,
          | ВТ_Остатки.Номенклатура,
          | ВТ_Остатки.Регистратор
          |ПОМЕСТИТЬ ВТ_БлижайшиеДатыОстатков
          |ИЗ
          | ТаблицаДат КАК ТаблицаДат
          | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
          | ПО ТаблицаДат.Период >= ВТ_Остатки.Период
          |СГРУППИРОВАТЬ ПО
          | ТаблицаДат.Период,
          | ВТ_Остатки.Номенклатура,
          | ВТ_Остатки.Регистратор

          ### 3. В основном запросе добавить Регистратор в выборку и условия соединения:

          |ВЫБРАТЬ
          | ВТ_БлижайшиеДатыОстатков.ТДПериод КАК ТДПериод,
          | ВТ_Остатки.Номенклатура,
          | ВТ_Остатки.Регистратор,
          | ВЫБОР
          | КОГДА ТДПериод = ВТ_Остатки.Период
          | ТОГДА ВТ_Остатки.КоличествоНачальныйОстаток
          | ИНАЧЕ ВТ_Остатки.КоличествоКонечныйОстаток
          | КОНЕЦ КАК КоличествоНачальныйОстаток,
          | ВЫБОР
          | КОГДА ТДПериод = ВТ_Остатки.Период
          | ТОГДА ВТ_Остатки.КоличествоПриход
          | ИНАЧЕ 0
          | КОНЕЦ КАК КоличествоПриход,
          | ВЫБОР
          | КОГДА ТДПериод = ВТ_Остатки.Период
          | ТОГДА ВТ_Остатки.КоличествоРасход
          | ИНАЧЕ 0
          | КОНЕЦ КАК КоличествоРасход,
          | ВТ_Остатки.КоличествоКонечныйОстаток,
          | ТоварыНаСкладахОбороты.Регистратор
          |ИЗ
          | ВТ_БлижайшиеДатыОстатков КАК ВТ_БлижайшиеДатыОстатков
          | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
          | ПО ВТ_БлижайшиеДатыОстатков.ПериодРО = ВТ_Остатки.Период
          | И ВТ_БлижайшиеДатыОстатков.Номенклатура = ВТ_Остатки.Номенклатура
          | И ВТ_БлижайшиеДатыОстатков.Регистратор = ВТ_Остатки.Регистратор
          | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОбороты
          | ПО ВТ_Остатки.Период = НАЧАЛОПЕРИОДА(ТоварыНаСкладахОбороты.Период, ДЕНЬ)
          | И ВТ_Остатки.Регистратор = ТоварыНаСкладахОбороты.Регистратор
          |УПОРЯДОЧИТЬ ПО
          | ТДПериод

          ### Кратко:

          — Добавьте поле Регистратор в выборки из регистра остатков и оборотов.
          — Добавьте Регистратор в таблицу ближайших дат и группировку.
          — В условиях соединения добавьте сравнение по Регистратору.
          — В итоговой выборке добавьте Регистратор.

          Если нужно, могу помочь с полным исправленным запросом с учётом Регистратора.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С