Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 сен 2021, 04:05

внутреннее соединение по номенклатуре

Автор Milyausha, 06 фев 2020, 09:09

0 Пользователей и 1 гость просматривают эту тему.

Milyausha

При выполнении запроса выходит ошибка, что при соединении нельзя использовать табличные части. Хотя на просторах сети есть похожие запросы, где соединение по номенклатуре. Как правильно описать или есть другой вариант соеднинения? Кратко, задача: сделать запрос (вывести остаток, резерв на пациента и т.д.) только по той номенклатуре, которая есть в документе "Схемы" с указанным номером (параметр &СхемыПрепаратов)

ВЫБРАТЬ
ВложенныйЗапрос.Номенклатура КАК Номенклатура,
СУММА(ВложенныйЗапрос.ОстатокПоСпец) КАК ОстатокПоСпец,
СУММА(ВложенныйЗапрос.ОстатокПоУреждению) КАК ОстатокПоУреждению,
СУММА(ВложенныйЗапрос.ЗарезервированноНаПациентов) КАК ЗарезервированноНаПациентов,
СУММА(ВложенныйЗапрос.СвободныйОстаток) КАК СвободныйОстаток,
ВложенныйЗапрос.СвободныйОстатокВУпаковках КАК СвободныйОстатокВУпаковках,
ВложенныйЗапрос.Номенклатура.ЕдиницаИзмерения КАК НоменклатураЕдиницаИзмерения,
ВложенныйЗапрос.Номенклатура.Упаковка КАК НоменклатураУпаковка
ИЗ
(ВЫБРАТЬ
СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
NULL КАК ОстатокПоСпец,
СебестоимостьТоваровОстатки.КоличествоОстаток КАК ОстатокПоУреждению,
NULL КАК ЗарезервированноНаПациентов,
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2)) КАК СвободныйОстаток,
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2)) КАК СвободныйОстатокВУпаковках
ИЗ
РегистрНакопления.СебестоимостьТоваров.Остатки(&ДатаОстатка, ) КАК СебестоимостьТоваровОстатки
ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
РезервОстатки.Номенклатура,
NULL,
NULL,
РезервОстатки.РезервОстаток,
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2)),
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2))
ИЗ
РегистрНакопления.Резерв.Остатки(&ДатаОстатка, ) КАК РезервОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ЗаказыПоставщикам.Номенклатура,
ЗаказыПоставщикам.ПоСпецификацииОстаток + ЗаказыПоставщикам.КОформлениюОстаток,
NULL,
NULL,
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2)),
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2))
ИЗ
РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОстатка, ) КАК ЗаказыПоставщикам) КАК ВложенныйЗапрос

ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.Схемы как СхемыЛечения
по СхемыЛечения.Номенклатура.Номенклатура.ссылка=ВложенныйЗапрос.Номенклатура.Ссылка
где СхемыЛечения.Номер=&СхемаПрепаратов

СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.СвободныйОстатокВУпаковках
 


MuI_I_Ika

В чем ваша ошибка:

ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.Схемы как СхемыЛечения
по СхемыЛечения.Номенклатура.Номенклатура.ссылка=ВложенныйЗапрос.Номенклатура.Ссылка

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


Рекомендации по запросу:

1. Откажитесь от вложенных запросов в пользу временных таблиц.

2. Отбор на себестоимость, резервы и заказы по номенклатуре надо накладывать сразу, а не после вложенного запроса. Иначе получается, что вы заставляете 1с сначала выбирать всю себестоимость из базы.

3. Для того чтобы наложить условие сразу вам надо выбрать во временную таблицу Табличную часть вашего документа.

Milyausha

Теперь пишет ошибку, что поле не найдено Документ.Схемы.Номенклатура, в чем может быть причина?

MuI_I_Ika

Видимо таблицу в качестве поля указали. Запрос то приведите, а то приходится телепатию включать.

Milyausha

Цитата: MuI_I_Ika от 07 фев 2020, 12:46
Видимо таблицу в качестве поля указали. Запрос то приведите, а то приходится телепатию включать.
выбрать
   Схемы.Номенклатура как НоменклатураСхемы
   из Документ.Схемы
   где  Схемы.Номер=&СхемаПрепаратов
   объединить все

MuI_I_Ika

 Схемы.Номенклатура.Номенклатура как НоменклатураСхемы

Табицу в качестве поля указывать нельзя

Milyausha

Цитата: MuI_I_Ika от 10 фев 2020, 08:06
Схемы.Номенклатура.Номенклатура как НоменклатураСхемы

Табицу в качестве поля указывать нельзя

Спасибо! и к реквизитам можно обратиться как Схемы.Номер? Потому что на это тоже начал ругаться, что поле не найдено
Добавлено: 10 фев 2020, 09:43


Цитата: MuI_I_Ika от 10 фев 2020, 08:06
Схемы.Номенклатура.Номенклатура как НоменклатураСхемы

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

MuI_I_Ika

Может такого поля и нет смотрите в конфигураторе какие у вас поля есть.

Milyausha

Цитата: MuI_I_Ika от 10 фев 2020, 09:48
Может такого поля и нет смотрите в конфигураторе какие у вас поля есть.
всё есть на скрине, кроме номер , дата, потому что они стандартные https://ibb.co/k543JbZ

MuI_I_Ika

Правильно запрос построить так:

выбрать
   Документ.Номенклатура как НоменклатураСхемы
   из Документ.Схемы.Номенклатура КАК Документ
   где  Документ.Ссылка.Номер=&СхемаПрепаратов
   

Теги: Запрос 

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск