Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 20:23

Проблема с должностями в отчете (NULL)

Автор ksander-fars, 23 июн 2016, 02:46

0 Пользователей и 1 гость просматривают эту тему.

ksander-fars

Должность в отчете по начислениям за период выпадает в NULL, именно при выборке с условием по подразделению, если отчет формируется по организации в целом то всё в порядке, записей NULL нет. Как узнать что это за должность и почему возникает такая проблема?

Текст Запроса Вот Такой
ПостроительОтчетаОтчет.Текст =
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета КАК ВидРасчета,
   |   1 КАК ВидПовременный
   |ПОМЕСТИТЬ ВТПовременка
   |ИЗ
   |   ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета
   |ГДЕ
   |   ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка.Код = ""ДопДЧ""
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   ВидРасчета
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета КАК ВидРасчета,
   |   1 КАК ВидПовременный
   |ПОМЕСТИТЬ ВТИсключаемые
   |ИЗ
   |   ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета
   |ГДЕ
   |   ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка.Код = ""ДопОД""
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   ВидРасчета
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   РабочееВремяРаботниковОрганизаций.Регистратор.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   |   РабочееВремяРаботниковОрганизаций.Сотрудник КАК Сотрудник,
   |   ЗНАЧЕНИЕ(Планвидоврасчета.ОсновныеНачисленияОрганизаций.СдельнаяОплата) КАК ВидРасчета,
   |   СУММА(РабочееВремяРаботниковОрганизаций.Дней) КАК ОплаченоДней,
   |   СУММА(РабочееВремяРаботниковОрганизаций.Часов) КАК ОплаченоЧасов,
   |   РабочееВремяРаботниковОрганизаций.Организация КАК Организация
   |ПОМЕСТИТЬ ВТВремяСделка
   |{ВЫБРАТЬ
   |   ПодразделениеОрганизации.*,
   |   Сотрудник.*,
   |   ВидРасчета.*,
   |   Организация.*}
   |ИЗ
   |   РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботниковОрганизаций
   |ГДЕ
   |   РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
   |   И (РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Работа)
   |         ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.БуквенныйКод = ""ВМ"")
   |   И РабочееВремяРаботниковОрганизаций.Регистратор ССЫЛКА Документ.СдельныйНаряд
   |{ГДЕ
   |   РабочееВремяРаботниковОрганизаций.Сотрудник.*,
   |   РабочееВремяРаботниковОрганизаций.Организация.*}
   |
   |СГРУППИРОВАТЬ ПО
   |   РабочееВремяРаботниковОрганизаций.Регистратор.ПодразделениеОрганизации,
   |   РабочееВремяРаботниковОрганизаций.Сотрудник,
   |   РабочееВремяРаботниковОрганизаций.Организация
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   Сотрудник,
   |   ПодразделениеОрганизации,
   |   ВидРасчета
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ОсновныеНачисленияРаботниковОрганизации.Сотрудник КАК Сотрудник,
   |   ОсновныеНачисленияРаботниковОрганизации.ВидРасчета КАК ВидРасчета,
   |   СУММА(ВЫБОР
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетОтработанногоВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетНормыВремени
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней
   |         КОГДА НЕ ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетОтработанногоВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетНормыВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |         КОГДА НЕ ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетОтработанногоВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетНормыВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |            ТОГДА 0
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |               И ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней = 0
   |               И ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов <> 0
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |               И ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней <> 0
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени.РабочееВремя
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней
   |         ИНАЧЕ РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизации.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ОсновныеНачисленияРаботниковОрганизации.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1), ДЕНЬ)
   |      КОНЕЦ * ВЫБОР
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.Сторно
   |            ТОГДА -1
   |         ИНАЧЕ 1
   |      КОНЕЦ * ЕСТЬNULL(ВТПовременка.ВидПовременный, 0)) КАК ОплаченоДней,
   |   СУММА(ВЫБОР
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетОтработанногоВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетНормыВремени
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов
   |         КОГДА НЕ ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетОтработанногоВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетНормыВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |            ТОГДА 0
   |         КОГДА НЕ ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетОтработанногоВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЗачетНормыВремени
   |               И ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |               И ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов = 0
   |               И ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов <> 0
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |               И ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов <> 0
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени.РабочееВремя
   |            ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов
   |         ИНАЧЕ ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |      КОНЕЦ * ВЫБОР
   |         КОГДА ОсновныеНачисленияРаботниковОрганизации.Сторно
   |            ТОГДА -1
   |         ИНАЧЕ 1
   |      КОНЕЦ * ЕСТЬNULL(ВТПовременка.ВидПовременный, 0)) КАК ОплаченоЧасов,
   |   ОсновныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   |   ОсновныеНачисленияРаботниковОрганизации.Организация КАК Организация
   |ПОМЕСТИТЬ ВТВремяОтработано
   |{ВЫБРАТЬ
   |   Сотрудник.*,
   |   ВидРасчета.*,
   |   ПодразделениеОрганизации.*,
   |   Организация.*}
   |ИЗ
   |   РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизации
   |      ЛЕВОЕ СОЕДИНЕНИЕ ВТПовременка КАК ВТПовременка
   |      ПО ОсновныеНачисленияРаботниковОрганизации.ВидРасчета = ВТПовременка.ВидРасчета
   |ГДЕ
   |   ОсновныеНачисленияРаботниковОрганизации.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
   |   И НЕ ОсновныеНачисленияРаботниковОрганизации.ВидРасчета В
   |            (ВЫБРАТЬ
   |               ВТИсключаемые.ВидРасчета
   |            ИЗ
   |               ВТИсключаемые)
   |   И ОсновныеНачисленияРаботниковОрганизации.Результат <> 0
   |   И НЕ ОсновныеНачисленияРаботниковОрганизации.ВидРасчета В (ЗНАЧЕНИЕ(Планвидоврасчета.ОсновныеНачисленияОрганизаций.СдельнаяОплата))
   |{ГДЕ
   |   ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.*,
   |   ОсновныеНачисленияРаботниковОрганизации.Сотрудник.*,
   |   ОсновныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации.*,
   |   ОсновныеНачисленияРаботниковОрганизации.Организация.*}
   |
   |СГРУППИРОВАТЬ ПО
   |   ОсновныеНачисленияРаботниковОрганизации.ВидРасчета,
   |   ОсновныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации,
   |   ОсновныеНачисленияРаботниковОрганизации.Сотрудник,
   |   ОсновныеНачисленияРаботниковОрганизации.Организация
   |
   |ОБЪЕДИНИТЬ
   |
   |ВЫБРАТЬ
   |   ДополнительныеНачисленияРаботниковОрганизации.Сотрудник,
   |   ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета,
   |   СУММА(ВЫБОР
   |         КОГДА ДополнительныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
   |            ТОГДА ДополнительныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |         ИНАЧЕ 0
   |      КОНЕЦ * ЕСТЬNULL(ВТПовременка.ВидПовременный, 0)),
   |   СУММА(ВЫБОР
   |         КОГДА ДополнительныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
   |            ТОГДА ДополнительныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
   |         ИНАЧЕ 0
   |      КОНЕЦ * ЕСТЬNULL(ВТПовременка.ВидПовременный, 0)),
   |   ДополнительныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации,
   |   ДополнительныеНачисленияРаботниковОрганизации.Организация
   |ИЗ
   |   РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизации
   |      ЛЕВОЕ СОЕДИНЕНИЕ ВТПовременка КАК ВТПовременка
   |      ПО ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета = ВТПовременка.ВидРасчета
   |ГДЕ
   |   ДополнительныеНачисленияРаботниковОрганизации.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
   |   И НЕ ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета В
   |            (ВЫБРАТЬ
   |               ВТИсключаемые.ВидРасчета
   |            ИЗ
   |               ВТИсключаемые)
   |   И ДополнительныеНачисленияРаботниковОрганизации.Результат <> 0
   |{ГДЕ
   |   ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета.*,
   |   ДополнительныеНачисленияРаботниковОрганизации.Сотрудник.*,
   |   ДополнительныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации.*}
   |
   |СГРУППИРОВАТЬ ПО
   |   ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета,
   |   ДополнительныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации,
   |   ДополнительныеНачисленияРаботниковОрганизации.Сотрудник,
   |   ДополнительныеНачисленияРаботниковОрганизации.Организация
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |   ВТВремяСделка.Сотрудник,
   |   ВТВремяСделка.ВидРасчета,
   |   ВТВремяСделка.ОплаченоДней,
   |   ВТВремяСделка.ОплаченоЧасов,
   |   ВТВремяСделка.ПодразделениеОрганизации,
   |   ВТВремяСделка.Организация
   |ИЗ
   |   ВТВремяСделка КАК ВТВремяСделка
   |{ГДЕ
   |   ВТВремяСделка.Сотрудник.*,
   |   ВТВремяСделка.ВидРасчета.*,
   |   ВТВремяСделка.ПодразделениеОрганизации.*}
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   Сотрудник,
   |   ВидРасчета,
   |   ПодразделениеОрганизации
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   |   РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
   |   ВЫБОР
   |      КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
   |         ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
   |      ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
   |   КОНЕЦ КАК Должность,
   |   ВЫБОР
   |      КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
   |         ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
   |      ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
   |   КОНЕЦ КАК ПодразделениеОрганизации,
   |   МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) КАК Период,
   |   РаботникиОрганизацийСрезПоследних.Организация КАК Организация,
   |   ВЫБОР
   |      КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
   |         ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
   |      ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
   |   КОНЕЦ КАК Поле1
   |ПОМЕСТИТЬ ВТДолжности
   |{ВЫБРАТЬ
   |   Сотрудник.*,
   |   ПодразделениеОрганизации.*,
   |   Должность.*,
   |   Организация.*}
   |ИЗ
   |   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода, ) КАК РаботникиОрганизацийСрезПоследних
   |{ГДЕ
   |   РаботникиОрганизацийСрезПоследних.Сотрудник.*,
   |   РаботникиОрганизацийСрезПоследних.Организация.*}
   |
   |СГРУППИРОВАТЬ ПО
   |   РаботникиОрганизацийСрезПоследних.Сотрудник,
   |   ВЫБОР
   |      КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
   |         ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
   |      ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
   |   КОНЕЦ,
   |   ВЫБОР
   |      КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
   |         ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
   |      ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
   |   КОНЕЦ,
   |   РаботникиОрганизацийСрезПоследних.Организация,
   |   ВЫБОР
   |      КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
   |         ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
   |      ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
   |   КОНЕЦ
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   Сотрудник
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   Начисления.Организация КАК Организация,
   |   ПРЕДСТАВЛЕНИЕ(Начисления.Организация),
   |   ВТДолжности.Должность КАК Должность,
   |   Начисления.ВидРасчета КАК ВидРасчета,
   |   ПРЕДСТАВЛЕНИЕ(Начисления.ВидРасчета),
   |   СУММА(Начисления.Результат) КАК Результат,
   |   СУММА(ВТВремяОтработано.ОплаченоДней) КАК ОплаченоДней,
   |   СУММА(ВТВремяОтработано.ОплаченоЧасов) КАК ОплаченоЧасов
   |ИЗ
   |   (ВЫБРАТЬ
   |      БУОсновныеНачисления.Сотрудник КАК Сотрудник,
   |      БУОсновныеНачисления.ВидРасчета КАК ВидРасчета,
   |      СУММА(БУОсновныеНачисления.Результат) КАК Результат,
   |      ВЫРАЗИТЬ(ВЫБОР
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 1
   |               ТОГДА БУОсновныеНачисления.СубконтоДт1
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 2
   |               ТОГДА БУОсновныеНачисления.СубконтоДт2
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 3
   |               ТОГДА БУОсновныеНачисления.СубконтоДт3
   |         КОНЕЦ КАК Справочник.ПодразделенияОрганизаций) КАК ПодразделениеОрганизации,
   |      БУОсновныеНачисления.Организация КАК Организация
   |   {ВЫБРАТЬ
   |      Сотрудник.*,
   |      ВидРасчета.*,
   |      ПодразделениеОрганизации.*,
   |      Организация.*,
   |      Организация.*}
   |   ИЗ
   |      РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления
   |         ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
   |         ПО БУОсновныеНачисления.СчетДт = ХозрасчетныйВидыСубконто.Ссылка
   |            И (ХозрасчетныйВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения))
   |            И (БУОсновныеНачисления.СчетДт <> ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка))
   |   ГДЕ
   |      БУОсновныеНачисления.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
   |      И НЕ БУОсновныеНачисления.ВидРасчета В
   |               (ВЫБРАТЬ
   |                  ВТИсключаемые.ВидРасчета
   |               ИЗ
   |                  ВТИсключаемые)
   |   {ГДЕ
   |      БУОсновныеНачисления.Сотрудник.*,
   |      БУОсновныеНачисления.ВидРасчета.*,
   |      БУОсновныеНачисления.Организация.*}
   |   
   |   СГРУППИРОВАТЬ ПО
   |      БУОсновныеНачисления.Сотрудник,
   |      БУОсновныеНачисления.ВидРасчета,
   |      БУОсновныеНачисления.Организация,
   |      ВЫРАЗИТЬ(ВЫБОР
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 1
   |               ТОГДА БУОсновныеНачисления.СубконтоДт1
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 2
   |               ТОГДА БУОсновныеНачисления.СубконтоДт2
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 3
   |               ТОГДА БУОсновныеНачисления.СубконтоДт3
   |         КОНЕЦ КАК Справочник.ПодразделенияОрганизаций)
   |   
   |   ОБЪЕДИНИТЬ ВСЕ
   |   
   |   ВЫБРАТЬ
   |      БУДополнительныеНачисления.Сотрудник,
   |      БУДополнительныеНачисления.ВидРасчета,
   |      СУММА(БУДополнительныеНачисления.Результат),
   |      ВЫРАЗИТЬ(ВЫБОР
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 1
   |               ТОГДА БУДополнительныеНачисления.СубконтоДт1
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 2
   |               ТОГДА БУДополнительныеНачисления.СубконтоДт2
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 3
   |               ТОГДА БУДополнительныеНачисления.СубконтоДт3
   |         КОНЕЦ КАК Справочник.ПодразделенияОрганизаций),
   |      БУДополнительныеНачисления.Организация
   |   ИЗ
   |      РегистрРасчета.БУДополнительныеНачисления КАК БУДополнительныеНачисления
   |         ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
   |         ПО БУДополнительныеНачисления.СчетДт = ХозрасчетныйВидыСубконто.Ссылка
   |            И (БУДополнительныеНачисления.СчетДт <> ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка))
   |            И (ХозрасчетныйВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения))
   |   ГДЕ
   |      БУДополнительныеНачисления.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
   |      И НЕ БУДополнительныеНачисления.ВидРасчета В
   |               (ВЫБРАТЬ
   |                  ВТИсключаемые.ВидРасчета
   |               ИЗ
   |                  ВТИсключаемые)
   |   {ГДЕ
   |      БУДополнительныеНачисления.Сотрудник.*,
   |      БУДополнительныеНачисления.ВидРасчета.*,
   |      БУДополнительныеНачисления.Организация.*}
   |   
   |   СГРУППИРОВАТЬ ПО
   |      БУДополнительныеНачисления.Сотрудник,
   |      БУДополнительныеНачисления.ВидРасчета,
   |      БУДополнительныеНачисления.Организация,
   |      ВЫРАЗИТЬ(ВЫБОР
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 1
   |               ТОГДА БУДополнительныеНачисления.СубконтоДт1
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 2
   |               ТОГДА БУДополнительныеНачисления.СубконтоДт2
   |            КОГДА ЕСТЬNULL(ХозрасчетныйВидыСубконто.НомерСтроки, 0) = 3
   |               ТОГДА БУДополнительныеНачисления.СубконтоДт3
   |         КОНЕЦ КАК Справочник.ПодразделенияОрганизаций)) КАК Начисления
   |      ЛЕВОЕ СОЕДИНЕНИЕ ВТДолжности КАК ВТДолжности
   |      ПО Начисления.Сотрудник = ВТДолжности.Сотрудник
   |         И Начисления.Организация = ВТДолжности.Организация
   |      ЛЕВОЕ СОЕДИНЕНИЕ ВТВремяОтработано КАК ВТВремяОтработано
   |      ПО Начисления.Сотрудник = ВТВремяОтработано.Сотрудник
   |         И Начисления.ВидРасчета = ВТВремяОтработано.ВидРасчета
   |         И Начисления.ПодразделениеОрганизации = ВТВремяОтработано.ПодразделениеОрганизации
   |         И Начисления.Организация = ВТВремяОтработано.Организация
   |{ГДЕ
   |   Начисления.Сотрудник.*,
   |   Начисления.ВидРасчета.*,
   |   Начисления.ПодразделениеОрганизации.*,
   |   ВТДолжности.Должность.*,
   |   Начисления.Организация.*}
   |
   |СГРУППИРОВАТЬ ПО
   |   Начисления.Организация,
   |   Начисления.ВидРасчета,
   |   ВТДолжности.Должность
   |
   |УПОРЯДОЧИТЬ ПО
   |   Организация,
   |   Должность,
   |   ВидРасчета
   |ИТОГИ
   |   СУММА(Результат),
   |   СУММА(ОплаченоДней),
   |   СУММА(ОплаченоЧасов)
   |ПО
   |   Организация,
   |   Должность КАК Должность
   |АВТОУПОРЯДОЧИВАНИЕ";
   ПостроительОтчетаОтчет.ЗаполнитьНастройки();
   ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
   ПостроительОтчетаОтчет.ТекстЗаголовка = "Отчет";
   Настройка = ВосстановитьЗначение("НастройкаВнешниеОтчетыОтчетПоДолжностямОтчет_46ace2ef-0877-46b4-b965-ab36454676ed");
   Если Настройка <> Неопределено Тогда
      ПостроительОтчетаОтчет.УстановитьНастройки(Настройка);
   КонецЕсли;

ksander-fars


ilyay

Могу предположить, что они идут из среза последних РегистрСведений.РаботникиОрганизаций.СрезПоследних

Условия компоновки данных могут попадать в отбор виртуальных таблиц.

Rasty

мой вам совет, когда есть такой большой запрос и его надо отлаживать, то разбивайте его на несколько мелких типо
Запрос.текст =
  "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета КАК ВидРасчета,
   |   1 КАК ВидПовременный
   |ПОМЕСТИТЬ ВТПовременка
   |ИЗ
   |   ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета
   |ГДЕ
   |   ДополнительныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка.Код = ""ДопДЧ""
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   ВидРасчета";
Запрос.Выполнить();
и т.д. и небольшую функцию по получению временной таблицы
Функция ПолучитьВременнуюТаблицуИзЗапроса(ИмяТаблицы,МенеджерВременныхТаблиц)
   
Запрос = Новый Запрос;
   
   Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
   Запрос.Текст =
   "Выбрать
   | *
   |ИЗ
   |"+ИмяТаблицы + " КАК " + ИмяТаблицы +"";
   
Возврат Запрос.Выполнить().Выгрузить();
   
КонецФункции

и так вы легко найдете ошибку
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

ksander-fars

В общем то найдена проблема, значение NULL в этом отчете означает перемещение или увольнение сотрудников, то есть на заданный период сотрудник пол месяца работал в подразделении А, затем был переведён в подразделение Б. В отчете он будет виден в подразделении Б, а в подразделении А будет стоять NULL так как эта должность является не занятой. Интересно каким образом можно решить эту проблему... Курю 1С дальше :bleh:
Добавлено: 24 июн 2016, 03:47


Rasty спасибо, приму к сведению :ooifh:
Добавлено: 24 июн 2016, 08:43


Вопрос снимается с обсуждения, так как перерабатывать его бессмысленно, так как движение документов по переводам в совокупности с больничными со стороны кадровиков проследить невозможно... Нужен принципиально другой запрос. Всем спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск