|
Помогите с передачей данных в запрос, пожалуйста. УТ 11 | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
28.08.14
✎
13:05
|
Здравствуйте.
У меня есть Массив документов, которые могут быть трех разных видов. Мне нужно выбрать из него один документ с самой ранней датой. Хочу сделать это запросом. Можно ли передать массив так, чтобы выбор был именно из него, а не через соединение трех разных таблиц для каждого из видов документов с условием <НазваниеДокумента>.Ссылка в &МассивДокументов ? Подскажите, пожалуйста, рациональный способ. |
|||
1
Cube
28.08.14
✎
13:08
|
(0) Попробуй массив в ТЗ с типизированными колонками. ТЗ в запрос...
|
|||
2
vse_serjezno
28.08.14
✎
13:10
|
(1) так, а как тз передать?.. временную таблицу делать?..
я с ВТ, честно говоря, до этого не работала, поэтому спрашиваю. |
|||
3
Cube
28.08.14
✎
13:18
|
(2) О, девушка... И с фото... Ну, придется помогать))
Ну да, создавай временную таблицу, создавай в ней ТИПИЗИРОВАННУЮ колонку и делай ЗагрузитьКолонку(). Потом эту ТЗ в качестве параметра в запрос и в запросе с ней работай. |
|||
4
Cube
28.08.14
✎
13:19
|
Кстати, интересно, если отсортировать ТЗ, то может и мудрить больше не надо ничего? :)
|
|||
5
vse_serjezno
28.08.14
✎
13:22
|
(4) так тз будет содержать только документы... а мне же по дате документа сортировка нужна.
|
|||
6
Cube
28.08.14
✎
13:26
|
(5) Ладно, ща сам проверю)))
Эх доброта моя)) |
|||
7
Cube
28.08.14
✎
13:41
|
(5) Да, простая сортировка ТЗ сортирует сначала по типу документа, а потом уже по моменту времени...
Значит через запрос. Кстати ЗагрузитьКолонку() не подойдет, т.к. строк в новой ТЗ нет. Поэтому циклом массив в ТЗ переделывай. |
|||
8
Cube
28.08.14
✎
13:48
|
Так, я уже весь код написал и отладил))
Давай быстрей вопросы, а то у меня рабочий день через 14 минут кончается. |
|||
9
Cube
28.08.14
✎
13:58
|
Время вышло, дальше сама разберешься, надеюсь:
ТаблицаДокументов = Новый ТаблицаЗначений; ТаблицаДокументов.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.ЗарплатаКВыплатеОрганизаций, ДокументСсылка.ЗарплатаКВыплате, ДокументСсылка.РасходныйКассовыйОрдер")); Для Каждого СтрокаМассива Из МассивДокументов Цикл ТаблицаДокументов.Добавить().Документ = СтрокаМассива; КонецЦикла; Запрос = Новый Запрос("ВЫБРАТЬ | ТаблицаДокументов.Документ |ПОМЕСТИТЬ ВТ_Документы |ИЗ | &ТаблицаДокументов КАК ТаблицаДокументов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ ПЕРВЫЕ 1 | ВТ_Документы.Документ |ИЗ | ВТ_Документы КАК ВТ_Документы | |УПОРЯДОЧИТЬ ПО | ВТ_Документы.Документ |АВТОУПОРЯДОЧИВАНИЕ"); Запрос.УстановитьПараметр("ТаблицаДокументов", ТаблицаДокументов); Выборка = Запрос.Выполнить().Выбрать(); НужныйДокумент = ?(Выборка.Следующий(), Выборка.Документ, Неопределено); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |