Имя: Пароль:
1C
1С v8
Запрос к разным табличным частям одного документа
0 Max_Fokin
 
02.09.16
16:24
Доброго времени суток.
Подскажите
Есть документ Выработка
В нем 2 табличных части
1 Выработка
2 Сотрудник
В тч выработка может быть несколько записей
В ТЧ сотрудник 1 запись
могу ли я одним запросом получить данные из обоих тч?
1 Dmitrii
 
гуру
02.09.16
16:25
(0) Да
2 Горогуля
 
02.09.16
16:25
разрешаю
3 Max_Fokin
 
02.09.16
16:25
каким способом ?
вложенным запросом ?
4 Горогуля
 
02.09.16
16:26
а какой сакральный смысл имеет ТЧ с одной строкой?
5 Горогуля
 
02.09.16
16:26
(3) способом ИЗ
6 Max_Fokin
 
02.09.16
16:28
документ сдельный наряд, выработка заносится на одного сотрудника
7 Max_Fokin
 
02.09.16
16:29
Запрос.Текст =
        "ВЫБРАТЬ
        |    СдельныйНарядВыработка.ТехнологическаяОперация КАК ТехнологическаяОперация,
        |    СдельныйНарядВыработка.Количество,
        |    СдельныйНарядВыработка.Ссылка.Номер
        |ИЗ
        |    Документ.СдельныйНаряд.Выработка КАК СдельныйНарядВыработка
        |ГДЕ
        |    СдельныйНарядВыработка.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
        |    И СдельныйНарядВыработка.Ссылка.Подразделение = &Лущ
        |    И НЕ СдельныйНарядВыработка.Ссылка.ПометкаУдаления
        |    И СдельныйНарядВыработка.ТехнологическаяОперация В ИЕРАРХИИ(&ТехОП)
        |    И СдельныйНарядВыработка.Количество > 0
        |    И НЕ СдельныйНарядВыработка.ТехнологическаяОперация = &Профил
        |
        |СГРУППИРОВАТЬ ПО
        |    СдельныйНарядВыработка.ТехнологическаяОперация,
        |    СдельныйНарядВыработка.Количество,
        |    СдельныйНарядВыработка.Ссылка.Номер
        |
        |УПОРЯДОЧИТЬ ПО
        |    ТехнологическаяОперация";
8 Горогуля
 
02.09.16
16:29
(6) сотрудник просится в шапку. или в ТЧ про выработку
9 Dmitrii
 
гуру
02.09.16
16:30
Берете бумагу. Рисуете план запроса. (это такая таблица, какую вы хотите получить на выходе).
В плане подписываете поля, источники (откуда эти поля взялись), условия, связи (если таблиц-источников больше чем одна). Всё. Текст запроса фактически готов. Можно подходить к компьютеру и запускать 1С.
10 Горогуля
 
02.09.16
16:30
(7) молодец
11 Max_Fokin
 
02.09.16
16:31
я выбираю из определенных сдельных нарядов, в других несколько сотрудников
12 Горогуля
 
02.09.16
16:32
(11) запросу пофиг. бумажку взял?
13 Max_Fokin
 
02.09.16
16:36
я знаю откуда какие данные попадают в запрос, я не могу понять как собрать воедино
нужно ли делать вложенный запрос а потом объединять по ссылке на документ либо это всё сделать лучше в одном запросе
14 Горогуля
 
02.09.16
16:37
это всё сделать лучше в одном запросе. но только после того, как поймёшь, что хочешь иметь на выходе
15 Max_Fokin
 
02.09.16
16:40
собрал всё в кучу получилась каша, выработка попадает какая нужна, а сотрудники лезут из других сдельных нарядов
16 Max_Fokin
 
02.09.16
16:41
Запрос.Текст =
        "ВЫБРАТЬ
        |    СдельныйНарядВыработка.ТехнологическаяОперация КАК ТехнологическаяОперация,
        |    СУММА(СдельныйНарядВыработка.Количество) КАК Количество,
        |    СдельныйНарядВыработка.Ссылка.Номер,
        |    СдельныйНарядИсполнители.Сотрудник,
        |    СУММА(СдельныйНарядИсполнители.ОтработаноЧасов) КАК ОтработаноЧасов
        |ИЗ
        |    Документ.СдельныйНаряд.Выработка КАК СдельныйНарядВыработка,
        |    Документ.СдельныйНаряд.Исполнители КАК СдельныйНарядИсполнители
        |ГДЕ
        |    СдельныйНарядВыработка.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
        |    И СдельныйНарядВыработка.Ссылка.Подразделение = &Лущ
        |    И НЕ СдельныйНарядВыработка.Ссылка.ПометкаУдаления
        |    И СдельныйНарядВыработка.ТехнологическаяОперация В ИЕРАРХИИ(&ТехОП)
        |    И СдельныйНарядВыработка.Количество > 0
        |    И НЕ СдельныйНарядВыработка.ТехнологическаяОперация = &Профил
        |
        |СГРУППИРОВАТЬ ПО
        |    СдельныйНарядВыработка.ТехнологическаяОперация,
        |    СдельныйНарядВыработка.Ссылка.Номер,
        |    СдельныйНарядИсполнители.Сотрудник
        |
        |УПОРЯДОЧИТЬ ПО
        |    ТехнологическаяОперация";
17 Горогуля
 
02.09.16
16:42
(15) а должны лезть откуда?
18 youalex
 
02.09.16
16:42
(15) соединение по ссылка
19 Max_Fokin
 
02.09.16
16:43
нужна строка
сотрудник такой то часов 10 и колво по тех операциям, а сами тех операции будут заколовком колонки
20 Горогуля
 
02.09.16
16:44
кстати, за запрос к документам в приличном обществе принято называть автора разными словами
21 Горогуля
 
02.09.16
16:44
(19) а это ты уже запросом не получишь
22 Max_Fokin
 
02.09.16
16:46
либо одни запросом выработку, и номер документа, а сотрудников перебором тз по номеру документа ?
23 Горогуля
 
02.09.16
16:47
(22) либо объяснить это всё СКДе
24 CountR
 
02.09.16
16:49
В ТЧ Сотрудник всегда одна запись? Если введено более 1го сотрудника, то как между ними распределяется выработка?
25 Max_Fokin
 
02.09.16
16:51
в тч сотрудник одна запись
26 CountR
 
02.09.16
16:54
Необходимо добавить в поле Таблицы конструктора запроса обе ТЧ, выбрать из них необходимые поля и заполнить вкладку Связи - сделать связь по полю Ссылка. Соединение должно быть полное - т.е. галочки Все поля должны быть установлены.
Потестировать в консоли запросов.
27 lubitelxml
 
02.09.16
16:54
(25) зачем одна запись в таблице? Вынеси его в реквизит шапки документа
28 Max_Fokin
 
02.09.16
17:01
CountR Спасибо , всё получилось
29 CountR
 
02.09.16
17:02
велкам ;)
30 Chameleon1980
 
02.09.16
17:10
еще бывает такое типа ключ связи (зависит от конфы и специфики)

тогда связи можно дополнить (если вдруг так нужно) по ключу помимо по ссылке
31 Max_Fokin
 
02.09.16
17:16
Задам ещё вопрос, допустим всё так же но сотрудников будет несколько то и выработка делится пропорционально колву, как тут поступить?
32 Горогуля
 
02.09.16
17:17
(31) обходить и считать
33 CountR
 
02.09.16
17:23
(31) Через группировку делается. При этом функцией группировки для выработки будет Сумма, а для сотрудников - Количество различных. Далее сумма выработки делится на количество сотрудников - и получаем сумму на одного сотрудника.
Можно сделать в рамках одной выборки, либо разбить на два этапа, через временную таблицу.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший