новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Зуев Евгений
Приватное сообщение

Пакетный Запрос. Странная ошибка. Требуется консультация и/или Консоль запросов.

Набережные Челны(Россия )
28.04.1978(46 лет)
28 |  0
20 ноября 2024 в 14:58:02 (4 недели 4 дня 10 часов назад)
10200
Текст задания
Здравствуйте, уважаемые!

КА2. Форма подбора. (Также и в УТ11.3, наверное)
Есть запрос. В модуле отрабатывает без проблем.
В консоли запросов при попытке открыть конструктором или получить параметры выводит ошибку

{(251,17)} Поле не найдено "Т.Номенклатура.ТипНоменклатуры" Т.Номенклатура.<<?>>ТипНоменклатуры Как ТипНоменклатуры

Требуется мне бестолковому объяснить как оно работает, как олаживать или предоставить Рабочую консоль запросов, если дело в ней и моя - кривая.

Ниже текст запроса. Формируется он в Общем модуле - ОбепечениеСервер. Строка 885


ВЫБРАТЬ РАЗЛИЧНЫЕ
Т.Номенклатура КАК Номенклатура,
Т.Характеристика КАК Характеристика,
Т.Склад КАК Склад
ПОМЕСТИТЬ ВтТовары
ИЗ
&Товары КАК Т

ИНДЕКСИРОВАТЬ ПО
Номенклатура, Характеристика, Склад
;

/////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТаблицаФорматы.Склад КАК Склад,
ТаблицаФорматы.ФорматМагазина КАК ФорматМагазина
ПОМЕСТИТЬ ВтФорматыСкладов
ИЗ
РегистрСведений.ИсторияИзмененияФорматовМагазинов.СрезПоследних(,
Склад В(
ВЫБРАТЬ РАЗЛИЧНЫЕ
ТаблицаСклады.Склад
ИЗ
ВтТовары КАК ТаблицаСклады)
{Склад.* КАК Склад}) КАК ТаблицаФорматы
ГДЕ
ТаблицаФорматы.ФорматМагазина <> ЗНАЧЕНИЕ(Справочник.ФорматыМагазинов.ПустаяСсылка)
ИНДЕКСИРОВАТЬ ПО
Склад
;

/////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
ТоварнаяМатрица.Номенклатура КАК Номенклатура,
ТоварнаяМатрица.Характеристика КАК Характеристика,
ТоварнаяМатрица.Склад КАК Склад,

ЕСТЬNULL(СпрСпособ.Ссылка, ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка)) КАК СпособОбеспеченияПотребностей,
ВЫБОР ЕСТЬNULL(СпрСпособ.ТипОбеспечения, ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПустаяСсылка))
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Производство)
ТОГДА 1
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.СборкаРазборка)
ТОГДА 2
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПроизводствоНаСтороне)
ТОГДА 3
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Покупка)
ТОГДА 4
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Перемещение)
ТОГДА 5
ИНАЧЕ 9999
КОНЕЦ КАК ПриоритетТипаОбеспечения,

ВЫБОР КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА

СпрНоменклатура.СпособОбеспеченияПотребностей

ИНАЧЕ

ЕСТЬNULL(ТаблицаСхемыОбеспеченияСкладов.СпособОбеспеченияПотребностей,
ЕСТЬNULL(ТаблицаСхемыОбеспеченияФорматов.СпособОбеспеченияПотребностей,
ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка)))

КОНЕЦ КАК СпособОбеспеченияПотребностейУнаследованный,

ВЫБОР КОГДА НЕ ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL ИЛИ НЕ ТаблицаВариантыОбеспеченияРаботами.Номенклатура ЕСТЬ NULL ТОГДА

"НоменклатураХарактеристикаСклад"

КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА

"Номенклатура"

ИНАЧЕ

"СхемаОбеспечения"

КОНЕЦ КАК ИсточникНастройки

