Имя: Пароль:
1C
1С v8
запрос
0 Саша80
 
20.11.12
15:37
Засада- есть регистры расчета Основные начисления и Дополнительные начисления, у них регистратор один-документ Перенос Данных, хочу оттуда вытащить суммы по каждому сотруднику. ВОт запрос:

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

возвращает пустое значение
1 Саша80
 
20.11.12
15:37
что делать забыл спросить? где ошибка?
2 LehhaK
 
20.11.12
15:38
(1) Соединить забыл
3 Саша80
 
20.11.12
15:41
ВЫБРАТЬ
   |    ДополнительныеНачисленияРаботниковОрганизаций.Результат КАК Результат,
   |    НДФЛИмущественныеВычетыФизлицОстаткиИОбороты.РазмерОборот КАК РазмерОборот,
   |    ОсновныеНачисленияРаботниковОрганизаций.Результат КАК Результат1,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Ссылка КАК ФизЛицоСсылка,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   |        ПО ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.НДФЛИмущественныеВычетыФизлиц.ОстаткиИОбороты(, , Регистратор, , ) КАК НДФЛИмущественныеВычетыФизлицОстаткиИОбороты
   |        ПО ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = НДФЛИмущественныеВычетыФизлицОстаткиИОбороты.ФизЛицо
   |ГДЕ
   |    ДополнительныеНачисленияРаботниковОрганизаций.Регистратор = &Док
   |    И НДФЛИмущественныеВычетыФизлицОстаткиИОбороты.Регистратор = &Док
   |    И ОсновныеНачисленияРаботниковОрганизаций.Регистратор = &Док
   |ИТОГИ
   |    СУММА(Результат),
   |    СУММА(РазмерОборот),
   |    СУММА(Результат1)
   |ПО
   |    ФизЛицоСсылка
4 Саша80
 
20.11.12
15:41
не канает все равно....
5 LehhaK
 
20.11.12
15:42
(4) надо полное соединение,ИМХО
6 Feunoir
 
20.11.12
15:44
(3) У тебя данные точно есть во всех трёх регистрах? Потому что текущий запрос вернёт пустой результат, если хотя бы в одном регистре нет данных.
7 Саша80
 
20.11.12
15:45
(6)-есть в документе то они отображаются
(5)-не канает все равно

ВЫБРАТЬ
   |    ДополнительныеНачисленияРаботниковОрганизаций.Результат КАК Результат,
   |    НДФЛИмущественныеВычетыФизлицОстаткиИОбороты.РазмерОборот КАК РазмерОборот,
   |    ОсновныеНачисленияРаботниковОрганизаций.Результат КАК Результат1,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Ссылка КАК ФизЛицоСсылка,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.НДФЛИмущественныеВычетыФизлиц.ОстаткиИОбороты(, , Регистратор, , ) КАК НДФЛИмущественныеВычетыФизлицОстаткиИОбороты
   |        ПО (ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = НДФЛИмущественныеВычетыФизлицОстаткиИОбороты.ФизЛицо)
   |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   |        ПО (ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо)
   |ГДЕ
   |    ДополнительныеНачисленияРаботниковОрганизаций.Регистратор = &Док
   |    И НДФЛИмущественныеВычетыФизлицОстаткиИОбороты.Регистратор = &Док
   |    И ОсновныеНачисленияРаботниковОрганизаций.Регистратор = &Док
8 zak555
 
20.11.12
15:45
объединяй
9 Саша80
 
20.11.12
15:46
а..все..догнал..всем спасибо, проморгал кое где)))
10 zak555
 
20.11.12
15:48
(9) ???
11 Саша80
 
20.11.12
15:48
(10)-в одном из регистров не было данных..сейчас смотрю
12 zak555
 
20.11.12
15:51
(11) см. в (8)
13 Саша80
 
26.11.12
08:47
такс..где то я ошибся все-таки....
14 Саша80
 
26.11.12
08:48
я так понимаю нужно собрать это все двумя запросами...чтобы двух колонок не было просто-ФАмилия и результат, так?
15 zak555
 
26.11.12
08:54
тебе нужны начисления по сотруднику ?
16 Саша80
 
26.11.12
08:59
ага, чтобы НДФЛ посчитать....
17 zak555
 
26.11.12
09:03
(16) НДФЛ разный бывает =)
18 Саша80
 
26.11.12
09:04
мне тупо 13% посчитать от доходов физлица
19 zak555
 
26.11.12
09:05
(18) с чего ты взял, что НДФЛ так считается ? =)
20 Саша80
 
26.11.12
09:08
ну это я так в общем))))))

