Имя: Пароль:
1C
1С v8
Полное соединение не работает
,
0 Coole
 
15.12.15
18:00
Здравствуйте!
Что не получилось
ВЫБРАТЬ
    ЕСТЬNULL(ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник, ОплатаСверхурочныхЧасовНачисления.Сотрудник) КАК Сотрудник,
    ЕСТЬNULL(ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.ДатаВыхода, ОплатаСверхурочныхЧасовНачисления.ДатаВыхода) КАК ДатаВыхода,
    ЕСТЬNULL(ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Размер, ОплатаСверхурочныхЧасовНачисления.Размер) КАК Размер,
    ЕСТЬNULL(ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.ОтработаноЧасов, ОплатаСверхурочныхЧасовНачисления.ЧасовПолуторных) КАК Часы1Значение,
    ЕСТЬNULL(ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Результат, ОплатаСверхурочныхЧасовНачисления.Результат) КАК Результат,
    ЕСТЬNULL(ОплатаСверхурочныхЧасовНачисления.ЧасовДвойных, 0) КАК Часы2Значение
ИЗ
    Документ.ОплатаСверхурочныхЧасов.Начисления КАК ОплатаСверхурочныхЧасовНачисления
        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОплатаПраздничныхИВыходныхДнейОрганизаций.Начисления КАК ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления
        ПО ОплатаСверхурочныхЧасовНачисления.Сотрудник = ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник
ГДЕ
    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.Проведен = &Проведен
    И ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.Организация = &Организация
    И ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.Дата МЕЖДУ &НачалоОтчета И &КонецОтчета
    И ОплатаСверхурочныхЧасовНачисления.Ссылка.Дата МЕЖДУ &НачалоОтчета И &КонецОтчета
    И ОплатаСверхурочныхЧасовНачисления.Ссылка.Проведен = &Проведен
    И ОплатаСверхурочныхЧасовНачисления.Ссылка.Организация = &Организация

Получается, что на каждую запись в ОплатеПраздничныхИВыходныхДней берет все записи из ОплатыСверхурочныхЧасов по одному и тому же сотруднику.
Надо получить в одной таблице все записи из Праздничных и все из Выходных. Подскажите пожалуйста.
1 Господин ПЖ
 
15.12.15
18:02
ты условиями из полного сделал внутреннее
2 viktor_vv
 
15.12.15
18:04
Сделай объединением
3 viktor_vv
 
15.12.15
18:07
(2) + И сгруппируй с суммированием полей размер , результат , часы.
4 Coole
 
16.12.15
00:42
Большое спасибо, получилось.
"ВЫБРАТЬ
        |    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник КАК Сотрудник,
        |    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.ДатаВыхода КАК ВыходДата,
        |    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Размер КАК РазмерЧаса,
        |    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.ОтработаноЧасов КАК ОтработаноПраздники,
        |    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Результат КАК Результат,
        |    NULL КАК Отработано15,
        |    NULL КАК Отработано20
        |ИЗ
        |    Документ.ОплатаПраздничныхИВыходныхДнейОрганизаций.Начисления КАК ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления
        |ГДЕ
        |    ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.Проведен = ЛОЖЬ
        |    И ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.Организация = &Организация
        |    И ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.Дата МЕЖДУ &НачалоОтчета И &КонецОтчета
        |    И ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Ссылка.ПометкаУдаления = ЛОЖЬ
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    ОплатаСверхурочныхЧасовНачисления.Сотрудник,
        |    ОплатаСверхурочныхЧасовНачисления.ДатаВыхода,
        |    ОплатаСверхурочныхЧасовНачисления.Размер,
        |    NULL,
        |    ОплатаСверхурочныхЧасовНачисления.Результат,
        |    ОплатаСверхурочныхЧасовНачисления.ЧасовПолуторных,
        |    ОплатаСверхурочныхЧасовНачисления.ЧасовДвойных
        |ИЗ
        |    Документ.ОплатаСверхурочныхЧасов.Начисления КАК ОплатаСверхурочныхЧасовНачисления
        |ГДЕ
        |    ОплатаСверхурочныхЧасовНачисления.Ссылка.ПометкаУдаления = ЛОЖЬ
        |    И ОплатаСверхурочныхЧасовНачисления.Ссылка.Проведен = ЛОЖЬ
        |    И ОплатаСверхурочныхЧасовНачисления.Ссылка.Дата МЕЖДУ &НачалоОтчета И &КонецОтчета
        |    И ОплатаСверхурочныхЧасовНачисления.Ссылка.Организация = &Организация
        |
        |УПОРЯДОЧИТЬ ПО
        |    Сотрудник,
        |    ВыходДата
        |ИТОГИ
        |    СУММА(Результат)
        |ПО
        |    Сотрудник";
5 Coole
 
16.12.15
00:43
Только при выводе
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;

Сотрудника выдает, а результирующую сумму по нему нет(
6 PCcomCat
 
16.12.15
00:54
(5) Не сгруппировал!
7 PCcomCat
 
16.12.15
00:56
Свою выборку запихни во вложенную таблицу, из нее сделай выборку своих полей и сгруппируй по сотруднику как в (3).
8 Coole
 
16.12.15
01:18
Всё, как то получилось.
*Профиль уже не принято смотреть?
9 cw014
 
16.12.15
07:21
ВЫБОР КОГДА ОплатаСверхурочныхЧасовНачисления.Ссылка.Дата ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ОплатаСверхурочныхЧасовНачисления.Ссылка.Дата МЕЖДУ &НачалоОтчета И &КонецОтчета КОНЕЦ - как то так можно еще
10 viktor_vv
 
16.12.15
08:50
(8) Отличный профиль :).
11 Coole
 
16.12.15
10:47
(10) это конечно, лет 100 назад

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

Запрос.УстановитьПараметр("Работник", Сотрудник);

а все ранво по всем...
чо не так то?!
12 Coole
 
16.12.15
10:48
Сотрудник на форме задается в поле задается Тип значения - ссылка спр СотрудникиОрганизации
13 Coole
 
16.12.15
10:51
если что, то по Сверхурочным сделано аналогично, просто не стала полностью приводить
14 sapphire
 
16.12.15
10:54
(13)
И ВЫБОР
        |   КОГДА &Работник=ЗНАЧЕНИЕ(Справочник.СотрудникиОрганизации.ПустаяСсылка) ТОГДА ИСТИНА
        |   ИНАЧЕ ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник = &Работник
          |      КОНЕЦ
15 Coole
 
16.12.15
11:31
не помогло
16 viktor_vv
 
16.12.15
11:34
(15) Не верю :). Точно не составной тип значения ? Хотя для составного (11) работало бы .
17 viktor_vv
 
16.12.15
11:36
(16) + Хотя судя по (13) "все ранво по всем" не в этом условии дело. При таком условии наоборот пусто было бы, точнее выполнялось бы условие ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник = &Работник
18 viktor_vv
 
16.12.15
11:41
Или попробуй так на всякий случай

Запрос.УстановитьПараметр("Работник", Сотрудник);
Запрос.УстановитьПараметр("ПоВсем", НЕ ЗначениеЗаполнено(Сотрудник));

И ВЫБОР
        |   КОГДА &ПоВсем ТОГДА ИСТИНА
        |   ИНАЧЕ ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник = &Работник
          |      КОНЕЦ
19 viktor_vv
 
16.12.15
11:43
Так красивее будет

И (&ПоВсем или ОплатаПраздничныхИВыходныхДнейОрганизацийНачисления.Сотрудник = &Работник)
20 Coole
 
16.12.15
13:03
(18) да, сработало, спасибо.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший