![]() |
|
помогите разобраться | ☑ | ||
---|---|---|---|---|
0
dimogen
25.03.12
✎
22:15
|
помогите разобраться с двумя запросами, есть один запрос и второй, мне нужно объединить их в один и в итоге чтобы получилась разница в сумме, то есть сумма = суммаприхода - суммарасхода в один день по одной кассе. вот текст запроса:
ВЫБРАТЬ ОтчетККМ.Ссылка, ОтчетККМ.ПометкаУдаления, ОтчетККМ.Номер, ОтчетККМ.Дата КАК Дата1, ОтчетККМ.Проведен, ОтчетККМ.Касса, ОтчетККМ.Склад, ОтчетККМ.Скидка, СУММА(ОтчетККМ.СуммаДокумента) КАК СуммаПрихода ИЗ Документ.ОтчетККМ КАК ОтчетККМ СГРУППИРОВАТЬ ПО ОтчетККМ.Ссылка, ОтчетККМ.Дата, ОтчетККМ.Номер, ОтчетККМ.Касса, ОтчетККМ.Склад, ОтчетККМ.Скидка, ОтчетККМ.СуммаДокумента ОБЪЕДИНИТЬ ВЫБРАТЬ ОтчетККМВозврат.Ссылка, ОтчетККМВозврат.ПометкаУдаления, ОтчетККМВозврат.Номер, ОтчетККМВозврат.Дата КАК Дата2, ОтчетККМВозврат.Проведен, ОтчетККМВозврат.Касса, ОтчетККМВозврат.Склад, ОтчетККМВозврат.Скидка, СУММА(ОтчетККМВозврат.СуммаДокумента) КАК СуммаРасхода ИЗ Документ.ОтчетККМВозврат КАК ОтчетККМВозврат СГРУППИРОВАТЬ ПО ОтчетККМВозврат.Ссылка, ОтчетККМВозврат.Дата, ОтчетККМВозврат.Номер, ОтчетККМВозврат.Касса, ОтчетККМВозврат.Склад, ОтчетККМВозврат.Скидка, ОтчетККМВозврат.СуммаДокумента |
|||
1
andrewks
25.03.12
✎
22:19
|
ну и каша
|
|||
2
a_alenkin
25.03.12
✎
22:20
|
Нормальные пацаны запросов по таблицам документов не делают
|
|||
3
GROOVY
25.03.12
✎
22:24
|
Запрос писец.
ВЫБРАТЬ Касса, Склад, Скидка, СУММА(СуммаДокумента) ИЗ (ВЫБРАТЬ ОтчетККМ.Касса, ОтчетККМ.Склад, ОтчетККМ.Скидка, СУММА(ОтчетККМ.СуммаДокумента) КАК СуммаДокумента ИЗ Документ.ОтчетККМ КАК ОтчетККМ СГРУППИРОВАТЬ ПО ОтчетККМ.Касса, ОтчетККМ.Склад, ОтчетККМ.Скидка ОБЪЕДИНИТЬ ВЫБРАТЬ ОтчетККМВозврат.Касса, ОтчетККМВозврат.Склад, ОтчетККМВозврат.Скидка, СУММА(-ОтчетККМВозврат.СуммаДокумента) ИЗ Документ.ОтчетККМВозврат КАК ОтчетККМВозврат СГРУППИРОВАТЬ ПО ОтчетККМВозврат.Касса, ОтчетККМВозврат.Склад, ОтчетККМВозврат.Скидка) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО Касса, Склад, Скидка |
|||
4
GROOVY
25.03.12
✎
22:25
|
Собстно внутри можно не группировать.
|
|||
5
andrewks
25.03.12
✎
22:27
|
(3) а нафига вообще вложенный запрос?
|
|||
6
dimogen
25.03.12
✎
22:47
|
это запросы на выгрузку файла в txt, если по 1 запросу отдельно то получается просто 2 txt с данными, а мне в итоге надо 1 с подсчитаной разницой в сумме по одной кассе за один день
|
|||
7
dimogen
25.03.12
✎
22:51
|
вставил запрос от GROOVY у меня ссылается на ошибку в этой строке после запроса Если Выборка.Проведен Тогда
|
|||
8
БибиГон
25.03.12
✎
22:55
|
(7) значит не так написал. :)
|
|||
9
Deon
25.03.12
✎
22:57
|
(7) Дык это от того, батенька, что в запросе от глубокоуважаемого господина Груви нет поля Проведен.
|
|||
10
dimogen
25.03.12
✎
23:05
|
за запрос спасибо. это понятно, что у него нет проведен и в моем запросе не было. и как мне исправить эту ошибку?
|
|||
11
dimogen
25.03.12
✎
23:06
|
а еще один вопрос, как сделать чтобы подсчитать итоговую сумму по кассе за один день?
|
|||
12
Deon
25.03.12
✎
23:11
|
(10) Эт ты, батенька, паришь, в твоем запросе поле "Проведен" есть.
(11) Я думаю группровочка, скажем, по дате тебя спасет. (По дате, приведенной к началу дня, к примеру) |
|||
13
dimogen
25.03.12
✎
23:32
|
Deon, спасибо, но видимо слишком мало опыта в этом, понимать понимаю, а на практике еще не совсем получается
|
|||
14
dimogen
26.03.12
✎
10:16
|
посмотри пожалуйста текст обработки, подскажите почему у меня не высчитывается суммадок правильно и загружается в txt файл только 1 строка. вот текст:
Процедура Выгрузить(Кнопка) Перем Текст, Запрос, ИмяФайла; Если флОтчетККМ Тогда Если ЗначениеЗаполнено(ВыбКасса) Тогда Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | ОтчетККМ.Номер, | ОтчетККМ.Дата КАК Дата, | ОтчетККМ.Касса, | ОтчетККМ.Склад, | ОтчетККМ.Скидка, | ОтчетККМ.СуммаДокумента |ИЗ | Документ.ОтчетККМ КАК ОтчетККМ |ГДЕ | (ОтчетККМ.Дата МЕЖДУ &ДатаНач И &ДатаКон) И | (ОтчетККМ.Касса = &Касса) | |СГРУППИРОВАТЬ ПО | ОтчетККМ.Дата, | ОтчетККМ.Номер, | ОтчетККМ.Касса, | ОтчетККМ.Склад, | ОтчетККМ.Скидка | |УПОРЯДОЧИТЬ ПО | Дата, Касса"; Запрос1.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач)); Запрос1.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон)); Запрос1.УстановитьПараметр("Касса", ВыбКасса); Результат1 = Запрос1.Выполнить(); Запрос2 = Новый Запрос; Запрос2.Текст = "ВЫБРАТЬ | ОтчетККМВозврат.Номер, | ОтчетККМВозврат.Дата КАК Дата, | ОтчетККМВозврат.Касса, | ОтчетККМВозврат.Склад, | ОтчетККМВозврат.Скидка, | ОтчетККМВозврат.СуммаДокумента |ИЗ | Документ.ОтчетККМВозврат КАК ОтчетККМВозврат |ГДЕ | (ОтчетККМВозврат.Дата МЕЖДУ &ДатаНач И &ДатаКон) И | (ОтчетККМВозврат.Касса = &Касса) | |СГРУППИРОВАТЬ ПО | ОтчетККМВозврат.Дата, | ОтчетККМВозврат.Номер, | ОтчетККМВозврат.Касса, | ОтчетККМВозврат.Склад, | ОтчетККМВозврат.Скидка | |УПОРЯДОЧИТЬ ПО | Дата, Касса"; Запрос2.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач)); Запрос2.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон)); Запрос2.УстановитьПараметр("Касса", ВыбКасса); Результат2 = Запрос2.Выполнить(); Если Результат1.Пустой() Тогда Сообщить("Данных по указанным условиям не обнаружено!"); Возврат; КонецЕсли; ИмяФайла=""; ИмяФайла="ВыгрузкаОтчетовККМ"; Текст = Новый ЗаписьТекста(ПутьВыгрузки+"\"+ИмяФайла+".txt", КодировкаТекста.ANSI,,Ложь); Текст.ЗаписатьСтроку("ДатаДок"+" | "+"НомерДок"+" | "+"Склад"+" | "+ "Касса"+" | "+ "Сумма"+""); СуммаДок=0; ВыборкаРезультат1 = Результат1.Выбрать(); Пока ВыборкаРезультат1.Следующий() Цикл Результат2 = Запрос2.Выполнить().Выбрать(); СуммаДок = ВыборкаРезультат1.СуммаДокумента; Пока Результат2.Следующий() Цикл Если (ВыборкаРезультат1.Дата = Результат2.Дата) И (ВыборкаРезультат1.Касса = Результат2.Касса) Тогда СуммаДок = Результат1.СуммаДокумента - Результат2.СуммаДокумента; Сообщить("Дата и касса одинаковые"); // КонецЕсли; КонецЦикла; Сообщить("Сумма без возврата: " + ВыборкаРезультат1.СуммаДокумента + " сумма с возвратом: " + СуммаДок); КонецЦикла; Текст.ЗаписатьСтроку(Строка(ВыборкаРезультат1.Дата)+Символы.Таб+Строка(ВыборкаРезультат1.Номер)+Символы.Таб+ВыборкаРезультат1.Склад.Наименование+Символы.Таб+ВыборкаРезультат1.Касса.Наименование+Символы.Таб+Строка(Формат(СуммаДок,"ЧГ="))); Текст.Закрыть(); Иначе Предупреждение("Не выбрана касса!!!"); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
15
dimogen
26.03.12
✎
13:57
|
может кто подсказать в чем ошибка? мне кажется цикл неправильно работает, а понять где ошибка не могу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |