Пакетный Запрос. Странная ошибка. Требуется консультация и/или Консоль запросов.
Выполнено
Набережные Челны(Россия )
28.04.1978(46 лет)
28 |
0
20 ноября 2024 в 14:58:02
(1 день 15 часов назад)
10200
23.07.2018 17:08:38
Текст задания
Здравствуйте, уважаемые!
КА2. Форма подбора. (Также и в УТ11.3, наверное)
Есть запрос. В модуле отрабатывает без проблем.
В консоли запросов при попытке открыть конструктором или получить параметры выводит ошибку
{(251,17)} Поле не найдено "Т.Номенклатура.ТипНоменклатуры" Т.Номенклатура.<<?>>ТипНоменклатуры Как ТипНоменклатуры
Требуется мне бестолковому объяснить как оно работает, как олаживать или предоставить Рабочую консоль запросов, если дело в ней и моя - кривая.
Ниже текст запроса. Формируется он в Общем модуле - ОбепечениеСервер. Строка 885
ВЫБРАТЬ РАЗЛИЧНЫЕ
Т.Номенклатура КАК Номенклатура,
Т.Характеристика КАК Характеристика,
Т.Склад КАК Склад
ПОМЕСТИТЬ ВтТовары
ИЗ
&Товары КАК Т
ИНДЕКСИРОВАТЬ ПО
Номенклатура, Характеристика, Склад
;
/////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТаблицаФорматы.Склад КАК Склад,
ТаблицаФорматы.ФорматМагазина КАК ФорматМагазина
ПОМЕСТИТЬ ВтФорматыСкладов
ИЗ
РегистрСведений.ИсторияИзмененияФорматовМагазинов.СрезПоследних(,
Склад В(
ВЫБРАТЬ РАЗЛИЧНЫЕ
ТаблицаСклады.Склад
ИЗ
ВтТовары КАК ТаблицаСклады)
{Склад.* КАК Склад}) КАК ТаблицаФорматы
ГДЕ
ТаблицаФорматы.ФорматМагазина <> ЗНАЧЕНИЕ(Справочник.ФорматыМагазинов.ПустаяСсылка)
ИНДЕКСИРОВАТЬ ПО
Склад
;
/////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
ТоварнаяМатрица.Номенклатура КАК Номенклатура,
ТоварнаяМатрица.Характеристика КАК Характеристика,
ТоварнаяМатрица.Склад КАК Склад,
ЕСТЬNULL(СпрСпособ.Ссылка, ЗНАЧЕНИЕ(Справочник.СпособыОбеспеченияПотребностей.ПустаяСсылка)) КАК СпособОбеспеченияПотребностей,
ВЫБОР ЕСТЬNULL(СпрСпособ.ТипОбеспечения, ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПустаяСсылка))
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Производство)
ТОГДА 1
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.СборкаРазборка)
ТОГДА 2
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.ПроизводствоНаСтороне)
ТОГДА 3
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Покупка)
ТОГДА 4
КОГДА ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Перемещение)
ТОГДА 5
ИНАЧЕ 9999
КОНЕЦ КАК ПриоритетТипаОбеспечения,
ВЫБОР КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
КОНЕЦ КАК СпособОбеспеченияПотребностейУнаследованный,
ВЫБОР КОГДА НЕ ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL ИЛИ НЕ ТаблицаВариантыОбеспеченияРаботами.Номенклатура ЕСТЬ NULL ТОГДА
"НоменклатураХарактеристикаСклад"
КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
"Номенклатура"
ИНАЧЕ
"СхемаОбеспечения"
КОНЕЦ КАК ИсточникНастройки
ПОМЕСТИТЬ ВтСпособыОбеспечения
ИЗ
ВтТовары КАК ТоварнаяМатрица
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
ПО СпрНоменклатура.Ссылка = ТоварнаяМатрица.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияРаботами КАК ТаблицаВариантыОбеспеченияРаботами
ПО СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
И ТаблицаВариантыОбеспеченияРаботами.Номенклатура = ТоварнаяМатрица.Номенклатура
И ТаблицаВариантыОбеспеченияРаботами.Характеристика = ТоварнаяМатрица.Характеристика
И ТаблицаВариантыОбеспеченияРаботами.РеквизитДопУпорядочивания = 1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВариантыОбеспеченияТоварами КАК ТаблицаВариантыОбеспеченияТоварами
ПО СпрНоменклатура.ТипНоменклатуры В(
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара),
ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор))
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура = ТоварнаяМатрица.Номенклатура
И ТаблицаВариантыОбеспеченияТоварами.Характеристика = ТоварнаяМатрица.Характеристика
И ТаблицаВариантыОбеспеченияТоварами.Склад = ТоварнаяМатрица.Склад
И ТаблицаВариантыОбеспеченияТоварами.РеквизитДопУпорядочивания = 1
ЛЕВОЕ СОЕДИНЕНИЕ ВтФорматыСкладов КАК ТаблицаФорматыСкладов
ПО ТаблицаФорматыСкладов.Склад = ТоварнаяМатрица.Склад
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияСкладов
ПО ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения = СпрНоменклатура.СхемаОбеспечения
И ТаблицаСхемыОбеспеченияСкладов.Склад = ТоварнаяМатрица.Склад
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СхемыОбеспечения КАК ТаблицаСхемыОбеспеченияФорматов
ПО ТаблицаСхемыОбеспеченияФорматов.СхемаОбеспечения = СпрНоменклатура.СхемаОбеспечения
И ТаблицаСхемыОбеспеченияФорматов.Склад = ТаблицаФорматыСкладов.ФорматМагазина
И ТаблицаСхемыОбеспеченияСкладов.СхемаОбеспечения ЕСТЬ NULL
И ТаблицаВариантыОбеспеченияТоварами.Номенклатура ЕСТЬ NULL
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ
ПО ВЫБОР КОГДА СпрНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) ТОГДА
ИНДЕКСИРОВАТЬ ПО
Номенклатура, Характеристика, Склад
;
////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
Т.СпособОбеспеченияПотребностей КАК СпособОбеспечения,
ЕСТЬNULL(СпрСпособ.ФормироватьПлановыеЗаказы, ЛОЖЬ) КАК ФормироватьПлановыеЗаказы,
ЕСТЬNULL(СпрСпособ.ГарантированныйСрокОтгрузки, 0) КАК ГарантированныйСрокОтгрузки,
ВЫБОР КОГДА СпрСпособ.ПлановаяДатаПоставки >= &НачалоТекущегоДня ТОГДА
СпрСпособ.ПлановаяДатаПоставки
ИНАЧЕ
СпрСпособ.ДатаСледующейПоставки
КОНЕЦ КАК ПлановаяДатаПоставки
ПОМЕСТИТЬ ВтРеквизитыСпособовОбеспечения
ИЗ
ВтСпособыОбеспечения КАК Т
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОбеспеченияПотребностей КАК СпрСпособ
ПО Т.СпособОбеспеченияПотребностей = СпрСпособ.Ссылка
ИНДЕКСИРОВАТЬ ПО
ГарантированныйСрокОтгрузки
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
Календарь.Значение КАК Календарь,
Т.ГарантированныйСрокОтгрузки КАК ЧислоДней,
&НачалоТекущегоДня КАК ДатаОтсчета
ПОМЕСТИТЬ ВтПараметрыПоиска
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т,
Константа.ОсновнойКалендарьПредприятия КАК Календарь
ГДЕ
НЕ Т.ФормироватьПлановыеЗаказы
И Календарь.Значение <> ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка)
;
/////////////////////////////////////////////////
ВЫБРАТЬ
Т.Календарь КАК Календарь,
Т.ЧислоДней КАК ЧислоДней,
Т.ДатаОтсчета КАК ДатаОтсчета,
ЕСТЬNULL(ПоставкаВТекущемГоду.ДатаГрафика, ПоставкаВСледующемГоду.ДатаГрафика) КАК Дата
ПОМЕСТИТЬ ВтДатыГрафика
ИЗ
ВтПараметрыПоиска КАК Т //шаблон
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ТекущаяДата
ПО Т.Календарь = ТекущаяДата.Календарь
И ТекущаяДата.Год = ГОД(Т.ДатаОтсчета)
И ТекущаяДата.ДатаГрафика = Т.ДатаОтсчета
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоставкаВТекущемГоду
ПО Т.Календарь = ПоставкаВТекущемГоду.Календарь
И ПоставкаВТекущемГоду.ДеньВключенВГрафик
И ПоставкаВТекущемГоду.Год = ГОД(Т.ДатаОтсчета)
И ПоставкаВТекущемГоду.КоличествоДнейВГрафикеСНачалаГода
= ТекущаяДата.КоличествоДнейВГрафикеСНачалаГода
+ Т.ЧислоДней
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоследняяДатаГода
ПО ПоставкаВТекущемГоду.ДатаГрафика ЕСТЬ NULL
И Т.Календарь = ПоследняяДатаГода.Календарь
И ПоследняяДатаГода.Год = ГОД(Т.ДатаОтсчета)
И ПоследняяДатаГода.ДатаГрафика = НАЧАЛОПЕРИОДА(КОНЕЦПЕРИОДА(Т.ДатаОтсчета, ГОД), ДЕНЬ)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ПоставкаВСледующемГоду
ПО ПоставкаВТекущемГоду.ДатаГрафика ЕСТЬ NULL
И Т.Календарь = ПоставкаВСледующемГоду.Календарь
И ПоставкаВСледующемГоду.ДеньВключенВГрафик
И ПоставкаВСледующемГоду.Год = ГОД(Т.ДатаОтсчета) + 1
И ПоставкаВСледующемГоду.КоличествоДнейВГрафикеСНачалаГода
= Т.ЧислоДней
- (ПоследняяДатаГода.КоличествоДнейВГрафикеСНачалаГода
- ТекущаяДата.КоличествоДнейВГрафикеСНачалаГода)
ГДЕ
НЕ ЕСТЬNULL(ПоставкаВТекущемГоду.ДатаГрафика, ПоставкаВСледующемГоду.ДатаГрафика) ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
Календарь, ЧислоДней, ДатаОтсчета
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
Т.СпособОбеспечения КАК СпособОбеспечения,
ДатыГрафика.Дата КАК Дата
ПОМЕСТИТЬ ВтДатыПлановойПоставки
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДатыГрафика КАК ДатыГрафика
ПО Т.ГарантированныйСрокОтгрузки = ДатыГрафика.ЧислоДней
ГДЕ
НЕ Т.ФормироватьПлановыеЗаказы
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Т.СпособОбеспечения КАК СпособОбеспечения,
ДОБАВИТЬКДАТЕ(&НачалоТекущегоДня, ДЕНЬ, Т.ГарантированныйСрокОтгрузки)
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т,
Константа.ОсновнойКалендарьПредприятия КАК Календарь
ГДЕ
НЕ Т.ФормироватьПлановыеЗаказы
И Календарь.Значение = ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Т.СпособОбеспечения КАК СпособОбеспечения,
Т.ПлановаяДатаПоставки КАК Дата
ИЗ
ВтРеквизитыСпособовОбеспечения КАК Т
ГДЕ
Т.ФормироватьПлановыеЗаказы
И Т.ПлановаяДатаПоставки >= &НачалоТекущегоДня
ИНДЕКСИРОВАТЬ ПО
СпособОбеспечения
;
/////////////////////////////////////////////////
ВЫБРАТЬ
Т.Номенклатура КАК Номенклатура,
Т.Характеристика КАК Характеристика,
Т.Склад КАК Склад,
Т.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
ЕСТЬNULL(ПлановыеПоставки.Дата, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаДоступности,
ЕСТЬNULL(Настройка.ПриоритетТипаОбеспечения, 9999) КАК ПриоритетТипаОбеспечения,
Т.Склад.Наименование КАК СкладНаименование
ИЗ
ВтТовары КАК Т
ЛЕВОЕ СОЕДИНЕНИЕ ВтСпособыОбеспечения КАК Настройка
ПО Т.Номенклатура = Настройка.Номенклатура
И Т.Характеристика = Настройка.Характеристика
И Т.Склад = Настройка.Склад //для работ в обоих таблицах склад пуст.
ЛЕВОЕ СОЕДИНЕНИЕ ВтДатыПлановойПоставки КАК ПлановыеПоставки
ПО Настройка.СпособОбеспеченияПотребностей = ПлановыеПоставки.СпособОбеспечения