ПОМЕСТИТЬ ВтСпособыОбеспечения
ИЗ
ВтТовары КАК ТоварнаяМатрица

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
ПО СпрНоменклатура.Ссылка = ТоварнаяМатрица.Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияРаботами КАК ТаблицаВариантыОбеспеченияРаботами
ПО СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
И ТаблицаВариантыОбеспеченияРаботами.Номенклатура = ТоварнаяМатрица.Номенклатура
И ТаблицаВариантыОбеспеченияРаботами.Характеристика = ТоварнаяМатрица.Характеристика
И ТаблицаВариантыОбеспеченияРаботами.РеквизитДопУпорядочивания = 1

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияТоварами КАК ТаблицаВариантыОбеспеченияТоварами
ПО СпрНоменклатура.ТипНоменклатуры В(
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара),
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор))
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура = ТоварнаяМатрица.Номенклатура
И ТаблицаВариантыОбеспеченияТоварами.Характеристика = ТоварнаяМатрица.Характеристика
И ТаблицаВариантыОбеспеченияТоварами.Склад = ТоварнаяМатрица.Склад
И ТаблицаВариантыОбеспеченияТоварами.РеквизитДопУпорядочивания = 1

ЛЕВОЕ СОЕДИНЕНИЕ ВтФорматыСкладов КАК ТаблицаФорматыСкладов
ПО ТаблицаФорматыСкладов.Склад = ТоварнаяМатрица.Склад
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияСкладов
ПО ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения = СпрНоменклатура.СхемаОбеспечения
И ТаблицаСхемыОбеспеченияСкладов.Склад = ТоварнаяМатрица.Склад
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияФорматов
ПО ТаблицаСхемыОбеспеченияФорматов.СхемаОбеспечения = СпрНоменклатура.СхемаОбеспечения
И ТаблицаСхемыОбеспеченияФорматов.Склад = ТаблицаФорматыСкладов.ФорматМагазина
И ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения ЕСТЬ NULL
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ
ПО ВЫБОР КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА

ЕСТЬNULL(ТаблицаВариантыОбеспеченияРаботами.СпособОбеспеченияПотребностей,
СпрНоменклатура.СпособОбеспеченияПотребностей)

ИНАЧЕ

ЕСТЬNULL(ТаблицаВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей,
ЕСТЬNULL(ТаблицаСхемыОбеспеченияСкладов.СпособОбеспеченияПотребностей,
ЕСТЬNULL(ТаблицаСхемыОбеспеченияФорматов.СпособОбеспеченияПотребностей,
ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка))))

КОНЕЦ = СпрСпособ.Ссылка

ИНДЕКСИРОВАТЬ ПО
Номенклатура, Характеристика, Склад
;

////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
Т.СпособОбеспеченияПотребностей КАК СпособОбеспечения,
ЕСТЬNULL(СпрСпособ.ФормироватьПлановыеЗаказы, ЛОЖЬ) КАК ФормироватьПлановыеЗаказы,
ЕСТЬNULL(СпрСпособ.ГарантированныйСрокОтгрузки, 0) КАК ГарантированныйСрокОтгрузки,
ВЫБОР КОГДА СпрСпособ.ПлановаяДатаПоставки >= &НачалоТекущегоДня ТОГДА
СпрСпособ.ПлановаяДатаПоставки
ИНАЧЕ
СпрСпособ.ДатаСледующейПоставки
КОНЕЦ КАК ПлановаяДатаПоставки
ПОМЕСТИТЬ ВтРеквизитыСпособовОбеспечения
ИЗ
ВтСпособыОбеспечения КАК Т
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ
ПО Т.СпособОбеспеченияПотребностей = СпрСпособ.Ссылка
ИНДЕКСИРОВАТЬ ПО
ГарантированныйСрокОтгрузки
;
////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗЛИЧНЫЕ
Календарь.Значение КАК Календарь,
Т.ГарантированныйСрокОтгрузки КАК ЧислоДней,
&НачалоТекущегоДня КАК ДатаОтсчета
ПОМЕСТИТЬ ВтПараметрыПоиска
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т,
Константа.ОсновнойКалендарьПредприятия КАК Календарь
ГДЕ
НЕ Т.ФормироватьПлановыеЗаказы
И Календарь.Значение <> ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка)
;
/////////////////////////////////////////////////

ВЫБРАТЬ
Т.Календарь КАК Календарь,
Т.ЧислоДней КАК ЧислоДней,
Т.ДатаОтсчета КАК ДатаОтсчета,
ЕСТЬNULL(ПоставкаВТекущемГоду.ДатаГрафика, ПоставкаВСледующемГоду.ДатаГрафика) КАК Дата
ПОМЕСТИТЬ ВтДатыГрафика
ИЗ
ВтПараметрыПоиска КАК Т //шаблон
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ТекущаяДата
ПО Т.Календарь = ТекущаяДата.Календарь
И ТекущаяДата.Год = ГОД(Т.ДатаОтсчета)
И ТекущаяДата.ДатаГрафика = Т.ДатаОтсчета

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоставкаВТекущемГоду
ПО Т.Календарь = ПоставкаВТекущемГоду.Календарь
И ПоставкаВТекущемГоду.ДеньВключенВГрафик
И ПоставкаВТекущемГоду.Год = ГОД(Т.ДатаОтсчета)
И ПоставкаВТекущемГоду.КоличествоДнейВГрафикеСНачалаГода
= ТекущаяДата.КоличествоДнейВГрафикеСНачалаГода
+ Т.ЧислоДней

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоследняяДатаГода
ПО ПоставкаВТекущемГоду.ДатаГрафика ЕСТЬ NULL
И Т.Календарь = ПоследняяДатаГода.Календарь
И ПоследняяДатаГода.Год = ГОД(Т.ДатаОтсчета)
И ПоследняяДатаГода.ДатаГрафика = НАЧАЛОПЕРИОДА(КОНЕЦПЕРИОДА(Т.ДатаОтсчета, ГОД), ДЕНЬ)

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоставкаВСледующемГоду
ПО ПоставкаВТекущемГоду.ДатаГрафика ЕСТЬ NULL
И Т.Календарь = ПоставкаВСледующемГоду.Календарь
И ПоставкаВСледующемГоду.ДеньВключенВГрафик
И ПоставкаВСледующемГоду.Год = ГОД(Т.ДатаОтсчета) + 1
И ПоставкаВСледующемГоду.КоличествоДнейВГрафикеСНачалаГода
= Т.ЧислоДней
- (ПоследняяДатаГода.КоличествоДнейВГрафикеСНачалаГода
- ТекущаяДата.КоличествоДнейВГрафикеСНачалаГода)

ГДЕ
НЕ ЕСТЬNULL(ПоставкаВТекущемГоду.ДатаГрафика, ПоставкаВСледующемГоду.ДатаГрафика) ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
Календарь, ЧислоДней, ДатаОтсчета
;

////////////////////////////////////////////////////////////
ВЫБРАТЬ
Т.СпособОбеспечения КАК СпособОбеспечения,
ДатыГрафика.Дата КАК Дата
ПОМЕСТИТЬ ВтДатыПлановойПоставки
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДатыГрафика КАК ДатыГрафика
ПО Т.ГарантированныйСрокОтгрузки = ДатыГрафика.ЧислоДней
ГДЕ
НЕ Т.ФормироватьПлановыеЗаказы

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

ВЫБРАТЬ
Т.СпособОбеспечения КАК СпособОбеспечения,
ДОБАВИТЬКДАТЕ(&НачалоТекущегоДня, ДЕНЬ, Т.ГарантированныйСрокОтгрузки)
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т,
Константа.ОсновнойКалендарьПредприятия КАК Календарь
ГДЕ
НЕ Т.ФормироватьПлановыеЗаказы
И Календарь.Значение = ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка)

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

ВЫБРАТЬ
Т.СпособОбеспечения КАК СпособОбеспечения,
Т.ПлановаяДатаПоставки КАК Дата
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т
ГДЕ
Т.ФормироватьПлановыеЗаказы
И Т.ПлановаяДатаПоставки >= &НачалоТекущегоДня

ИНДЕКСИРОВАТЬ ПО
СпособОбеспечения
;
/////////////////////////////////////////////////

ВЫБРАТЬ
Т.Номенклатура КАК Номенклатура,
Т.Характеристика КАК Характеристика,
Т.Склад КАК Склад,
Т.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,

ЕСТЬNULL(ПлановыеПоставки.Дата, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаДоступности,

ЕСТЬNULL(Настройка.ПриоритетТипаОбеспечения, 9999) КАК ПриоритетТипаОбеспечения,
Т.Склад.Наименование КАК СкладНаименование
ИЗ
ВтТовары КАК Т
ЛЕВОЕ СОЕДИНЕНИЕ ВтСпособыОбеспечения КАК Настройка
ПО Т.Номенклатура = Настройка.Номенклатура
И Т.Характеристика = Настройка.Характеристика
И Т.Склад = Настройка.Склад //для работ в обоих таблицах склад пуст.
ЛЕВОЕ СОЕДИНЕНИЕ ВтДатыПлановойПоставки КАК ПлановыеПоставки
ПО Настройка.СпособОбеспеченияПотребностей = ПлановыеПоставки.СпособОбеспечения
0
Выбранные исполнители
Отклики
Предложения отсутствуют