Имя: Пароль:
1C
 
Прошу помочь написать запрос.
0 Radion
 
27.09.14
21:05
Суть такая, УТ 10.3. Нужно отобрать документы РеализацииТиУ, за период. Но отбор должен состоять из 3 таблиц, чтобы после их удобно было по порядку вывести на печать. Как делать через временные таблицы? А потом как их перебирать? Спасибо.
1 Адинэснег
 
27.09.14
21:06
чито?
2 Адинэснег
 
27.09.14
21:07
пример давай
3 2S
 
27.09.14
21:08
Хрень какая-то. Объедини три запроса в одном и делай что хочешь потом
4 Крошка Ру
 
27.09.14
21:12
(0)Забыл добавить "я джва года жду такой запрос". А так, да, похоже получилось.
5 Адинэснег
 
27.09.14
21:14
что за 3 таблицы интересно были ... :-D
6 zippygrill
 
27.09.14
21:14
(0) ровно никуя непонятно
7 Адинэснег
 
27.09.14
21:15
+(5)из которых отбор должен состоять :)))
8 Radion
 
27.09.14
21:16
(2) к примеру - надо выбрать за период док-ты РеализацииТиУ и вывести их на печать. Т.е. вначале выводим к примеру документы с условием по складу "Основной", во втором случае склад тоже "Основной", но сумма заказа > 5000 руб., и третье это склад "Вспомогательный", но сумма между 2000руб. и 5000 руб.
9 Адинэснег
 
27.09.14
21:17
(4) ОБЪЕДИНИТЬ ВСЕ
10 zippygrill
 
27.09.14
21:18
(8) а вот оно как. Может с отборами поиграться надо? )
11 Radion
 
27.09.14
21:20
(10) да запрос простой. я могу просто получить к примеру одну таблицу по одному запросу. А вот как это сделать красиво, все в одном запросе, может как то в запросе их отсортировать по условию, чтобы потом получить ТЗ и просто вывести на печать?
12 Адинэснег
 
27.09.14
21:22
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Дата КАК Дата
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Склад = &СкладОсновной
    И РеализацияТоваровУслуг.Дата >= &ДатаНач
    И РеализацияТоваровУслуг.Дата <= &ДатаКон
    И РеализацияТоваровУслуг.СуммаДокумента > 5000

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Дата
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Дата >= &ДатаНач
    И РеализацияТоваровУслуг.Дата <= &ДатаКон
    И РеализацияТоваровУслуг.СуммаДокумента >= 2000
    И РеализацияТоваровУслуг.СуммаДокумента <= 5000
    И РеализацияТоваровУслуг.Склад = &СкладОсновной

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Дата
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Дата >= &ДатаНач
    И РеализацияТоваровУслуг.Дата <= &ДатаКон
    И РеализацияТоваровУслуг.Склад = &СкладВспомогательный

УПОРЯДОЧИТЬ ПО
    Дата
13 Radion
 
27.09.14
21:28
(12) Спасибо!, я тоже так сделал. Но как мне корректно вывести на печать? Т.е. мне нужно вначале вывести первый блок запроса (документы с первым условием, затем 2 и 3)? Может сделать как-то группировку?
14 Radion
 
27.09.14
21:29
(12) к примеру я получил ТЗ, с моими документами. В ней документы по всем 3-м условиям, как разбить и вывести документы по 1-му условию, затем 2-му и 3-му?
15 zippygrill
 
27.09.14
21:33
(14) НайтиСтроки() или Найти()
16 Radion
 
27.09.14
21:37
(15)т.е.? ну вот выбрал я документы. Все они в одной ТЗ. Как мне пометить документы 1 условия, затем 2 и 3 ???
17 Grreyka
 
27.09.14
21:45
(16) Добавь в каждом запросе текстовое поле. В первом запросе напиши "1", во втором "2" и т.д. И потом делай по нему группировку или упорядочивание.
18 zippygrill
 
27.09.14
21:46
(16)
Предварительно для каждого запроса добавь всп. поле КолонкаТ1 с значениями "Т1", "Т2", "Т3".
СтруктураОтбора = Новый Структура();
СтруктураОтбора.Вставить();
м1 = ТЗ.НайтиСтроки("КолонкаТ1", "Т1");
м2 = ТЗ.НайтиСтроки("КолонкаТ1", "Т2");
м3 = ТЗ.НайтиСтроки("КолонкаТ1", "Т3");

Перевибрай все массивы и в макет.
19 Radion
 
27.09.14
21:53
(18) епта точно, просто так. Спасибо.
20 Адинэснег
 
27.09.14
22:47
(13) Итоги и вывод по группировкам
21 Адинэснег
 
27.09.14
22:48
НайтиСТроки, да еще и без индекса - тормоза
22 Адинэснег
 
27.09.14
22:56
Запрос = Новый Запрос("ВЫБРАТЬ
                            |    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
                            |    РеализацияТоваровУслуг.Дата КАК Дата,
                            |    ""Блок1"" КАК Блок
                            |ИЗ
                            |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                            |ГДЕ
                            |    РеализацияТоваровУслуг.Склад = &СкладОсновной
                            |    И РеализацияТоваровУслуг.Дата >= &ДатаНач
                            |    И РеализацияТоваровУслуг.Дата <= &ДатаКон
                            |    И РеализацияТоваровУслуг.СуммаДокумента > 5000

                            |ОБЪЕДИНИТЬ ВСЕ

                            |ВЫБРАТЬ
                            |    РеализацияТоваровУслуг.Ссылка,
                            |    РеализацияТоваровУслуг.Дата,
                            |    ""Блок2""
                            |ИЗ
                            |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                            |ГДЕ
                            |    РеализацияТоваровУслуг.Дата >= &ДатаНач
                            |    И РеализацияТоваровУслуг.Дата <= &ДатаКон
                            |    И РеализацияТоваровУслуг.СуммаДокумента >= 2000
                            |    И РеализацияТоваровУслуг.СуммаДокумента <= 5000
                            |    И РеализацияТоваровУслуг.Склад = &СкладОсновной

                            |ОБЪЕДИНИТЬ ВСЕ

                            |ВЫБРАТЬ
                            |    РеализацияТоваровУслуг.Ссылка,
                            |    РеализацияТоваровУслуг.Дата,
                            |    ""Блок3""
                            |ИЗ
                            |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                            |ГДЕ
                            |    РеализацияТоваровУслуг.Дата >= &ДатаНач
                            |    И РеализацияТоваровУслуг.Дата <= &ДатаКон
                            |    И РеализацияТоваровУслуг.Склад = &СкладВспомогательный

                            |УПОРЯДОЧИТЬ ПО
                            |    Блок,
                            |    Дата
                            |ИТОГИ
                            |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Ссылка)
                            |ПО
                            |    Блок");
                                
    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);                                
    Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
    Запрос.УстановитьПараметр("СкладОсновной", СкладОсновной);
    Запрос.УстановитьПараметр("СкладВспомогательный", СкладВспомогательный);
    
    ВыборкаБлоков = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаБлоков.Следующий() Цикл
        
        Сообщить("Печать блока " + ВыборкаБлоков.Блок);
        ВыборкаДокументов = ВыборкаБлоков.Выбрать();
        Пока ВыборкаДокументов.Следующий() Цикл
            ДокОб = ВыборкаДокументов.ПолучитьОбъект();
            ДокОб.Печать("ТОРГ12",1,Истина);
        КонецЦикла;
        
    КонецЦикла;


Зы. Бабки пополам
23 EvgeniuXP
 
27.09.14
23:30
че не понятно:
Временная таблица 1 - пошла печать
Временная таблица 2 - пошла печать
Временная таблица 3 - пошла печать

ежу понятно, даже мне
24 EvgeniuXP
 
27.09.14
23:32
насмотрятся порнороликов - потом каша в голове.
Независимо от того, куда вы едете — это в гору и против ветра!