Имя: Пароль:
1C
1С v8
Запрос - печ. форма ЗУП
0 Масянька
 
16.02.22
15:12
День добрый!
Вводные: Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.19.48), 1С:Предприятие 8.3 (8.3.19.1264).
Док-т "Работа в выходные и праздники": дописан (расширением) - в ТЧ добавлены 2 реквизита "Причины" и "ФИО замещаемого" + печ. форма служебной записки.
В служебке есть табличка: ФИО, Должность, Дата (работы), Причина, ФИО замещаемого.
При заполнении таблички "Причина" и "ФИО замещаемого" заполняется только (!!!) для последней даты.
Скрин печ. формы - https://ibb.co/6PcNNZF
Запрос (получает данные для вывода ТЧ):

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

По консоли - уже в первой таблице ВТДанныеДокументов - только последняя дата.
Что не так в запросе?
Спасибо.
1 Ёпрст
 
16.02.22
15:21
(0) вестимо условия запроса
2 Ёпрст
 
16.02.22
15:21
первого
3 Ёпрст
 
16.02.22
15:22
вот эту хрень заремь, для начала всю и гляди

  И (НЕ ВЫРАЗИТЬ(Сотрудники.Ссылка КАК Документ.РаботаВВыходныеИПраздничныеДни).ВремяВЧасах
    |                И НЕ Сотрудники.НеРаботал
    |            ИЛИ ВЫРАЗИТЬ(Сотрудники.Ссылка КАК Документ.РаботаВВыходныеИПраздничныеДни).ВремяВЧасах
    |                И Сотрудники.ОтработаноЧасов > 0)";
4 Ёпрст
 
16.02.22
15:23
и выразить там...вообще не в кассу
5 Масянька
 
16.02.22
15:25
(4) Полная хрень - https://ibb.co/7VddNkL
6 Масянька
 
16.02.22
15:34
+ (5) Там (в док-те) хитрая таблица: строка - сотрудник, несколько дат (проставляется время работы (именно, в те дни, когда работал)), причина, замещаемый.
7 Масянька
 
16.02.22
15:37
При таком запросе:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка КАК Ссылка,
    Сотрудники.Сотрудник КАК Сотрудник,
    Сотрудники.Дата КАК Дата,
    Сотрудники.НЛЭ_ФИОЗамещаемого КАК Замещаемый,
    Сотрудники.ОтработаноЧасов КАК ОтработаноЧасов,
    ВЫБОР
        КОГДА Сотрудники.ОтработаноЧасов > 0
            ТОГДА Сотрудники.НЛЭ_ПричиныОбоснования
        ИНАЧЕ "папазол"
    КОНЕЦ КАК Причина,
    Сотрудники.НеРаботал КАК НеРаботал
ПОМЕСТИТЬ ВТДанныеДокументов
ИЗ
    Документ.РаботаВВыходныеИПраздничныеДни.Сотрудники КАК Сотрудники
ГДЕ
    Сотрудники.Ссылка В(&МассивОбъектов)

//СГРУППИРОВАТЬ ПО
//    Сотрудники.Сотрудник,
//    Сотрудники.Ссылка.Дата,
//    Сотрудники.Ссылка,
//    Сотрудники.Дата,
//    Сотрудники.НЛЭ_ПричиныОбоснования,
//    Сотрудники.НЛЭ_ФИОЗамещаемого,
//    Сотрудники.НеРаботал,
//    Сотрудники.ОтработаноЧасов

выдает - https://ibb.co/N7yVDxv
8 Масянька
 
16.02.22
15:57
Если дата одна у всех - все абсолютно нормально и красиво.
9 Масянька
 
16.02.22
16:29
Такой вариант:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка КАК Ссылка,
    Сотрудники.Дата КАК Дата,
    Сотрудники.ОтработаноЧасов КАК ОтработаноЧасов,
    Сотрудники.НЛЭ_ПричиныОбоснования КАК Причина,
    Сотрудники.Сотрудник КАК Сотрудник,
    Сотрудники.НЛЭ_ФИОЗамещаемого КАК Замещаемый
