|
Разный результат в консоли запросов и СКД | ☑ | ||
---|---|---|---|---|
0
nemoxp
13.04.20
✎
14:23
|
платформа 8.3.16.1148
конфигурация Комплексная Автоматизация 2.4.11.67 Есть запрос, который правильно работает в консоли запросов с отбором по сегменту номенклатуры и не работает в отчете СКД: "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | Сегменты.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры |ИЗ | РегистрСведений.НоменклатураСегмента КАК Сегменты |ГДЕ | Сегменты.Сегмент В(&СегментыНоменклатуры) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | Набор.Номенклатура КАК Номенклатура, | СУММА(Набор.ВНаличии) КАК ВНаличии, | СУММА(Набор.ВРезервеСоСклада) КАК ВРезервеСоСклада, | СУММА(Набор.ВРезервеПодЗаказ) КАК ВРезервеПодЗаказ, | СУММА(Набор.КОтгрузке) КАК КОтгрузке, | СУММА(Набор.ВНаличии) - СУММА(Набор.ВРезервеСоСклада) - СУММА(Набор.ВРезервеПодЗаказ) - СУММА(Набор.КОтгрузке) КАК Доступно, | ВЫБОР | КОГДА СУММА(Набор.ВНаличии) - СУММА(Набор.ВРезервеСоСклада) - СУММА(Набор.ВРезервеПодЗаказ) - СУММА(Набор.КОтгрузке) > 0 | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК Наличие |ПОМЕСТИТЬ ВтСвободныеОстатки |ИЗ | (ВЫБРАТЬ | Таблица.Номенклатура КАК Номенклатура, | Таблица.ВНаличииОстаток КАК ВНаличии, | Таблица.ВРезервеСоСкладаОстаток КАК ВРезервеСоСклада, | Таблица.ВРезервеПодЗаказОстаток КАК ВРезервеПодЗаказ, | 0 КАК КОтгрузке | ИЗ | РегистрНакопления.СвободныеОстатки.Остатки(, ) КАК Таблица | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | Таблица.Номенклатура, | Таблица.КОтгрузкеОстаток, | 0, | 0, | Таблица.КОтгрузкеОстаток | ИЗ | РегистрНакопления.ТоварыКОтгрузке.Остатки(, ) КАК Таблица) КАК Набор | |СГРУППИРОВАТЬ ПО | Набор.Номенклатура | |ИНДЕКСИРОВАТЬ ПО | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тблНоменклатура.Родитель КАК Группа, | тблНоменклатура.Ссылка КАК Ссылка, | тблНоменклатура.Код КАК Код, | тблНоменклатура.Артикул КАК Артикул, | тблНоменклатура.НаименованиеПолное КАК НаименованиеПолное, | ЕСТЬNULL(тблНовинки.Новинка, ЛОЖЬ) КАК Новинка, | ЕСТЬNULL(ВтСвободныеОстатки.Наличие, ЛОЖЬ) КАК Наличие, | тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК КоличествоВУпаковке, | тблЗаказы.ЖелаемаяДатаПоступления КАК ДатаПоступления, | ЦеныНоменклатурыСрезПоследних.Цена КАК Цена, | 0 КАК КоличествоЗаказа, | 0 КАК Сумма, | 0 КАК ВесЗаказа, | 0 КАК ОбъемЗаказа, | тблНоменклатура.ВесЧислитель * тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК ВесБруттоУпаковки, | тблНоменклатура.ОбъемЧислитель * тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК ОбъемУпаковки, | ЕСТЬNULL(тблВесаНетто.ВесНетто, 0) КАК ВесНеттоУпаковки, | тблШтрихкодыУпаковки.Штрихкод КАК ШтрихкодУпаковки, | тблШтрихкодыШт.Штрихкод КАК ШтрихкодШтуки, | ВтСвободныеОстатки.ВНаличии КАК ВНаличии, | ВтСвободныеОстатки.ВРезервеСоСклада КАК ВРезервеСоСклада, | ВтСвободныеОстатки.ВРезервеПодЗаказ КАК ВРезервеПодЗаказ, | ВтСвободныеОстатки.КОтгрузке КАК КОтгрузке, | ВтСвободныеОстатки.Доступно КАК Доступно |ИЗ | Справочник.Номенклатура КАК тблНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка, | НоменклатураДополнительныеРеквизиты.Значение КАК Новинка | ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты | ГДЕ | НоменклатураДополнительныеРеквизиты.Свойство.Имя = ""Новинка"") КАК тблНовинки | ПО тблНоменклатура.Ссылка = тблНовинки.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗаказыПоставщикамОстатки.Номенклатура КАК Номенклатура, | ЗаказыПоставщикамОстатки.КОформлениюОстаток КАК КОформлениюОстаток, | ЗаказыПоставщикамОстатки.ЗаказПоставщику.ЖелаемаяДатаПоступления КАК ЖелаемаяДатаПоступления | ИЗ | РегистрНакопления.ЗаказыПоставщикам.Остатки(КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), ) КАК ЗаказыПоставщикамОстатки) КАК тблЗаказы | ПО тблНоменклатура.Ссылка = тблЗаказы.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних | ПО тблНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка, | НоменклатураДополнительныеРеквизиты.Значение КАК ВесНетто | ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты | ГДЕ | НоменклатураДополнительныеРеквизиты.Свойство.Имя = ""ВесНетто"") КАК тблВесаНетто | ПО тблНоменклатура.Ссылка = тблВесаНетто.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ ВтСвободныеОстатки КАК ВтСвободныеОстатки | ПО тблНоменклатура.Ссылка = ВтСвободныеОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МАКСИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод, | ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура, | ШтрихкодыНоменклатуры.Упаковка КАК Упаковка | ИЗ | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры | | СГРУППИРОВАТЬ ПО | ШтрихкодыНоменклатуры.Номенклатура, | ШтрихкодыНоменклатуры.Упаковка) КАК тблШтрихкодыУпаковки | ПО тблНоменклатура.Ссылка = тблШтрихкодыУпаковки.Номенклатура | И тблНоменклатура.КоэффициентЕдиницыДляОтчетов = тблШтрихкодыУпаковки.Упаковка.Числитель | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МАКСИМУМ(ШтрихкодыНоменклатуры.Штрихкод) КАК Штрихкод, | ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура, | ШтрихкодыНоменклатуры.Упаковка КАК Упаковка | ИЗ | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры | | СГРУППИРОВАТЬ ПО | ШтрихкодыНоменклатуры.Номенклатура, | ШтрихкодыНоменклатуры.Упаковка) КАК тблШтрихкодыШт | ПО тблНоменклатура.Ссылка = тблШтрихкодыШт.Номенклатура | И тблНоменклатура.ЕдиницаИзмерения = тблШтрихкодыШт.Упаковка |ГДЕ | тблНоменклатура.ЭтоГруппа = ЛОЖЬ | И ВЫБОР | КОГДА &ИспользуетсяОтборПоСегментуНоменклатуры = ИСТИНА | ТОГДА тблНоменклатура.Ссылка В | (ВЫБРАТЬ | ТаблицаОтбора.Номенклатура КАК Номенклатура | ИЗ | ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора) | ИНАЧЕ ИСТИНА | КОНЕЦ" Обратите внимание на запрос, результат которого записывается в ВТ "ОтборПоСегментуНоменклатуры". Тут отбираю номенклатуру по сегменту и потом отбираю записи в итоговом запросе по номенклатуре из сегмента, если параметр ИспользуетсяОтборПоСегментуНоменклатуры = ИСТИНА. В консоли все отбирается, а в СКД нет... Вторая проблема. Есть вложенный запрос по штрихкодам. Чтобы исключить дубли по номенклатуре, я выбираюзаписи из соответствующего регистра и группирую по номенклатуре, и выбираю МАКСИМУМ по штрихкоду. В консоли работает, а в СКД выводит все штрихкоды, в итоге в СКД дублируются записи. Ничего не могу понять... Почему? Как исправить? КЭШ чистил... |
|||
1
mikecool
13.04.20
✎
14:25
|
параметры, обратите внимание на них
|
|||
2
mikecool
13.04.20
✎
14:26
|
присвой как минимум значение параметру КонецПериода = ДатаОтчета
|
|||
3
nemoxp
13.04.20
✎
14:34
|
(2) будьте добры подробнее, не понимаю вас
|
|||
4
nemoxp
13.04.20
✎
14:36
|
(2) Параметр ДатаОтчета у меня оформлено "КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ)", т.е. в параметрах я указываю дату и формулой вычисляется конец дня. Потому что параметр у меня только дата, без указания времени.
|
|||
5
formista2000
13.04.20
✎
14:39
|
(3) кури построитель
|
|||
6
Жан Пердежон
13.04.20
✎
14:40
|
куча соединений с подзапросами, это ж фууу...
|
|||
7
nemoxp
13.04.20
✎
14:46
|
(5) а запросом в СКД это сделать нельзя?
|
|||
8
nemoxp
13.04.20
✎
14:59
|
(5) можно пример, что нужно добавить в запрос?
|
|||
9
nemoxp
13.04.20
✎
15:11
|
ЭКСПЕРИМЕНТ
СОКРАТИЛ ЗАПРОС "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | Сегменты.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры |ИЗ | РегистрСведений.НоменклатураСегмента КАК Сегменты |ГДЕ | Сегменты.Сегмент В(&СегментыНоменклатуры) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | Набор.Номенклатура КАК Номенклатура, | СУММА(Набор.ВНаличии) КАК ВНаличии, | СУММА(Набор.ВРезервеСоСклада) КАК ВРезервеСоСклада, | СУММА(Набор.ВРезервеПодЗаказ) КАК ВРезервеПодЗаказ, | СУММА(Набор.КОтгрузке) КАК КОтгрузке, | СУММА(Набор.ВНаличии) - СУММА(Набор.ВРезервеСоСклада) - СУММА(Набор.ВРезервеПодЗаказ) - СУММА(Набор.КОтгрузке) КАК Доступно, | ВЫБОР | КОГДА СУММА(Набор.ВНаличии) - СУММА(Набор.ВРезервеСоСклада) - СУММА(Набор.ВРезервеПодЗаказ) - СУММА(Набор.КОтгрузке) > 0 | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК Наличие |ПОМЕСТИТЬ ВтСвободныеОстатки |ИЗ | (ВЫБРАТЬ | Таблица.Номенклатура КАК Номенклатура, | Таблица.ВНаличииОстаток КАК ВНаличии, | Таблица.ВРезервеСоСкладаОстаток КАК ВРезервеСоСклада, | Таблица.ВРезервеПодЗаказОстаток КАК ВРезервеПодЗаказ, | 0 КАК КОтгрузке | ИЗ | РегистрНакопления.СвободныеОстатки.Остатки(, ) КАК Таблица | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | Таблица.Номенклатура, | Таблица.КОтгрузкеОстаток, | 0, | 0, | Таблица.КОтгрузкеОстаток | ИЗ | РегистрНакопления.ТоварыКОтгрузке.Остатки(, ) КАК Таблица) КАК Набор | |СГРУППИРОВАТЬ ПО | Набор.Номенклатура | |ИНДЕКСИРОВАТЬ ПО | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тблНоменклатура.Ссылка КАК Ссылка, | тблНоменклатура.Код КАК Код, | тблНоменклатура.Артикул КАК Артикул, | тблНоменклатура.НаименованиеПолное КАК НаименованиеПолное, | тблНоменклатура.Родитель КАК Родитель, | тблНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК КоэффициентЕдиницыДляОтчетов, | тблНоменклатура.ВесЧислитель КАК ВесЧислитель, | тблНоменклатура.ОбъемЧислитель КАК ОбъемЧислитель |ПОМЕСТИТЬ ВтНоменклатура |ИЗ | Справочник.Номенклатура КАК тблНоменклатура |ГДЕ | тблНоменклатура.ЭтоГруппа = ЛОЖЬ | И ВЫБОР | КОГДА &ИспользуетсяОтборПоСегментуНоменклатуры = ИСТИНА | ТОГДА тблНоменклатура.Ссылка В | (ВЫБРАТЬ | ТаблицаОтбора.Номенклатура КАК Номенклатура | ИЗ | ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора) | ИНАЧЕ ИСТИНА | КОНЕЦ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тблНоменклатура.Родитель КАК Группа, | тблНоменклатура.Ссылка КАК Ссылка, | тблНоменклатура.Код КАК Код, | тблНоменклатура.Артикул КАК Артикул, | тблНоменклатура.НаименованиеПолное КАК НаименованиеПолное, | ЕСТЬNULL(ВтСвободныеОстатки.Наличие, ЛОЖЬ) КАК Наличие, | тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК КоличествоВУпаковке, | 0 КАК КоличествоЗаказа, | 0 КАК Сумма, | 0 КАК ВесЗаказа, | 0 КАК ОбъемЗаказа, | тблНоменклатура.ВесЧислитель * тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК ВесБруттоУпаковки, | тблНоменклатура.ОбъемЧислитель * тблНоменклатура.КоэффициентЕдиницыДляОтчетов КАК ОбъемУпаковки, | ВтСвободныеОстатки.ВНаличии КАК ВНаличии, | ВтСвободныеОстатки.ВРезервеСоСклада КАК ВРезервеСоСклада, | ВтСвободныеОстатки.ВРезервеПодЗаказ КАК ВРезервеПодЗаказ, | ВтСвободныеОстатки.КОтгрузке КАК КОтгрузке, | ВтСвободныеОстатки.Доступно КАК Доступно |ИЗ | ВтНоменклатура КАК тблНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВтСвободныеОстатки КАК ВтСвободныеОстатки | ПО тблНоменклатура.Ссылка = ВтСвободныеОстатки.Номенклатура" Запускаю отчет, ругается: "(72,61) не задано значение параметра "ДатаОтчета" РегистрНакопления.ЗаказыПоставщикам.Остатки(КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ)...." А я это удалил в этой версии. Может банально эти данные где-то кешируются? И из-за этого проблема? То в чем вопрос, сегменты и штрихкоды добавлены не в первой версии отчета... Вроде кеш почистили. Беда в том, что у меня к файлам сервера нет доступа и кеш не почистить. Делает все это сисадмин... |
|||
10
toypaul
гуру
13.04.20
✎
15:55
|
если думаешь, что проблема в кеше, переименуй отчет (не файл) а имя отчета
|
|||
11
toypaul
гуру
13.04.20
✎
15:57
|
если в консоли запросов работает, в СКД нет, открой для себя консоль компоновки данных.
и почитай вот эти статьи http://catalog.mista.ru/public/1219807/ (это серия статей - в них можно найти ответ почему в консоли запросов работает, а в СКД нет) |
|||
12
nemoxp
13.04.20
✎
15:58
|
(10) Переименование не помогало...
Создал новый отчет, добавил туду текст запроса и остальное настроил вручную. теперь все работает. ничего дополнительно не делал. |
|||
13
toypaul
гуру
13.04.20
✎
15:59
|
(12) дэк это тоже самое что переименовать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |