Имя: Пароль:
1C
1С v8
Как заставить СКД не убирать поля в запросах в середине пакета запросов
0 simol
 
11.05.16
11:47
Много лет мучаюсь с ситуацией, что СКД убирает поля виртуальных таблиц, которые по логике задачи нужны, но не протянуты но последнего запроса.
Приходится их тянуть в последний запрос и уже у роли поля ставить "Обязательное". Но этот костыль уже надоел, может есть боле изящное решение?

Например запрос:

ВЫБРАТЬ
    ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура,
    ЗаказыПокупателейОстатки.ДокументЗаказа КАК ДокументЗаказ,
    ЗаказыПокупателейОстатки.КоличествоОстаток КАК КоличествоДозаказать
ПОМЕСТИТЬ ТаблицаПромежуточная
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
ГДЕ
    ЗаказыПокупателейОстатки.КоличествоОстаток < 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаПромежуточная.ДокументЗаказ
ИЗ
    ТаблицаПромежуточная КАК ТаблицаПромежуточная

Вырождается без костыля в

ВЫБРАТЬ
    ЗаказыПокупателейОстатки.ДокументЗаказа КАК ДокументЗаказ
ПОМЕСТИТЬ ТаблицаПромежуточная
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки(&П) КАК ЗаказыПокупателейОстатки
ГДЕ
    ЗаказыПокупателейОстатки.КоличествоОстаток < 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаПромежуточная.ДокументЗаказ КАК ДокументЗаказ,
    ТаблицаПромежуточная.ДокументЗаказ.Дата КАК ДокументЗаказДата
ИЗ
    ТаблицаПромежуточная КАК ТаблицаПромежуточная


И первый запрос пакета возвращает совсем не то, что я хотел
1 Nuobu
 
11.05.16
11:56
убрать галку "Автозаполнение" и в нужных тебе запросах пользоваться вкладкой "Построитель запроса", ну или вот такими скобочками {}.
2 simol
 
11.05.16
11:59
(1)Да, это тоже знакомый вариант, но тоже трудоемкий.
3 simol
 
11.05.16
12:06
(1)И снятие галки Автозаполнения именно для этого не помогает, она больше помогает костылить отборы в виртуальных таблицах.
4 тарам пам пам
 
11.05.16
12:15
Сам не пробовал, но вроде можно не протягивать поле до самого конца запроса, а просто добавить его на закладке "Компоновка данных.Поля" в запросе из регистра и у него уже указать "Обязательное"
5 simol
 
11.05.16
12:24
Вот вариант http://1clancer.ru/article/neispolzuemye_polya_v_konechnykh_zaprosakh_postroitelya_otchetov_i_skd_761

Делать промежуточное создание временной таблицы со всеми полям
6 simol
 
11.05.16
12:32
(4) Попытка добавить
{ВЫБРАТЬ
    (1) КАК Номенклатура}
Приводит к ошибке.

Попробовал добавить просто поле
Неопределено КАК Номенклатура и у номенклатуры поставить Обязательное.
Так вроде не надо тянуть в последний запрос поле. Но фокус не удался
7 simol
 
11.05.16
12:41
(5)Но в 8.3.5 не воспроизводится, наверно статья писалась на более ранней платформе