|
Запрос,лишняя группировка | ☑ | ||
---|---|---|---|---|
0
НикДляЗапросов
15.08.12
✎
12:14
|
Это запрос Акта сверки, если был взаимозачет 60 - 62 счет регистратор один и тотоже и строчка с КО и ДО оборотом вырезается, как бы этого избежать?
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачала", ?(НЕ ЗначениеЗаполнено(ДатаНачала),Неопределено,ДатаНачала)); Запрос.УстановитьПараметр("ДатаОкончания", ?(НЕ ЗначениеЗаполнено(ДатаОкончания),Неопределено,КонецДня(ДатаОкончания))); //Запрос.УстановитьПараметр("ДатаНачала", ?(НЕ ЗначениеЗаполнено(ДатаНачала),Неопределено,Новый Граница (ДатаНачала,ВидГраницы.Включая))); //Запрос.УстановитьПараметр("ДатаОкончания", ?(НЕ ЗначениеЗаполнено(ДатаОкончания),Неопределено,Новый Граница(КонецДня(ДатаОкончания),ВидГраницы.Включая))); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Валюта", ?(Валюта = мВалютаРегламентированногоУчета,Неопределено,Валюта)); Запрос.УстановитьПараметр("ФильтрСписокСчетов", ФильтрСписокСчетов); Если Не ЗначениеЗаполнено(Валюта) или Валюта = мВалютаРегламентированногоУчета Тогда СверкаВВалютеРегламентированногоУчета = Истина; Иначе СверкаВВалютеРегламентированногоУчета = Ложь; Запрос.УстановитьПараметр("Валюта", Валюта); КонецЕсли; // Определим условия для контрагента и договора Если Не ЗначениеЗаполнено(Контрагент) Тогда КонтрагентУсловие = ""; Иначе Если Контрагент.ЭтоГруппа Тогда КонтрагентУсловие = "И Субконто1 В ИЕРАРХИИ (&Контрагент)"; Иначе КонтрагентУсловие = "И Субконто1 = &Контрагент"; КонецЕсли; Запрос.УстановитьПараметр("Контрагент", Контрагент); КонецЕсли; Если СписокДоговоров.Количество()=0 Тогда ДоговорКонтрагентаУсловие = ""; Запрос.УстановитьПараметр("ДК", 0); Запрос.УстановитьПараметр("ДоговорКонтрагента", ФильтрСписокДоговоров); Иначе //Если ДоговорКонтрагента.ЭтоГруппа Тогда ДоговорКонтрагентаУсловие = "И Субконто2 В ИЕРАРХИИ(&ДоговорКонтрагента)"; //Иначе //ДоговорКонтрагентаУсловие = "И Субконто2 = &ДоговорКонтрагента"; //КонецЕсли; Запрос.УстановитьПараметр("ДК", 1); Запрос.УстановитьПараметр("ДоговорКонтрагента", ФильтрСписокДоговоров); КонецЕсли; АналитикаРасчетов = новый Массив(); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты); АналитикаРасчетов.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры); Запрос.УстановитьПараметр("АналитикаРасчетов", АналитикаРасчетов); Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОбороты.Субконто1 КАК Контрагент, | ХозрасчетныйОбороты.Субконто1.Наименование КАК КонтрагентНаименование, | ХозрасчетныйОбороты.Субконто1.ИНН КАК КонтрагентИНН, | ХозрасчетныйОбороты.Субконто1.КПП КАК КонтрагентКПП, | ХозрасчетныйОбороты.Субконто1.ОсновноеКонтактноеЛицо.Наименование КАК ПредставительКонтрагента, | ХозрасчетныйОбороты.Субконто1.ОсновноеКонтактноеЛицо.Должность КАК ДолжностьПредставителяКонтрагента, | ХозрасчетныйОбороты.Субконто2 КАК Договор, | ХозрасчетныйОбороты.Регистратор КАК Документ, | ХозрасчетныйОбороты.Регистратор.Дата КАК Дата, | ХозрасчетныйОбороты.Регистратор.Номер КАК Номер, | "+?(СверкаВВалютеРегламентированногоУчета, "СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Дебет, |СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Кредит,", "СУММА(ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт) КАК Дебет, |СУММА(ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт) КАК Кредит,")+" | 0 КАК ОстатокНаНачало, // Это для формирования представления документа | ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.НомерВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК НомерВходящегоДокумента, | ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.ДатаВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК ДатаВходящегоДокумента | "+?(ВыводитьПолныеНазванияДокументов,"",", | ХозрасчетныйОбороты.КорСчет КАК КорСчет, | ХозрасчетныйОбороты.КорСубконто1 КАК КорСубконто1, | ВЫБОР | КОГДА ХозрасчетныйОбороты.КорСубконто1 ССЫЛКА Справочник.ПрочиеДоходыИРасходы | ТОГДА ХозрасчетныйОбороты.КорСубконто1.ВидПрочихДоходовИРасходов | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ КАК ВидПрочихДоходовИРасходов, | ХозрасчетныйОбороты.Счет КАК Счет")+" |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты( | &ДатаНачала, | &ДатаОкончания, | Регистратор, | Счет В ИЕРАРХИИ (&ФильтрСписокСчетов), | &АналитикаРасчетов, | Организация = &Организация | "+?(СверкаВВалютеРегламентированногоУчета,"","И Валюта = &Валюта")+" | "+КонтрагентУсловие+" | "+ДоговорКонтрагентаУсловие+", | , | ) КАК ХозрасчетныйОбороты |ГДЕ | ВЫБОР | КОГДА ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (&ФильтрСписокСчетов) | ТОГДА ВЫБОР | КОГДА &ДК = 0 | ТОГДА (НЕ ХозрасчетныйОбороты.КорСубконто1 = ХозрасчетныйОбороты.Субконто1) | ИНАЧЕ (НЕ(ХозрасчетныйОбороты.КорСубконто1 = ХозрасчетныйОбороты.Субконто1 | И ХозрасчетныйОбороты.КорСубконто2 = ХозрасчетныйОбороты.Субконто2)) | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ | "+?(СверкаВВалютеРегламентированногоУчета, "И (ХозрасчетныйОбороты.СуммаОборотДт <> 0 ИЛИ ХозрасчетныйОбороты.СуммаОборотКт <> 0)", "И (ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт <> 0 ИЛИ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт <> 0)")+" | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОбороты.Субконто1, | ХозрасчетныйОбороты.Субконто1.Наименование, | ХозрасчетныйОбороты.Субконто1.ИНН, | ХозрасчетныйОбороты.Субконто1.КПП, | ХозрасчетныйОбороты.Субконто1.ОсновноеКонтактноеЛицо.Наименование, | ХозрасчетныйОбороты.Субконто1.ОсновноеКонтактноеЛицо.Должность, | ХозрасчетныйОбороты.Субконто2, | ХозрасчетныйОбороты.Регистратор, | ХозрасчетныйОбороты.Регистратор.Дата, | ХозрасчетныйОбороты.Регистратор.Номер, | 0, // Это для формирования представления документа | ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.НомерВходящегоДокумента, НЕОПРЕДЕЛЕНО), | ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.ДатаВходящегоДокумента, НЕОПРЕДЕЛЕНО) | "+?(ВыводитьПолныеНазванияДокументов,"",", | ХозрасчетныйОбороты.КорСчет, | ХозрасчетныйОбороты.КорСубконто1, | ВЫБОР | КОГДА ХозрасчетныйОбороты.КорСубконто1 ССЫЛКА Справочник.ПрочиеДоходыИРасходы | ТОГДА ХозрасчетныйОбороты.КорСубконто1.ВидПрочихДоходовИРасходов | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ХозрасчетныйОбороты.Счет")+" | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто1.Наименование, | ХозрасчетныйОстатки.Субконто1.ИНН, | ХозрасчетныйОстатки.Субконто1.КПП, | ХозрасчетныйОстатки.Субконто1.ОсновноеКонтактноеЛицо.Наименование КАК ПредставительКонтрагента, | ХозрасчетныйОстатки.Субконто1.ОсновноеКонтактноеЛицо.Должность КАК ДолжностьПредставителяКонтрагента, | ХозрасчетныйОстатки.Субконто2, | """", | """", | """", | 0, | 0, | "+?(СверкаВВалютеРегламентированногоУчета, "ХозрасчетныйОстатки.СуммаОстаток,", "ХозрасчетныйОстатки.ВалютнаяСуммаОстаток,")+" // Это для формирования представления документа | """", | """" | "+?(ВыводитьПолныеНазванияДокументов,"",", | """", | """", | """", | """"")+" |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &ДатаНачала, | Счет В ИЕРАРХИИ (&ФильтрСписокСчетов), | &АналитикаРасчетов, | Организация = &Организация | "+?(СверкаВВалютеРегламентированногоУчета,"","И Валюта = &Валюта")+" | "+КонтрагентУсловие+" | "+ДоговорКонтрагентаУсловие+") | КАК ХозрасчетныйОстатки |УПОРЯДОЧИТЬ ПО | КонтрагентНаименование, // Если необходимо разбить по договорам, тогда нужно добавить дополнительный // уровень итогов и сортировки по Договору |"+?(РазбитьПоДоговорам, " Договор, | Дата, | Документ | |ИТОГИ | СУММА(Дебет), | СУММА(Кредит), | СУММА(ОстатокНаНачало) |ПО | Контрагент, | Договор", //| Документ", " Дата, | Документ | |ИТОГИ | СУММА(Дебет), | СУММА(Кредит), | СУММА(ОстатокНаНачало) |ПО | Контрагент"); |
|||
1
DrShad
15.08.12
✎
12:17
|
ахренел чтоли? кто все это читать будет?
|
|||
2
НикДляЗапросов
15.08.12
✎
12:20
|
Да я так )), вдруг кому скучно )
|
|||
3
PuhUfa
15.08.12
✎
12:20
|
(0) куда она вырезается? и кто ее вырезает?
|
|||
4
Лоботряс
15.08.12
✎
12:21
|
Как вариант периодичность по записи поставить в оборотах
|
|||
5
НикДляЗапросов
15.08.12
✎
12:31
|
Надо както добится чтобы договору не сворачивался, так как договоры на 60 и 62 разные
|
|||
6
Лоботряс
15.08.12
✎
12:34
|
(5)Ну вывести поля субконто, значения которых у этих счетов разные. Ну или договор вывести. В чем сложность то?
|
|||
7
НикДляЗапросов
15.08.12
✎
12:37
|
(6) Сложность? В нехватке знаний и опыта
|
|||
8
UnAmerican
15.08.12
✎
12:45
|
Вот тебе ответ.
// Если необходимо разбить по договорам, тогда нужно добавить дополнительный // уровень итогов и сортировки по Договору |"+?(РазбитьПоДоговорам, " Договор, | Дата, | Документ | |ИТОГИ | СУММА(Дебет), | СУММА(Кредит), | СУММА(ОстатокНаНачало) |ПО | Контрагент, | Договор", //| Документ", " Дата, | Документ | |ИТОГИ | СУММА(Дебет), | СУММА(Кредит), | СУММА(ОстатокНаНачало) |ПО | Контрагент"); |
|||
9
НикДляЗапросов
15.08.12
✎
12:47
|
Т.е.
Сначала строчка выбирается при кореспонденции 60 с 62 Потом 62 с 60 Соответственно они сгруппировываются, это я понимаю как переписать запрос я не знаю у меня все время какието ошибки |
|||
10
НикДляЗапросов
15.08.12
✎
12:48
|
(8) Это не ответ, до этого место уже снруппировалось
|
|||
11
НикДляЗапросов
15.08.12
✎
12:48
|
| Документ", -- я эту строчку пытался добавить, но групировка произошла раннее
|
|||
12
Лоботряс
15.08.12
✎
12:51
|
А договор уже есть , значит они одинаковые. Ну добавь в выбранные поля и в СГРУППИРОВАТЬ ПО
| ХозрасчетныйОбороты.СчетДт, | ХозрасчетныйОбороты.СчетКт, |
|||
13
Лоботряс
15.08.12
✎
12:57
|
Ну в смысле и заменить таблицу обороты на ОборотыДтКт
|
|||
14
НикДляЗапросов
15.08.12
✎
13:13
|
Ладно всем спасибо
|
|||
15
НикДляЗапросов
15.08.12
✎
18:11
|
| ТОГДА ВЫБОР
| КОГДА &ДК = 0 | ТОГДА (НЕ (ХозрасчетныйОбороты.КорСубконто1 = ХозрасчетныйОбороты.Субконто1 | И ХозрасчетныйОбороты.КорСубконто2 = ХозрасчетныйОбороты.Субконто2)) | ИНАЧЕ (НЕ (ХозрасчетныйОбороты.КорСубконто1 = ХозрасчетныйОбороты.Субконто1 | И ХозрасчетныйОбороты.КорСубконто2 = ХозрасчетныйОбороты.Субконто2)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |