Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

Разбить Период по Месяцам в Запросе 1C • Функция деньгода

Здесь может быть много критики, но я это могу аргументировать тем, что виртуальные таблицы ОстаткиИОбороты могут некорректно отображать нулевые остатки.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Внешнее представление даты определяется представлением операционной системы, управлять из запроса, а также приводить в строковое представление в классическом запросе невозможно в отличии от СКД, где возможна пост-обработка и условное оформление. Функции языка запросов 1С. Работа с датами Обращайтесь в форму связи

1c 8 скд отчет с пустыми периодами. Создаем отчет с заданной периодичностью на скд

Для простоты понимая пример будем строить на одном простом оборотном регистре накопления.

В моем случае это регистр накопления «Незавершенное производство бухгалтерский учет».

Его параметры для примера укажем жестко (не через мягкое накладывание параметров на СКД):

Обратим внимание, периодичность виртуальной таблицы — «Запись».

Но, как было замечаено выше, период нам нужен в разрезе периодичности, поэтому поле «Период» я предлагаю вычислить следующим путем (несовсем красиво, но лучше вариантов я не видел):

Как видно из скриншота, в запрос передается параметр, который пользователь указывает на форме: Значение перечисления «Периодичность» — данное перечисление есть практически во всех типовых решениях.

Этой настройкой мы форматируем наш период, чтобы все было красиво и радовало глаз)

  1. В Конфигураторе выберем пункт меню «Файл» — «Новый» — «Внешний отчет».
  2. Нажмем на кнопку «Открыть схему компоновки данных». В открывшемся диалоге нажмем кнопку «Готово».
  3. Теперь создадим , который обращается к виртуальной таблице «РегистрыНакопления».
  4. Нажмем правой кнопкой мыши на на узле «НаборыДанных» и выберем строчку «Добавить набор данных — Запрос».
  5. Теперь нажмем на кнопку «Конструктор запроса». Выберем регистр накопления «ТоварыНаСкладахОстаткиИОбороты» (конфигурация УТП).
  6. Откроем диалог «Параметры виртуальной таблицы» и укажем, что будет использоваться периодичность «Авто», то есть можно будет указывать несколько периодов.

Теперь настроим выходные поля. Пусть это будут следующие поля: «Регистратор», «ПериодМесяц», «Номенклатура», «Качество» и информация по остаткам. Добавление поля осуществляется двойным нажатием левой кнопки мыши на нужном поле или при помощи кнопки «>». После добавления полей нажмем кнопку «ОК».

Обратите внимание, что для некоторых полей автоматом настроилась роль со свойством «Период».

Рассмотрим, какие существуют настройки роли для свойства «Период» . Во-первых, указывается порядковый номер периода. Нумерация должна быть непрерывной, начинаться с единицы, от младших периодов к старшим, то есть сначала будет идти, например, номер строки, далее «Регистратор», потом секунда, день, неделя, месяц, квартал, год.

Таким образом должны быть пронумерованы поля, которые встречаются в нашем запросе. Заметьте, что у нас есть два поля периода — «Регистратор» и «ПериодМесяц». Младшим полем является «Регистратор» ему присвоена единица, а старшим полем является «ПериодМесяц» ему присвоена двойка. Более подробно о мы рассмотрим в следующей статье.

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

  1. Перейдем на закладку «Ресурсы» и определим ресурсы нашего отчета.
  2. Нажмем на кнопку «>>», чтобы выбрать все поля для ресурсов.
  3. Теперь перейдем на закладку «Настройки» и создадим настройку в виде списка.
  4. Нажмем на кнопку «Конструктор настроек компоновки данных» (кнопка в виде волшебной палочки).
  5. Тип отчета: «Список». Нажмем кнопку «Далее».
  6. Настроим выходные поля, нажав на кнопку «>>». Упорядочим их так: «ПериодМесяц», «Номенклатура», «Качество», «Регистратор».
  7. Нажмем кнопку «Далее» и настроим группировку. Группировку настроим в следующем порядке: «ПериодМесяц», «Номенклатура», «Качество». Группировка «Регистратор» будет выводиться в виде детальных записей.
  8. Нажмем кнопку «ОК».

Разбить Период по Месяцам в Запросе 1C

  • Как создать простой отчет в виде списка?
  • Для чего нужны колонки Поле, Путь и Заголовок на закладке «Поля»?
  • Какие существуют ограничения для полей компоновки?
  • Как правильно настраивать роли?
  • Какие существуют роли для полей компоновки?
  • Где найти закладку компоновка данных в запросе?
  • Как настраивать параметры в СКД?
  • Дальше еще интереснее.

Важно понять, что даже если в значении реквизита формы, имеющем рассматриваемый тип, не указано никаких цифр, то есть окно имеет вид Рис.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Остатки и запрос работает с неудовлетворительной производительностью, то рекомендуется вынести обращение к виртуальной таблице в отдельный запрос с сохранением результатов во временной таблице. Пустая дата в запросе 1С Обращайтесь в форму связи

Пример.

Регистр накопления ОстаткиТовара содержит два измерения: Склад и Номенклатура, а также ресурс Количество. Необходимо запросом получить список всей номенклатуры, с указанием количества товаров на конкретном складе.

ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Товар,
ЕСТЬNULL(ОстаткиТоваров.Остаток, 0 ) КАК Остаток
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&СегодняшняяДата, Склад = &Склад) КАК ОстаткиТоваров
ПО ОстаткиТоваров.Номенклатура = СпрНоменклатура.Ссылка

Примечание apas:
Для получения остатков регистра накопления в первом варианте используем реальную таблицу регистра накопления и агрегатную функцию сумма(приход-расход) (требуется условие по виду движения)
Второй вариант может быть полезен и в других случаях, когда виртуальная таблица задается только параметром и никак иначе (например виртуальная таблица «критерии отбора»)

Разбить Период по Месяцам в Запросе 1C

ПРАВИЛЬНО

ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Товар,
ЕСТЬNULL(ОстаткиТоваров.Остаток, 0 ) КАК Остаток
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(, Склад = &Склад) КАК ОстаткиТоваров
ПО ОстаткиТоваров.Номенклатура = СпрНоменклатура.Ссылка
И ОстаткиТоваров.Склад = &Склад

Примечание apas:
Для получения остатков регистра накопления в первом варианте используем реальную таблицу регистра накопления и агрегатную функцию сумма(приход-расход) (требуется условие по виду движения)
Второй вариант может быть полезен и в других случаях, когда виртуальная таблица задается только параметром и никак иначе (например виртуальная таблица «критерии отбора»)

Существует несколько способов получить нужные данные.

1.Непосредственно в запросе (через реальную таблицу регистра)

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

Вызов СрезПоследних() можно использовать только с передачей в него заранее готового значения даты, на которую требуется получить значения. Поэтому сабж делается через стыковку нескольких запросов –
основной, к нему стыкуется запрос по регистру сведений с условием по дате и поиском записи с маскимальной датой (периодом).

Для общего развития:
Что есть срез последних в платформе?

В зависимости от периодичности регистра (по времени, по позизии регистратора) ВТ разворачивается в следующий запрос:
1. По времени (год, месяц, . секунда)

2. По позиции регистратора
В данном случае нужно еще раз обернуть выборку

Все это можно увидеть посмотрев технологический журнал с включенным режимом протоколирования запросов

2.Система компоновки данных (передача набора значений одной таблицы в параметр виртуальной таблицы)

Данный способ подходит для отчетов. Из очевидных плюсов – если курс (или другие данные) не нужны для построения отчета, то СКД не будет их получать. Однако быстродействие такого отчета может оказаться и несколько ниже, чем в первом способе.

Для примера сделаем отчет – список заказов покупателей.

Для того, чтобы потом успешно свзать наборы данных, в запрос необходимо включить поля «Дата» и «ВалютаДокумента». Чтобы они не появлялись в списке доступных полей, если это необходимо, их можно убрать, установив флажки ограничений в таблице «Поля» схемы компоновки. В остальном запрос вряд ли требует комментариев.

Для того, чтобы получить информацию о курсах валют, добавим второй набор данных-запрос, «Курсы валют»:

В этом запросе имеются 2 параметра: «Дата» и «Валюта». Эти параметры будут установлены СКД при соединении наборов. Кроме того, параметр «Дата» указан в выбранных полях – это нужно для соединения таблиц.
Для ненужный полей «Дата» и «Валюта» также устанавливаем флажки ограничений, чтобы они не появлялись в доступных полях.

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts