1С СКД Временные таблицы

Автор: | 22.02.2022

1С СКД «В запросе формирующем временную таблицу не могут выбираться вложенные таблицы…»

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

В запросе формирующем временную таблицу не могут выбираться вложенные таблицы

Временные таблицы пПредупреждение

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

Немного вводных данных, есть два документа «Акт» и «СФ». У документа акт есть реквизиты «Сумма», «НДС» и в табличной части «Сумма с НДС», у документа «СФ» точно такие же реквизите только нет табличных частей, но есть один дополнительный реквизит «Основание» он указывает на Акт на основание которого сделана счет фактура.

СКД отоб полей из табличной части

Нам необходимо в отчете отображать данные этих документов. Так же отображать связь актов и счет фактура. В результате наших действий отчет должен иметь следующий вид.

СКД отчет

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

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

Предупреждение СКД «В запросе формирующем временную таблицу не могут выбираться вложенные таблицы»

И так у нас есть два документа, у одного из которых «Акт» есть еще и табличная часть из которой для отчета нам нужно взять одно поле «Сумма с НДС».

Скд временные таблицы

Для начала нам необходимо создать временную таблицу в которой будут отобраны только поля табличной части документа «Акт». После чего во второй временной таблице Мы соединим табличную часть документа «Акт» с самим документом. А уже потом объединим их с документом «СФ» у которого табличных частей нет.

И так открываем «Конструктор запроса» из базы данных выбираем сначала табличную часть документа «Акт» и из неё выбираем все поля, хотя нам достаточно взять поле «Ссылка» оно понадобиться для объединения с сами документом и собственно поле «Сумма НДС».

СКД отбор полей из табличной части

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

СКД создать временную таблицу

Далее переходим во вкладку «Пакет запросов» и добавляем новый запрос.

СКД как добавить новый запрос

В нем уже из базы берем сам документ «Акт» и созданную временную таблицу «АктТЧ» из самого акта выбираем поля, «Ссылка», «Сумму», «НДС» и из временной таблицы «Ссылка» и «СуммаНДС».

Так же я тут переименовал ссылку «Акт.Ссылку» в просто «Акт», во вкладке «Объединения/Псевдонимы»

СКД объединение временных таблиц

Дальше необходимо объединить табличную часть с сами документом, для этого переходим во вкладку «Связи» и устанавливаем её. Выбираем таблиц «АктТЧ» и «Акт» и устанавливаем связь по ссылкам.

СКД связи

Этот запрос также превращаем во временную таблицу «Отобранные Акты».

1СКД временные таблицы

Далее добавляем еще один запрос.

СКД пакеты запросов

В котором будем выбирает поля из документа «СФ», его также нужно преобразовать во временную таблицу «Отобранные СФ».

Здесь так же переименовал «СФ.Ссылка» в просто «СФ», во вкладке «Объединения/Псевдонимы»

1С СКД как создать ВТ

Добавляем последний запрос в котором уже будем объединять данные двух документов «Акт» и СФ». Для этого из базы данных выбираем две созданные ранее временные таблицы «Отобранные Акты» и «Отобранные СФ».

СКД объединение временных таблиц

Дальше нам необходимо соединить эти две виртуальные таблицы «Отобранные Акты» и «Отобранные СФ». Переходим во вкладку связь и добавляем эти две таблицы, хотя конструктор по идеи должен сам все это сделать, в условиях связи выбираем для таблицы «Отобранные Акты» выбираем «ОтобранныеАкты.АКТ» если кто не понял это ссылка переименованная, а для таблицы «Отобранные СФ» поле «ОтобранныеСФ.Основание».

СКД как связать две временные таблицы

Запрос готов, закрываем конструктор, остается только во вкладке «Настройки» основной схемы компоновки данных выбрать поля.

СКД выбранные поля

Все отчет готов.

СКД отчет

Еще раз проговорим что мы сделали. Сначала во временной таблице выбрали поля из табличной части документа «Акт», потом во второй временной таблицы объединили табличную часть с реквизитами самого документа «Акт», добавили третью временную таблицу в которой отобрали поля из документа «СФ» и запросом объединили данные двух временных таблиц.

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

Добавить комментарий

Ваш адрес email не будет опубликован.

*

code