Имя: Пароль:
1C
1С v8
Непонятное преобразование запроса в СКД
0 ixijixi
 
10.10.12
08:55
Прошу помочь разобраться.

Пытаюсь написать свод по зарплате на СКД. С помощью консоли СКД проверяю, во что превращается текст запроса. Происходит не вполне понятное мне явления. СКД-ха удаляет из запроса часть полей (в частности критически важное поле "Физлицо"), в связи с чем отчет формируется неверно. Автозаполнение не используется. Роли полей не назначены.

Запрос длинный (сначала во временные таблицы собираются данные по начислениям/удержаниям), привожу окончание:

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

СГРУППИРОВАТЬ ПО
   НачисленияРаботников.ВидДвижения,
   НачисленияРаботников.ФизЛицо,
   НачисленияРаботников.Организация,
   НачисленияРаботников.ГоловнаяОрганизация,
   НачисленияРаботников.ПериодРегистрации,
   НачисленияРаботников.ВидРасчета,
   НачисленияРаботников.ОтработаноДней,
   НачисленияРаботников.ОтработаноЧасов,
   НачисленияРаботников.ОплаченоДней,
   НачисленияРаботников.ОплаченоЧасов,
   НачисленияРаботников.Результат,
   НачисленияРаботников.ПериодДействия,
   НачисленияРаботников.Порядок,
   НачисленияРаботников.Регистратор,
   НачисленияРаботников.Баланс
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   НачисленияРаботниковСгруппированные.ВидДвижения КАК ВидДвижения,
   НачисленияРаботниковСгруппированные.ФизЛицо КАК ФизЛицо,
   НачисленияРаботниковСгруппированные.Организация КАК Организация,
   НачисленияРаботниковСгруппированные.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
   НачисленияРаботниковСгруппированные.ПериодРегистрации КАК ПериодРегистрации,
   НачисленияРаботниковСгруппированные.ВидРасчета КАК ВидРасчета,
   НачисленияРаботниковСгруппированные.ОтработаноДней КАК ОтработаноДней,
   НачисленияРаботниковСгруппированные.ОтработаноЧасов КАК ОтработаноЧасов,
   НачисленияРаботниковСгруппированные.ОплаченоДней КАК ОплаченоДней,
   НачисленияРаботниковСгруппированные.ОплаченоЧасов КАК ОплаченоЧасов,
   НачисленияРаботниковСгруппированные.Результат КАК Результат,
   НачисленияРаботниковСгруппированные.ПериодДействия КАК ПериодДействия,
   НачисленияРаботниковСгруппированные.Порядок КАК Порядок,
   НачисленияРаботниковСгруппированные.Регистратор КАК Регистратор,
   НачисленияРаботниковСгруппированные.Баланс КАК Баланс,
   НачисленияРаботниковСгруппированные.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
   НачисленияРаботниковСгруппированные.Сотрудник КАК Сотрудник,
   НачисленияРаботниковСгруппированные.Должность КАК Должность
{ВЫБРАТЬ
   ВидДвижения,
   ФизЛицо.*,
   Организация.*,
   ГоловнаяОрганизация.*,
   ПериодРегистрации,
   ВидРасчета.*,
   ОтработаноДней,
   ОтработаноЧасов,
   ОплаченоДней,
   ОплаченоЧасов,
   Результат,
   ПериодДействия,
   Порядок,
   Регистратор.*,
   Баланс.*,
   ПодразделениеОрганизации,
   Сотрудник.*,
   Должность}
ИЗ
   НачисленияРаботниковСгруппированные КАК НачисленияРаботниковСгруппированные
{ГДЕ
   НачисленияРаботниковСгруппированные.ВидДвижения,
   НачисленияРаботниковСгруппированные.ФизЛицо.*,
   НачисленияРаботниковСгруппированные.Организация.*,
   НачисленияРаботниковСгруппированные.ГоловнаяОрганизация.*,
   НачисленияРаботниковСгруппированные.ПериодРегистрации,
   НачисленияРаботниковСгруппированные.ВидРасчета.*,
   НачисленияРаботниковСгруппированные.ОтработаноДней,
   НачисленияРаботниковСгруппированные.ОтработаноЧасов,
   НачисленияРаботниковСгруппированные.ОплаченоДней,
   НачисленияРаботниковСгруппированные.ОплаченоЧасов,
   НачисленияРаботниковСгруппированные.Результат,
   НачисленияРаботниковСгруппированные.ПериодДействия,
   НачисленияРаботниковСгруппированные.Порядок,
   НачисленияРаботниковСгруппированные.Регистратор.*,
   НачисленияРаботниковСгруппированные.Баланс.*,
   НачисленияРаботниковСгруппированные.ПодразделениеОрганизации,
   НачисленияРаботниковСгруппированные.Сотрудник.*,
   НачисленияРаботниковСгруппированные.Должность}

На выходе в консоли СКД получается вот такой запрос (опять же его окончание):

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

СГРУППИРОВАТЬ ПО
   НачисленияРаботников.ВидДвижения,
   НачисленияРаботников.Организация,
   НачисленияРаботников.ПериодРегистрации,
   НачисленияРаботников.ВидРасчета,
   НачисленияРаботников.ОтработаноДней,
   НачисленияРаботников.ОтработаноЧасов,
   НачисленияРаботников.ОплаченоДней,
   НачисленияРаботников.ОплаченоЧасов,
   НачисленияРаботников.Результат,
   НачисленияРаботников.Порядок
;

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


Если этот запрос выполнить, вручную добавив в него Физлицо, то отчет сформируется правильно. Вопрос - где копать?
1 1Сергей
 
10.10.12
08:57
Учствует ли физлицо в группировках?
2 kotletka
 
10.10.12
08:57
настройка вывода, ты это поле выводишь в настройке? + глянь отбор, может у тебя стоит быстрый отбор и в нем ФизЛицо = ""
3 ixijixi
 
10.10.12
09:13
(1) не участвует
4 ixijixi
 
10.10.12
09:15
(2) отбор не стоит
5 ixijixi
 
10.10.12
09:17
+(2) что такое "настройка вывода"?
6 1Сергей
 
10.10.12
09:18
(3) дык, добавь
7 kotletka
 
10.10.12
09:33
(5)а где ты указываешь какие поля выводить в отчете и как они будут группироваться, вот там есть физлицо в виде поля/группировки?
8 ixijixi
 
10.10.12
09:43
(6) и (7) Добавил, теперь попадают все начисления, но теперь это не свод, а список начислений.
9 1Сергей
 
10.10.12
09:55
(8) тогда группируй в запросе, суммы суммируй
10 1Сергей
 
10.10.12
10:02
11 Bober
 
10.10.12
10:37
(0) В настройнах скд самого поля укажи, что физ. лицо обязательное.
12 ixijixi
 
10.10.12
11:19
(9) Переписал запрос, где суммируются суммы и дни. Не помогает
(11) Это где, не нашел...
13 ixijixi
 
10.10.12
11:20
(12) Нашел, сработало!!! Спасибо!