ВЫБРАТЬ
| ОсновныеНачисленияРаботниковОрганизаций.Результат КАК Результат,
| ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
|
|объединить все
|
|ВЫБРАТЬ
| ДополнительныеНачисленияРаботниковОрганизаций.Результат КАК Результат,
|ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
|ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций

вот как сделал
21 zak555
 
26.11.12
09:08
а где период между ?
22 Саша80
 
26.11.12
09:08
так то (доход-удержания)*0,13))при условии что вили дохода облагаются
23 zak555
 
26.11.12
09:09
+ надо не по физЛицу, а по сотруднику
24 Саша80
 
26.11.12
09:09
какой период? у меня по регистратору а там за один месяц всего
25 Саша80
 
26.11.12
09:10
не..в этом регистре физлицо учитывается а не сотрудник
26 zak555
 
26.11.12
09:11
(25) у тебя не зуп ?
27 Саша80
 
26.11.12
09:13
зуп
28 zak555
 
26.11.12
09:16
+ там есть РР удержание
29 Саша80
 
26.11.12
09:17
ну да..там тоже физлицо стоит
30 zak555
 
26.11.12
09:17
там смотри с вой НДФЛ в РР удержания
31 Саша80
 
26.11.12
09:20
угу...разбираюсь уже потихоньку..там короче сведния о доходах общей суммой, а процент берется только с тех которые облагаются, так?
32 Саша80
 
26.11.12
09:48
все короче)))
33 Саша80
 
26.11.12
09:48
ВЫБРАТЬ
   |    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   |
   |СГРУППИРОВАТЬ ПО
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат),
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   |
   |СГРУППИРОВАТЬ ПО
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИТОГИ
   |    СУММА(Результат)
   |ПО
   |    ФизЛицоПредставление
34 Саша80
 
26.11.12
09:48
вот получил одной суммой начисления по двум регистрам
35 sidalexsandr
 
26.11.12
10:08
(34) |ВЫБРАТЬ
   |    СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат),
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление

Синоним КАК ФизЛицоПредставление не забыл втором запросе?
36 zak555
 
26.11.12
10:14
(34) можно это оставить как вложенным запрос
37 Саша80
 
26.11.12
10:36
ага
38 Саша80
 
26.11.12
10:36
слушайте а вот теперь как вычесть сумму удержаний?

ВЫБРАТЬ
   |    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   |
   |СГРУППИРОВАТЬ ПО
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат) КАк Результат,
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   |ОБЪЕДИНИТЬ ВСЕ
   |ВЫБРАТЬ
   |    СУММА(УдержанияОрганизаций.Результат) как результат(-1),
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.УдержанияОрганизаций КАК УдержанияОрганизаций
   |
   |СГРУППИРОВАТЬ ПО
   |    УдержанияОрганизаций.ФизЛицо.Представление
   |ИТОГИ
   |    СУММА(Результат)
   |ПО
   |    ФизЛицоПредставление
39 Саша80
 
26.11.12
10:37
я конечно понимаю что результат (-1) не канает но просто обозначил что его вычитать надо
40 Ёпрст
 
26.11.12
10:37
(35) оно там не нужно
41 Ёпрст
 
26.11.12
10:38
при юнион , алиясы нужны только на первый запрос.
42 Саша80
 
26.11.12
10:43
а как сминосовать?
43 Саша80
 
26.11.12
10:43
*сминусовать
44 zak555
 
26.11.12
10:47
- +
45 Саша80
 
26.11.12
10:58
пробую..не получается...

ВЫБРАТЬ
   |    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   |
   |СГРУППИРОВАТЬ ПО
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат),
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   |СГРУППИРОВАТЬ ПО
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ОБЪЕДИНИТЬ ВСЕ
   |ВЫБРАТЬ
   |    УдержанияРаботниковОрганизаций.ФизЛицо.Представление,
   |    Сумма(УдержанияРаботниковОрганизаций.Результат)
   |ИЗ
   |    РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций
   |   Сгруппировать по УдержанияРаботниковОрганизаций.ФизЛицо.Представление
   |ИТОГИ
   |    СУММА(Результат)
   |ПО
   |    ФизЛицоПредставление
46 zak555
 
26.11.12
10:59
|ВЫБРАТЬ
   |    УдержанияРаботниковОрганизаций.ФизЛицо.Представление,
   |    -Сумма(УдержанияРаботниковОрганизаций.Результат)
47 Саша80
 
26.11.12
10:59
вот что пишет
{Форма.Отчет.Форма(45)}: Ошибка при вызове метода контекста (Выполнить)
   Результат = Запрос.Выполнить();
по причине:
{(22, 2)}: Операция не разрешена в предложении "ИТОГИ"
<<?>>Сумма(УдержанияРаботниковОрганизаций.Результат*(-1))
48 Саша80
 
26.11.12
11:00
(46) и так тоже пробовал
49 zak555
 
26.11.12
11:01
-1 * Сумма(УдержанияРаботниковОрганизаций.Результат)
50 zak555
 
26.11.12
11:01
сумиируй в конце
51 Саша80
 
26.11.12
11:02
тоже пробовал-нет
52 Саша80
 
26.11.12
11:02
(50) при выводе что ли?
53 Саша80
 
26.11.12
11:02
она и без минуса не канает
54 zak555
 
26.11.12
11:08
ВЫБРАТЬ
   |    (ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    (ДополнительныеНачисленияРаботниковОрганизаций.Результат),
   |    ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление
   |ИЗ
   |    РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций

   |ОБЪЕДИНИТЬ ВСЕ
   |ВЫБРАТЬ
   |    УдержанияРаботниковОрганизаций.ФизЛицо.Представление,
   |    -1 * (УдержанияРаботниковОрганизаций.Результат)
   |ИЗ
   |    РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций
55 Саша80
 
26.11.12
11:52
(54)я так тоже делал но проблема в том что он мне возвращает по каждому сотруднику несколько строк, а нужно оснначисления+допначисления+удержания(одна строка)
56 Ёпрст
 
26.11.12
11:58
(55) сгруппируй результат, обернув все юнионы в подзапрос
57 dan4ik
 
26.11.12
12:10
(54)
58 dan4ik
 
26.11.12
12:11
(54)
ВЫБРАТЬ
   |    (ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
   |    ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
   |ИЗ
   |    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций

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

   |ОБЪЕДИНИТЬ ВСЕ
   |ВЫБРАТЬ
   |    УдержанияРаботниковОрганизаций.ФизЛицо.Представление,
   |    -1 * (УдержанияРаботниковОрганизаций.Результат)
   |ИЗ
   |    РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций
59 dan4ik
 
26.11.12
12:17
Вот если не ошибаюсь вот так сгруппирует в одну строку три результата:

ВЫБРАТЬ
ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
       (ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат1,
       NULL КАК Результат2,
       NULL КАК Результат3
Поместить врТаб
       
   ИЗ
       РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций

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

   ОБЪЕДИНИТЬ ВСЕ
   ВЫБРАТЬ
       УдержанияРаботниковОрганизаций.ФизЛицо.Представление,
       NULL,
       NULL,
       -1 * (УдержанияРаботниковОрганизаций.Результат)
   ИЗ
       РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций ;
       
       
выбрать
    _.ФизЛицоПредставление,
    МАКСИМУМ(_.Результат1) КАК Рез1,
    МАКСИМУМ(_.Результат2) КАК Рез2,
    МАКСИМУМ(_.Результат3) КАК Рез3
   
из
   врТаб КАК _
Сгруппировать по  _.ФизЛицоПредставление
60 Саша80
 
26.11.12
12:24
(59)-неа, ошибку выдает на результат1
61 dan4ik
 
26.11.12
12:26
ВЫБРАТЬ
ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Представление КАК ФизЛицоПредставление
       (ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат1,
       NULL КАК Результат2,
       NULL КАК Результат3
Поместить врТаб
       
   ИЗ
       РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций

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

   ОБЪЕДИНИТЬ ВСЕ
   ВЫБРАТЬ
       УдержанияРаботниковОрганизаций.ФизЛицо.Представление,
       NULL,
       NULL,
       -1 * (УдержанияРаботниковОрганизаций.Результат)
   ИЗ
       РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций ;
       
       
выбрать
    _.ФизЛицоПредставление,
    МАКСИМУМ(_.Результат1) КАК Рез1,
    МАКСИМУМ(_.Результат2) КАК Рез2,
    МАКСИМУМ(_.Результат3) КАК Рез3
   
из
   врТаб КАК _
Сгруппировать по  _.ФизЛицоПредставление
62 dan4ik
 
26.11.12
12:31
Короче по сути при объединении должно получиться 3 строчки потом из временной таблицы группируешь и получаешь в одну строку результат. а на что ругается?
63 Ёпрст
 
26.11.12
12:32
(61) и зачем ЭТО помещать во временную ?
64 dan4ik
 
26.11.12
12:35
просто так понятней потом будет, кто после будет переделывать что откуда) можно и сразу в объединениях сделать группировку...