ПОМЕСТИТЬ ВТДанныеДокументов
ИЗ
    Документ.РаботаВВыходныеИПраздничныеДни.Сотрудники КАК Сотрудники
ГДЕ
    Сотрудники.Ссылка В (&МассивОбъектов)
    И Сотрудники.ОтработаноЧасов > 0

https://ibb.co/z8GjjbQ
Те же ..., только в профиль...
В чем проблема?
В расширении?
10 ptiz
 
16.02.22
16:50
(9)  Сотрудники.Дата и Сотрудники.Ссылка.Дата - не перепутаны местами?
11 Масянька
 
16.02.22
16:56
(10) ?
12 ptiz
 
16.02.22
17:04
(11) в первом запросе
13 Масянька
 
16.02.22
17:06
(12) Сотрудники.Ссылка.Дата  - нет такого.
14 Масянька
 
16.02.22
17:07
+ (13) ОЙ... Я его уже грохнула.
Всё тоже самое.
15 Масянька
 
16.02.22
17:09
Вся фигня в хитрой ТЧ...
Сделала в запросе вывод номера строки = 20 штук показывает. А в документе вижу 4 (строки). А дат (в колонках) 5.
16 ptiz
 
16.02.22
17:11
(15) Скрин формы документа покажи
17 pechkin
 
16.02.22
17:11
(15) 5 дат и 1 причина?
ну вот он так хранит причину только в последней дате
18 Масянька
 
16.02.22
17:14
19 pechkin
 
16.02.22
17:16
придется тогда делать отдельную вт с причиначи и соединять с тч документа
20 pechkin
 
16.02.22
17:16
Разработчики зупа наверно решили место чутка съэкономить
21 Масянька
 
16.02.22
17:17
+(19) Результат запроса - https://ibb.co/b5DWLnF
Просто вывод ТЧ (в запросе).
22 ptiz
 
16.02.22
17:18
(21) см. (17)
23 pechkin
 
16.02.22
17:18
(21) странно конечно они место экномят. здесь экономим, а тут все пишем.
Просто косяк значит
24 Масянька
 
16.02.22
17:22
(23) Непереводимая игра слов с использованием местных идиоматических выражений (С)
Приме того, что "красота - страшная сила" (С)
25 Масянька
 
16.02.22
17:23
(23) Да нет... Не косяк.
Одна дата - одна строка (там, внутри). А тут (на форме, внешне): одна строка - пять дат.
26 ptiz
 
16.02.22
17:25
(25) Собирай запросом причины отдельно от дат и потом присоединяй.
27 Масянька
 
16.02.22
17:25
(26) Отдельно мухи, отдельно котлеты (С)
Да, понял я...
28 Масянька
 
16.02.22
17:26
Спасибо!
29 Ёпрст
 
16.02.22
21:58
Чорт, всё пропустил, но судя по (21), в ЗУП-е те еще планокуры
30 Масянька
 
17.02.22
08:32
(29) Ага.
Я вот думаю, как правильно (хотя, в данном случае - вопрос "что правильно" риторический):
1. при записи заполнять все строчки.
2. при записи заполнять правильные строчки.
3. обрабатывать при выводе в печ. форму.
31 Мимохожий Однако
 
17.02.22
08:39
Правильно, все пункты
32 Масянька
 
17.02.22
08:51
(31) Грешно смеяться над больными людьми (С)
33 Масянька
 
17.02.22
10:23
Это дичь какая-то...
В расширение добавила реквизит (из конфигурации) "ОтработаноЧасов" + ПередЗаписьюНаСервере.
При попытке записать пишет "поле объекта не обнаружено "ОтработаноЧасов"."
А сотрудник (тоже реквизит конфы, добавлен в расширение) - доступен.
Почему????