|
ЕРП 2.5 Управление очередью заказов глушит дополнительное поле при отборе по подразделению | ☑ | ||
---|---|---|---|---|
0
1cv78
28.04.23
✎
00:47
|
ЕРП 2.5 последняя версия. Добавил в список журнала Управление очередью заказов на производство левым соединением поле Процент выполнения:
ВЫБОР КОГДА ЕСТЬNULL(ОбеспечениеПроцессов.ТребуетсяОборот, 0) <> 0 ТОГДА ЕСТЬNULL(ОбеспечениеПроцессов.ПроизведеноОборот, 0) / ОбеспечениеПроцессов.ТребуетсяОборот * 100 ИНАЧЕ 0 КОНЕЦ КАК ПроцентВыполнения ....... ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОбеспечениеПроизводственныхПроцессов.Обороты(, , , Склад.СкладГотовойПродукции = ИСТИНА) КАК ОбеспечениеПроцессов ПО (ОбеспечениеПроцессов.Распоряжение = Таблица.Ссылка) Работает, как часы с любыми фильтрами кроме Подразделения. В запросе никаких связей этой инфы с подразделением, базу пететряхивал, наизнанку уже вывернул, ошибки явно в логике, но зацепиться не за что. Как только отбираешь по подразделению, поле обнуляется. Полный полтергейст... Где-то туплю, но в упор не вижу... |
|||
1
Волшебник
28.04.23
✎
00:59
|
Полный бред
|
|||
2
Волшебник
28.04.23
✎
08:48
|
во фрагментах кода нет подразделения
|
|||
4
vicof
28.04.23
✎
09:09
|
Ставлю на отбор по правой таблице
|
|||
5
1cv78
28.04.23
✎
13:43
|
(4) Можно поподробнее? Ну да, отбор идет по основной таблице, т.е. правой, та, что Заказ на производство. Так вот любые отборы работают нормально, а когда делаешь фильтр по подразделению, поле Процент обнуляется.
|
|||
6
1cv78
28.04.23
✎
13:46
|
Вот весь типовой запрос динамического списка с моими дописками с комментом "//свл"
ПодробностиВЫБРАТЬ Таблица.Ссылка КАК Ссылка, Таблица.Номер КАК Номер, Таблица.Дата КАК Дата, Таблица.Статус КАК Статус, Таблица.Приоритет КАК Приоритет, Таблица.Подразделение КАК Подразделение, Таблица.НачатьНеРанее КАК НачалоПроизводства, Таблица.ДатаПотребности КАК ДатаПотребности, НАЧАЛОПЕРИОДА(Таблица.ДатаПотребности, ДЕНЬ) КАК ДатаСобытия, ВЫБОР КОГДА Таблица.ДатаПотребности <> ДАТАВРЕМЯ(1, 1, 1) И &ТекущаяДата > Таблица.ДатаПотребности ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК Просрочен, Таблица.ДинамическаяСтруктура КАК ДинамическаяСтруктура, ВЫБОР КОГДА Таблица.ДинамическаяСтруктура И (ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.ЗаданияКРасчетуСтруктурыЗаказаСпецификации КАК Т ГДЕ Т.ЗаказНаПроизводство = Таблица.Ссылка) ИЛИ ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.БуферЗаданийКРасчетуСтруктурыЗаказаСпецификации КАК Т ГДЕ Т.ЗаказНаПроизводство = Таблица.Ссылка) ИЛИ ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.ЗаданияКРасчетуСтруктурыЗаказаРаспределениеЗапасов КАК Т ГДЕ Т.ЗаказНаПроизводство = Таблица.Ссылка) ИЛИ ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.БуферЗаданийКРасчетуСтруктурыЗаказаРаспределениеЗапасов КАК Т ГДЕ Т.ЗаказНаПроизводство = Таблица.Ссылка)) ИЛИ ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.ЗаданияКОчисткеСтруктурыЗаказа КАК Т ГДЕ Т.ЗаказНаПроизводство = Таблица.Ссылка) ТОГДА 5 КОГДА Таблица.ДинамическаяСтруктура И (ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.ПротоколРасчетаСтруктурыЗаказа КАК Т ГДЕ Т.ЗаказНаПроизводство = Таблица.Ссылка)) И Таблица.Проведен ТОГДА 6 КОГДА НЕ Таблица.ДинамическаяСтруктура И СостоянияЗаказовНаПроизводство.СостояниеЭтапов = &СостояниеТребуетсяПроверитьЭтапы ТОГДА 2 КОГДА НЕ Таблица.ДинамическаяСтруктура И СостоянияЗаказовНаПроизводство.СостояниеЭтапов = &СостояниеТребуетсяСформироватьЭтапы ТОГДА 1 КОГДА &ПланируетсяГрафикПроизводства И ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА ИЗ РегистрСведений.ЗаданияКРасчетуГрафикаПроизводства КАК Т ГДЕ Т.Распоряжение = Таблица.Ссылка) ТОГДА 3 КОГДА СостоянияЗаказовНаПроизводство.СостояниеЭтапов = &СостояниеТребуетсяПередатьЭтапыКВыполнению ТОГДА 4 ИНАЧЕ -1 КОНЕЦ КАК СостояниеЭтаповИГрафикаПроизводства, ВЫБОР КОГДА СостоянияЗаказовНаПроизводство.СостояниеОбеспечения = &СостояниеТребуетсяОбеспечение ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК СостояниеОбеспечения, ВЫБОР КОГДА СостоянияЗаказовНаПроизводство.СостояниеВыпуска = &СостояниеВыполнен ТОГДА 2 КОГДА СостоянияЗаказовНаПроизводство.СостояниеВыпуска = &СостояниеНарушенаДатаПотребности ТОГДА 1 ИНАЧЕ -1 КОНЕЦ КАК СостояниеВыпускаПродукции, ВЫБОР Таблица.Статус КОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовНаПроизводство2_2.КПроизводству) ТОГДА 1 КОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовНаПроизводство2_2.Формируется) ТОГДА 2 КОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовНаПроизводство2_2.Закрыт) ТОГДА 3 ИНАЧЕ 4 КОНЕЦ КАК СтатусОчередь, -Таблица.Приоритет.РеквизитДопУпорядочивания КАК ПриоритетОчередь, Таблица.Подразделение.РеквизитДопУпорядочивания КАК ПодразделениеОчередь, Таблица.Очередь КАК Очередь, Таблица.Ответственный КАК Ответственный, Таблица.Комментарий КАК Комментарий, //свл+ ВЫБОР КОГДА ЕСТЬNULL(ОбеспечениеПроцессов.ТребуетсяОборот, 0) <> 0 ТОГДА ЕСТЬNULL(ОбеспечениеПроцессов.ПроизведеноОборот, 0) / ОбеспечениеПроцессов.ТребуетсяОборот * 100 ИНАЧЕ 0 КОНЕЦ КАК ПроцентВыполнения //свл- ИЗ Документ.ЗаказНаПроизводство2_2 КАК Таблица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовНаПроизводство КАК СостоянияЗаказовНаПроизводство ПО Таблица.Ссылка = СостоянияЗаказовНаПроизводство.Заказ //свл+ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОбеспечениеПроизводственныхПроцессов.Обороты(, , , Склад.СкладГотовойПродукции = ИСТИНА) КАК ОбеспечениеПроцессов ПО (ОбеспечениеПроцессов.Распоряжение = Таблица.Ссылка) //свл- ГДЕ Таблица.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовНаПроизводство2_2.КПроизводству) И Таблица.Проведен |
|||
7
PR
28.04.23
✎
13:46
|
Отбор по подразделению — это не только отбор по правой, но и по левой таблице
Для отбора только по правой таблице нужно сделать что-то типа {Подразделение.* КАК ПодразделениеДляОтбораТолькоПоПравойТаблице} |
|||
8
1cv78
28.04.23
✎
13:49
|
О, мерси, я чот протупил... Щас всевдоним сменю...
|
|||
9
1cv78
28.04.23
✎
14:01
|
Спасибо еще раз, псевдоним помог!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |