|
v8: Запрос к табличной части документа. Помогите сделать оптимальней. | ☑ | ||
---|---|---|---|---|
0
dva1c
02.12.11
✎
08:17
|
В консоли проверил небольшой запрос.
ВЫБРАТЬ ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.Ссылка, ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.НомерСтроки, ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.Сотрудник, ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.ПервыйВидВремени1, ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.ПервыйВидВремени2 ИЗ Документ.ТабельУчетаРабочегоВремениОрганизации.ОтработанноеВремя КАК ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя ГДЕ ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.Ссылка = &Документ Это сделано для документа ТабельУчетаРабочегоВремениОрганизации и получения его таб. части. В этом документе ячейки именуются ПервыйВидВремени1, ПервыйВидВремени2 и т.д. В запросе для получения данных по ячейке "ПервыйВидВремени..." нужно перечислить явно: ПервыйВидВремени1, ПервыйВидВремени2 и т.д. или можно сделать как-то правильней? |
|||
1
dva1c
02.12.11
✎
08:19
|
Всего ячеек и, соответственно, "ПервыйВидВремени" в количестве 31.
|
|||
2
Rie
02.12.11
✎
08:20
|
(0) Можешь написать ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.*
|
|||
3
andrewks
02.12.11
✎
08:26
|
а не проще ли тогда ДокументОбъект вытянуть?
|
|||
4
dva1c
02.12.11
✎
08:52
|
(3) спасибо! этим путем и иду.
|
|||
5
dva1c
02.12.11
✎
08:53
|
+(4) просто для того, чтобы получить значение каждой(!) ячейки нужно обратьтся к ней по идентификатору. Или я не прав?
|
|||
6
Rie
02.12.11
✎
08:57
|
(5) _Где_ получить? И как это значение будешь использовать?
|
|||
7
dva1c
02.12.11
✎
09:00
|
(6) Готовлю внешнюю печатную форму для документа. В виде Табель-Т12. Т.к. данные все содержаться в документе, то и данные надо получать из документа.
|
|||
8
dva1c
02.12.11
✎
09:02
|
+(7) Есть у меня внешняя печатная форма "Табель Т-12", но она состоит из 2-х файлов: отчета и печатной формы.
|
|||
9
Aprobator
02.12.11
✎
09:03
|
(8) 2 файла для одной формы - это еще зачем?
|
|||
10
dva1c
02.12.11
✎
09:04
|
Т.к. в случае (8) используется куча документов (плюс еще и документы расчета), то задача стоит использование только тех данных, которые содержатся в документе Табель.
|
|||
11
dva1c
02.12.11
✎
09:05
|
(9) Данные получаются из отчета, как это реализовала сама 1С (печатная форма Т-13 встроенная).
|
|||
12
dva1c
02.12.11
✎
09:06
|
+(11) насколько я понял, 1С реализовала универсально )
|
|||
13
dva1c
02.12.11
✎
09:07
|
Работа ведется в ЗУП
|
|||
14
dva1c
02.12.11
✎
09:09
|
или проще сделать обходом таб. части с отбором и т.п.?
|
|||
15
Сильф
02.12.11
✎
09:11
|
Делаешь как в (2), потом, например, выгружаешь в таблицу:
Таблица = Запрос.Выполнить().Выгрузить(); Для каждого СтрокаТЗ из Таблица Цикл Для Номер = 1 По 31 Цикл Значение = СтрокаТЗ["ПервыйВидВремени" + Строка(Номер)]; КонецЦикла; КонецЦикла; |
|||
16
Сильф
02.12.11
✎
09:13
|
Ну и перед внутренним циклом обработать те колонки, которые без номера.
|
|||
17
dva1c
02.12.11
✎
09:16
|
(16) Спасибо! Делаю )
|
|||
18
dva1c
02.12.11
✎
09:16
|
(2) спасибо!
|
|||
19
Aprobator
02.12.11
✎
09:18
|
(2) хм, про такое не знал. Надо будет попробовать при случае.
|
|||
20
dva1c
02.12.11
✎
09:19
|
(19) все верно. "*" означает "все". т.е. все поля по нужной таблице
|
|||
21
dva1c
02.12.11
✎
09:23
|
+(20) и запрос стал выглядеть:
ВЫБРАТЬ ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.* ИЗ Документ.ТабельУчетаРабочегоВремениОрганизации.ОтработанноеВремя КАК ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя ГДЕ ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.Ссылка = &Документ Это здорово! Еще раз спасибо Rie |
|||
22
Aprobator
02.12.11
✎
09:47
|
(21) а млин, про * через точку я знал, Мне показалось что там типа ТабельУчетаРабочегоВремениОрганизацииОтработанноеВремя.ПервыйВидВремени* ))))
Хорошо выходные на носу. Отдохнуть явно пора ) |
|||
23
dva1c
02.12.11
✎
09:56
|
(22) шутишь наверное? )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |