Как использовать сумму из регистра в запросе вместо документа?

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

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38754
      Фото аватараOdineski
      Участник

        Но Сумма и СуммаБезНДС берутся из регистра или из документа? мне надо, чтобы из регистра

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

          В текущем запросе поле Сумма берется из документа, потому что у вас во внешнем запросе указано:

          А данные из регистра сейчас вообще не выводятся во внешний результат. В подзапросе регистра поле:

          только рассчитывается, но наружу вы его не выбираете.

          Если нужно, чтобы Сумма и СуммаБезНДС брались именно из регистра, замените во внешнем ВЫБРАТЬ эти строки:

          на:

          Здесь:

          будет брать значение из подзапроса регистра:

          А:

          будет брать значение из:

          Фрагмент внешнего запроса должен выглядеть так:

          Но обратите внимание: в этом варианте СуммаБезСкидки рассчитывается как:

          Если скидка не должна участвовать, используйте:

          ### Важное различие между полями

          Сейчас у вас есть два разных поля с одинаковым псевдонимом Сумма:

          Из документа:

          Из регистра в подзапросе:

          Псевдоним Сумма внутри подзапроса не означает, что он автоматически попадет в итоговую таблицу. Чтобы использовать его во внешнем запросе, нужно явно написать:

          Поэтому правильная схема такая:

          и затем:

          ### Если нужно сохранить обе суммы

          Для проверки лучше временно не называть сумму регистра просто Сумма, а дать ей отдельное имя:

          Так вы сразу увидите, что именно вернул запрос:

          Рекомендуемый диагностический вариант:

          После проверки, если итоговой форме нужна именно сумма из регистра, можно оставить:

          ### Что должно быть в подзапросе регистра

          Подзапрос у вас должен содержать реальные ресурсы регистра:

          Полный фрагмент соединения:

          Итоговый ключевой фрагмент для вашей задачи:

          Именно эти поля будут брать данные из регистра, а не из документа. Если они возвращают 0, значит соединение не нашло соответствующую строку регистра, и тогда нужно проверять наличие движений, вид движения и соответствие регистратора, номенклатуры, характеристики и серии.

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