Всем привет!
Люди добрые, посмотрите, пожалуйста, что с этим отчетом не так.
Когда я формирую его, например, с одним из таких вариантов группировок: "Организация, Пол, Физ. лицо, Регистратор", либо "Физ. лицо, Регистратор", либо "Физ. лицо", либо "Пол", то остатки на начало и на конец формируются верно.
А когда я формирую этот же отчет, например, с такими вариантами группировок: "Организация, Регистратор", либо "Регистратор", то остатки в отчете врут.
Замечено, если отказаться от соединения со справочником "СотрудникиОрганизаций" и удалить из основного запроса обращение к Сотрудник.ВидЗанятости, то отчет будет формироваться без ошибок при любых вариантах группировок.
Прилагаю файл внешнего отчета и несколько снимков экрана, на которых видно, при каких вариантах группировок (в моем случае) врут остатки.
Заранее спасибо!
PS:
Решил добавить сюда текст запроса
Люди добрые, посмотрите, пожалуйста, что с этим отчетом не так.
Когда я формирую его, например, с одним из таких вариантов группировок: "Организация, Пол, Физ. лицо, Регистратор", либо "Физ. лицо, Регистратор", либо "Физ. лицо", либо "Пол", то остатки на начало и на конец формируются верно.
А когда я формирую этот же отчет, например, с такими вариантами группировок: "Организация, Регистратор", либо "Регистратор", то остатки в отчете врут.
Замечено, если отказаться от соединения со справочником "СотрудникиОрганизаций" и удалить из основного запроса обращение к Сотрудник.ВидЗанятости, то отчет будет формироваться без ошибок при любых вариантах группировок.
Прилагаю файл внешнего отчета и несколько снимков экрана, на которых видно, при каких вариантах группировок (в моем случае) врут остатки.
Заранее спасибо!
PS:
Решил добавить сюда текст запроса
ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Физлицо КАК Физлицо,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Физлицо.Пол КАК Пол,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Организация КАК Организация,
ВЫБОР
КОГДА ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
ТОГДА NULL
ИНАЧЕ ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Регистратор
КОНЕЦ КАК Регистратор,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда,
Сотрудник.ВидЗанятости КАК ВидЗанятости,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаВзаиморасчетовНачальныйОстаток,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовОборот КАК СуммаВзаиморасчетовОборот,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
СотрудникиОрганизаций.Физлицо КАК Физлицо,
СотрудникиОрганизаций.ВидЗанятости КАК ВидЗанятости
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций) КАК Сотрудник
ПО (Сотрудник.Физлицо = ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Физлицо)
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Остатки товаров на складах по дням
- Расчет с помощью СКД остатков регистра по реквизиту регистратора
- Простые примеры сложных отчетов на СКД
- Партионный учет ФИФО ЛИФО. Остатки поступлений, пример получения данных партионного учета, если его нет. Вернуть остатки партий. Списать по срокам годности ФИФО ЛИФО
- Средние остатки по расчетным счетам для БП 3
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Спасибо за ответ.
Поле "ПериодСекунда" есть в запросе. В настройках СКД для ПериодСекунда назначена роль "Период, 2"
Для поля "Регистратор" назначена роль "Период, 1"
Ради эксперимента сформировал отчет с таким набором группировок: "Регистратор, Период, секунда". Результат - остатки по-прежнему врут...
Спасибо за ответ.
Поле "ПериодСекунда" есть в запросе. В настройках СКД для ПериодСекунда назначена роль "Период, 2"
Для поля "Регистратор" назначена роль "Период, 1"
Ради эксперимента сформировал отчет с таким набором группировок: "Регистратор, Период, секунда". Результат - остатки по-прежнему врут...
(5) Вы имеете ввиду условие "ВЫБОР КОГДА ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО"?
это нужно для того, чтобы в отчет не выводились пустые строки по группировке "Регистратор"
Но это условие никак влияет на результат. Можно смело убрать конструкцию "ВЫБОР КОГДА..." и вместо нее просто написать "ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор," - результат будет 100% такой же. Я проверял неоднократно.
это нужно для того, чтобы в отчет не выводились пустые строки по группировке "Регистратор"
Но это условие никак влияет на результат. Можно смело убрать конструкцию "ВЫБОР КОГДА..." и вместо нее просто написать "ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор," - результат будет 100% такой же. Я проверял неоднократно.
такое соединение реально работает??
"ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
СотрудникиОрганизаций.Физлицо КАК Физлицо,
СотрудникиОрганизаций.ВидЗанятости КАК ВидЗанятости
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций) КАК Сотрудник
ПО (Сотрудник.Физлицо = ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Физлицо)"
по-моему тут сначала выбирается какой-то один сотрудний, а потом уже результат этого выбора присоединяете по физлицу. Наверное ж еще нужен в этом подзапросе отбор по текущему пользователю таблицы ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.
А по поводу неверных остатков - попробуйте к консоли отчетов посмотреть реальный запрос, который выполняет СКД при данных настройках, возможно, поможет разобратся.
"ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
СотрудникиОрганизаций.Физлицо КАК Физлицо,
СотрудникиОрганизаций.ВидЗанятости КАК ВидЗанятости
ИЗ
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций) КАК Сотрудник
ПО (Сотрудник.Физлицо = ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.Физлицо)"
по-моему тут сначала выбирается какой-то один сотрудний, а потом уже результат этого выбора присоединяете по физлицу. Наверное ж еще нужен в этом подзапросе отбор по текущему пользователю таблицы ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.
А по поводу неверных остатков - попробуйте к консоли отчетов посмотреть реальный запрос, который выполняет СКД при данных настройках, возможно, поможет разобратся.
(10)
Действительно, я заэкспериментировался с этим соединением и выложил сюда вариант с использованием "ПЕРВЫЕ 1". Но сути это не меняет. Думаю, что правильнее там будет использовать "ВЫБРАТЬ РАЗЛИЧНЫЕ".
Конечно, я пробовал экспериментировать и в консоли отчетов и в консоли запросов. Например, в консоли запросов я отчетливо вижу, что поле ВидЗанятости присоединяется и заполняется верными данными (когда использую в левом соединении "ВЫБРАТЬ РАЗЛИЧНЫЕ").
такое соединение реально работает??
"ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1..."
по-моему тут сначала выбирается какой-то один сотрудний, а потом уже результат этого выбора присоединяете по физлицу. Наверное ж еще нужен в этом подзапросе отбор по текущему пользователю таблицы ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.
"ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1..."
по-моему тут сначала выбирается какой-то один сотрудний, а потом уже результат этого выбора присоединяете по физлицу. Наверное ж еще нужен в этом подзапросе отбор по текущему пользователю таблицы ВзаиморасчетыСРаботникамиОрганизацийОстаткиИОбороты.
Действительно, я заэкспериментировался с этим соединением и выложил сюда вариант с использованием "ПЕРВЫЕ 1". Но сути это не меняет. Думаю, что правильнее там будет использовать "ВЫБРАТЬ РАЗЛИЧНЫЕ".
А по поводу неверных остатков - попробуйте к консоли отчетов посмотреть реальный запрос, который выполняет СКД при данных настройках, возможно, поможет разобратся.
Конечно, я пробовал экспериментировать и в консоли отчетов и в консоли запросов. Например, в консоли запросов я отчетливо вижу, что поле ВидЗанятости присоединяется и заполняется верными данными (когда использую в левом соединении "ВЫБРАТЬ РАЗЛИЧНЫЕ").
Проблема будет не в "реальном запросе", подсчёте итогов самой СКД.
Уберите соединение, уберите костыль на регистраторе, уберите все лишнее.
Введите организацию. Проверьте остатки. Введите организацию, ниже рег - проверьте остаток. Если неправильный остаток равен сумме по каждому регистратору, то нужно переиначить вывод. Если нет - то может это правильные данные?)))
Уберите соединение, уберите костыль на регистраторе, уберите все лишнее.
Введите организацию. Проверьте остатки. Введите организацию, ниже рег - проверьте остаток. Если неправильный остаток равен сумме по каждому регистратору, то нужно переиначить вывод. Если нет - то может это правильные данные?)))
(11)
Совершенно с Вами согласен.
Соединение убирал. Как я писал в самом начале: "Замечено, если отказаться от соединения со справочником "СотрудникиОрганизаций" и удалить из основного запроса обращение к Сотрудник.ВидЗанятости, то отчет будет формироваться без ошибок при любых вариантах группировок".
Про костыль: Вы имеете ввиду "КОГДА Регистратор = НЕОПРЕДЕЛЕНО ТОГДА NULL"? Конечно, это я тоже убирал. Результат прежний...
Проблема будет не в "реальном запросе", подсчёте итогов самой СКД.
Совершенно с Вами согласен.
Уберите соединение, уберите костыль на регистраторе, уберите все лишнее.
Введите организацию. Проверьте остатки. Введите организацию, ниже рег - проверьте остаток. Если неправильный остаток равен сумме по каждому регистратору, то нужно переиначить вывод. Если нет - то может это правильные данные?)))
Введите организацию. Проверьте остатки. Введите организацию, ниже рег - проверьте остаток. Если неправильный остаток равен сумме по каждому регистратору, то нужно переиначить вывод. Если нет - то может это правильные данные?)))
Соединение убирал. Как я писал в самом начале: "Замечено, если отказаться от соединения со справочником "СотрудникиОрганизаций" и удалить из основного запроса обращение к Сотрудник.ВидЗанятости, то отчет будет формироваться без ошибок при любых вариантах группировок".
Про костыль: Вы имеете ввиду "КОГДА Регистратор = НЕОПРЕДЕЛЕНО ТОГДА NULL"? Конечно, это я тоже убирал. Результат прежний...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот