В отчете на СКД и консоли запросов разный результат.

1. Vlad_M_75 10.03.20 16:03 Сейчас в теме
Задача была написать простой отчет, который получит отрицательные начисления в определенных разрезах. Проблема в следующем: Переносим запрос из набора данных в консоль запросов выдаются правильные цифры. В отчете, как только убираем измерение "сотрудник" получаем на выходе пустой результат. Я уже дня 2 пытаюсь понять где собака порылась...

Текст запроса:

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

СГРУППИРОВАТЬ ПО
БухучетНачисленияУдержанияПоСотрудникамОбороты.Сотрудник,
БухучетНачисленияУдержанияПоСотрудникамОбороты.СтатьяРасходов,
БухучетНачисленияУдержанияПоСотрудникамОбороты.СтатьяФинансирования

ИМЕЮЩИЕ СУММА(БухучетНачисленияУдержанияПоСотрудникамОбороты.СуммаОборот) <0 //Пробовал комментарить эту строчку и добавлять ГДЕ во второй подзапрос. Эффект 0.
;

////////////////////////////////////////////////////////////­////////////////////
//Если сюда добавить сотрудника, и добавить сотрудника в вывод данных, то все будет как в консоли запроса.
// Как только убираем сотрудника (даже если только из полей вывода, то получаем пустой результат.)
ВЫБРАТЬ
СУММА(ВТМинус.СуммаОборот) КАК СуммаОборот,
ВТМинус.СтатьяФинансирования КАК СтатьяФинансирования,
ВТМинус.СтатьяРасходов КАК СтатьяРасходов
ИЗ
ВТМинус КАК ВТМинус

//ГДЕ
// ВТМинус.СуммаОборот < 0

СГРУППИРОВАТЬ ПО
ВТМинус.СтатьяФинансирования,
ВТМинус.СтатьяРасходов
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TonyaKhomich 5 10.03.20 16:15 Сейчас в теме
Скорее всего из-за установленной галочки автозаполнение. Запрос в СКД в конечном итоге при формировании отчета может изменяться в зависимости от выводимых полей. Чтобы избежать такой ситуации, можно убрать галочку автозаполнение и в компоновке данных запроса выбрать необходимые поля
3. soft_wind 10.03.20 21:06 Сейчас в теме
еще как вариант в отчете, в запросе, сделать сначала временную таблицу со всеми полями, из нее результирующую таблицу, тогда можно будет уже рулить галочками отбора из самого отчета (по какой-то статье информстара)
5. Vlad_M_75 11.03.20 06:30 Сейчас в теме
(3) Так вроде у меня так и сделано....
4. MuxaH 11.03.20 06:27 Сейчас в теме
СКД, в зависимости от выбираемых в отчет данных, меняет запрос к БД. Если надо, чтоб сотрудник выбирался в запросе всегда, то надо в конструкторе СКД этому полю выставить свойство "Обязательный".
7. Vlad_M_75 11.03.20 08:47 Сейчас в теме
(4) Так действительно работает, но проблема в том, что это кусок объединения запросов, и добавлять в остальные запросы NULL как сотрудник не очень правильное решение.
8. MuxaH 11.03.20 10:00 Сейчас в теме
(7) Можно использовать объединение наборов, тогда необязательно совпадение количества полей в объединяемых наборах.
6. Vlad_M_75 11.03.20 08:46 Сейчас в теме
Спасибо всем! Решил проблему, вынеся этот набор данных во внешние источники данных. Запросом формирую таблицу значений и использую ее как внешний набор данных. А СКД, действительно, слишком умная. Она при формировании плана запроса, видимо, считает поле "Сотрудник" лишним.
9. ixijixi 1818 12.03.20 12:26 Сейчас в теме
(6) Надо было роли полей выставить
Прикрепленные файлы:
user693240_abramovskaya; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот