|
Объединить запрос сам с собой (объединить все) | ☑ | ||
---|---|---|---|---|
0
SkillUp
27.01.20
✎
11:34
|
Здравсвуйте, помогите плохо соображающему в этом вопросе. Впервые с таким сталкиваюсь.
У меня есть Процедура "УстановитьТекстЗапроса()", после формированиея текстаЗапроса, пытаюсь объеденить запрос сам с собой. Т.Е. СНАЧАЛО ФОРМИРОВАНИЕ ТЕКСТА ЗАПРОСА. пытаюсь объеденить: ТекстЗапроса = ТекстЗапроса + " | ОБЪЕДИНИТЬ ВСЕ " + ТекстЗапроса+" | "; И ошибка на этой строке: УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; Текст ошибки: {ВнешнийОтчет.ДебиторскаяЗадолженностьПоСрокамДолга.МодульОбъекта(261)}: Ошибка при установке значения атрибута контекста (Текст) УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; по причине: {(109, 2)}: Синтаксическая ошибка "ОБЪЕДИНИТЬ" <<?>>ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Подскажите как правильно объеденить, что делаю не так? Вроде подробно объяснил ситуацию... |
|||
1
SkillUp
27.01.20
✎
11:36
|
ТекстЗапроса объеденить с этим же ТекстЗапроса
|
|||
2
Ненавижу 1С
гуру
27.01.20
✎
11:37
|
(1) например раздел УПОРЯДОЧИТЬ может быть один на весь запрос
|
|||
3
Ненавижу 1С
гуру
27.01.20
✎
11:37
|
+(2) тоже самое с ИТОГИ
|
|||
4
SkillUp
27.01.20
✎
11:38
|
(2) (3) Блин, точно...
|
|||
5
SkillUp
27.01.20
✎
11:38
|
Сейчас гляну...
|
|||
6
SkillUp
27.01.20
✎
11:40
|
(3) Да, правильно. Есть итоги . Вопрос: Как объеденить в моем случае? Убрать итоги с первого "ТекстЗапроса", объеденить сам с собой, потом добавить итоги?
|
|||
7
Ненавижу 1С
гуру
27.01.20
✎
11:41
|
(6) верно
|
|||
8
SkillUp
27.01.20
✎
11:41
|
(7) Спасибо!
|
|||
9
Ненавижу 1С
гуру
27.01.20
✎
11:42
|
+(7) соответственно понимать что итоги возможно будут как бы другими, чем без объединения
|
|||
10
SkillUp
27.01.20
✎
11:44
|
(9) Как в воду смотрел... Все правильно, данные та будут другие.
|
|||
11
SkillUp
27.01.20
✎
11:45
|
Блин, а что делать? Ковырять надо запрос... (
|
|||
12
Sasha_H
27.01.20
✎
11:53
|
(11) это смотря . что тебе надо. Обычно для этого служат временные таблицы.
|
|||
13
SkillUp
27.01.20
✎
11:59
|
(12) Идея!
|
|||
14
SkillUp
27.01.20
✎
12:05
|
(12) В универсальный отчет, задублировать данные таблицы.
Т.е. Раньше было Остаток Долг 3 10 А надо: №1 таблица Остаток: Долг: №2 таблица Остаток: Долг: 3 10 3 10 |
|||
15
Sasha_H
27.01.20
✎
12:07
|
вот чего чего , а задачу задублировать данные еще никогла не поступала
|
|||
16
Sasha_H
27.01.20
✎
12:08
|
если Вам необходимо испортить данные например для скрытия факта реальности. НУ в научных каких-то целях. То воспользуйтесь полным соединением например
|
|||
17
Sasha_H
27.01.20
✎
12:09
|
если не ошибаюсь в СКЛ есть такой крос джойн в 1с его нет
|
|||
18
SkillUp
27.01.20
✎
12:09
|
(17) Можно с универсального отчета вывестир в СКД?
|
|||
19
SSSSS_AAAAA
27.01.20
✎
12:10
|
(14) Батенька, вы занимаетесь извращениями, основанными на плохом понимании типа Запрос.
Пример генерации текста запроса для шахматки можно посмотреть в любой бухгалтерии. |
|||
20
Sasha_H
27.01.20
✎
12:10
|
в одном запросе сделайте полное соединение таблицы саму на себя и будет вам дублирование
|
|||
21
Sasha_H
27.01.20
✎
12:11
|
(17) что значит можно с универсально в СКД?
|
|||
22
SkillUp
27.01.20
✎
12:12
|
(20) ПОЖ., разъясни как попдробней!
|
|||
23
Sasha_H
27.01.20
✎
12:12
|
Построитель это Тип такой его используют старые конфигурации и еще он может использовать в узких целях например вывод таблицы значений в отчет и т.д. Но даже в старых конфигурациях стараются новые отчеты повесить на СКД
|
|||
24
SkillUp
27.01.20
✎
12:12
|
Вот всен процедура:
Процедура УстановитьТекстЗапроса() ТекстЗапросаПоОстаткам = "ВЫБРАТЬ | ВзаиморасчетыПоДокументамОстатки.Организация, | ВзаиморасчетыПоДокументамОстатки.Контрагент, | ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента, | ВзаиморасчетыПоДокументамОстатки.Сделка, | ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом, | ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток КАК ОстатокДолга0 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки( | &ДатаОстатков, | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОстатки |ГДЕ | ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0 | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВзаиморасчетыБезДокументовОстатки.Организация, | ВзаиморасчетыБезДокументовОстатки.Контрагент, | ВзаиморасчетыБезДокументовОстатки.ДоговорКонтрагента, | ВзаиморасчетыБезДокументовОстатки.Сделка, | НЕОПРЕДЕЛЕНО, | ВзаиморасчетыБезДокументовОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки( | &ДатаОстатков, | (НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом) {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыБезДокументовОстатки |ГДЕ | ВзаиморасчетыБезДокументовОстатки.СуммаВзаиморасчетовОстаток > 0"; ТекстЗапросаПоОборотам = "ВЫБРАТЬ | ВзаиморасчетыПоДокументамОбороты.Организация, | ВзаиморасчетыПоДокументамОбороты.Контрагент, | ВзаиморасчетыПоДокументамОбороты.ДоговорКонтрагента, | ВзаиморасчетыПоДокументамОбороты.Сделка, | ВзаиморасчетыПоДокументамОбороты.ДокументРасчетовСКонтрагентом, | ВЫБОР | КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход > 0 | ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход | ИНАЧЕ 0 | КОНЕЦ - ВЫБОР | КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход < 0 | ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход | ИНАЧЕ 0 | КОНЕЦ КАК УвеличениеДолга1 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты( | &НачалоИнтервала1, | &КонецИнтервала1, | , | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОбороты | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВзаиморасчетыБезДокументовОбороты.Организация, | ВзаиморасчетыБезДокументовОбороты.Контрагент, | ВзаиморасчетыБезДокументовОбороты.ДоговорКонтрагента, | ВзаиморасчетыБезДокументовОбороты.Сделка, | НЕОПРЕДЕЛЕНО, | ВЫБОР | КОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовПриход > 0 | ТОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовПриход | ИНАЧЕ 0 | КОНЕЦ - ВЫБОР | КОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовРасход < 0 | ТОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовРасход | ИНАЧЕ 0 | КОНЕЦ |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты( | &НачалоИнтервала1, | &КонецИнтервала1, | , | (НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом) | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыБезДокументовОбороты"; КолИнтервалов = ТабИнтервалы.Количество(); ТекстЗапросаОстатокИОбороты = "ВЫБРАТЬ | Остатки.Организация, | Остатки.Контрагент, | Остатки.ДоговорКонтрагента, | Остатки.Сделка, | Остатки.ДокументРасчетовСКонтрагентом, | Остатки.ОстатокДолга0"; Для Ном = 1 По КолИнтервалов - 1 Цикл ОборотыНом = "Обороты" + Ном; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + ", | ЕСТЬNULL(Обороты" + Ном + ".УвеличениеДолга" + Ном + ", 0) КАК УвеличениеДолга" + Ном; КонецЦикла; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + " |ИЗ | (" + ТекстЗапросаПоОстаткам + ") КАК Остатки"; Для Ном = 1 По КолИнтервалов - 1 Цикл ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотам, "УвеличениеДолга1", "УвеличениеДолга" + Ном); ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&НачалоИнтервала1", "&НачалоИнтервала" + Ном); ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&КонецИнтервала1", "&КонецИнтервала" + Ном); ОборотыНом = "Обороты" + Ном; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + " |ЛЕВОЕ СОЕДИНЕНИЕ | (" + ТекстЗапросаПоОборотамИнтервала + ") КАК " + ОборотыНом + " | ПО | Остатки.Организация = " + ОборотыНом + ".Организация | И Остатки.Контрагент = " + ОборотыНом + ".Контрагент | И Остатки.ДоговорКонтрагента = " + ОборотыНом + ".ДоговорКонтрагента | И Остатки.Сделка = " + ОборотыНом + ".Сделка | И Остатки.ДокументРасчетовСКонтрагентом = " + ОборотыНом + ".ДокументРасчетовСКонтрагентом"; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = "ВЫБРАТЬ | ОстатокИОбороты.Организация, | ОстатокИОбороты.Контрагент, | ОстатокИОбороты.ДоговорКонтрагента, | ОстатокИОбороты.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | ОстатокИОбороты.Сделка, | ОстатокИОбороты.ДокументРасчетовСКонтрагентом, | ОстатокИОбороты.ОстатокДолга0"; Для Ном = 1 По КолИнтервалов - 1 Цикл ВыражениеОстатка = "ОстатокИОбороты.ОстатокДолга0"; Для й = 1 По Ном Цикл ВыражениеОстатка = ВыражениеОстатка + " - ОстатокИОбороты.УвеличениеДолга" + й; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + ", | ВЫБОР | КОГДА " + ВыражениеОстатка + " > 0 | ТОГДА " + ВыражениеОстатка + " | ИНАЧЕ 0 | КОНЕЦ КАК ОстатокДолга" + Ном; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + " |ИЗ | (" + ТекстЗапросаОстатокИОбороты + ") КАК ОстатокИОбороты"; ТекстПоказателей = " | ОстаткиПоПериодам.ОстатокДолга0 КАК ОстатокДолга"; Для Ном = 1 По КолИнтервалов - 1 Цикл ТекстПоказателей = ТекстПоказателей + ", | ОстаткиПоПериодам.ОстатокДолга" + (Ном - 1) + " - ОстаткиПоПериодам.ОстатокДолга" + Ном + " КАК ОстатокПериода" + Ном; КонецЦикла; Если КолИнтервалов > 0 Тогда ТекстПоказателей = ТекстПоказателей + ", | ОстаткиПоПериодам.ОстатокДолга" + (КолИнтервалов - 1) + " КАК ОстатокПериода" + КолИнтервалов; КонецЕсли; ТекстЗапроса = "ВЫБРАТЬ | ОстаткиПоПериодам.Организация КАК Организация, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Организация) КАК ОрганизацияПредставление, | ОстаткиПоПериодам.Контрагент КАК Контрагент, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Контрагент) КАК КонтрагентПредставление, | ОстаткиПоПериодам.ДоговорКонтрагента КАК ДоговорКонтрагента, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление, | ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетовПредставление, | ОстаткиПоПериодам.Сделка КАК Сделка, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Сделка) КАК СделкаПредставление, | ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом) КАК ДокументРасчетовСКонтрагентомПредставление," + ТекстПоказателей + " | //ПОЛЯ_СВОЙСТВА | //ПОЛЯ_КАТЕГОРИИ |{ВЫБРАТЬ | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | ВалютаВзаиморасчетов.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*," + ТекстПоказателей + " | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИЗ | (" + ТекстЗапросаОстаткиПоПериодам + ") КАК ОстаткиПоПериодам | //СОЕДИНЕНИЯ"; //Объединяем ТекстЗапроса = ТекстЗапроса + " | ОБЪЕДИНИТЬ ВСЕ " + ТекстЗапроса+ " | "; //Объединяем |{ГДЕ" + ТекстПоказателей + " | //УСЛОВИЯ_СВОЙСТВА | //УСЛОВИЯ_КАТЕГОРИИ |} |{УПОРЯДОЧИТЬ ПО | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*, | ВалютаВзаиморасчетов.*, | ОстатокДолга"; Для Ном = 1 По КолИнтервалов Цикл ТекстЗапроса = ТекстЗапроса + ", | ОстатокПериода" + Ном; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИТОГИ | СУММА(ОстатокДолга)"; Для Ном = 1 По КолИнтервалов Цикл ТекстЗапроса = ТекстЗапроса + ", | СУММА(ОстатокПериода" + Ном + ")"; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | //ИТОГИ_СВОЙСТВА | //ИТОГИ_КАТЕГОРИИ |ПО | ОБЩИЕ |{ИТОГИ ПО | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | Контрагент.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*, | ВалютаВзаиморасчетов.* | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |}"; // В универсальном отчете включен флаг использования свойств и категорий. Если УниверсальныйОтчет.ИспользоватьСвойстваИКатегории Тогда // Добавление свойств и категорий поля запроса в таблицу полей. // Необходимо вызывать для каждого поля запроса, предоставляющего возможность использования свойств и категорий. // УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля(<ПсевдонимТаблицы>.<Поле> , <ПсевдонимПоля>, <Представление>, <Назначение>); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.Контрагент", "Контрагент", "Контрагент", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.ДоговорКонтрагента", "ДоговорКонтрагента", "Договор контрагента", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ДоговорыКонтрагентов); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.Организация", "Организация", "Организация", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Организации); УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса); КонецЕсли; // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; КонецПроцедуры |
|||
25
SkillUp
27.01.20
✎
12:14
|
Ой, пардон. Вот изначальная, ту уже начал переделывать:
Процедура УстановитьТекстЗапроса() ТекстЗапросаПоОстаткам = "ВЫБРАТЬ | ВзаиморасчетыПоДокументамОстатки.Организация, | ВзаиморасчетыПоДокументамОстатки.Контрагент, | ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента, | ВзаиморасчетыПоДокументамОстатки.Сделка, | ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом, | ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток КАК ОстатокДолга0 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки( | &ДатаОстатков, | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОстатки |ГДЕ | ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0 | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВзаиморасчетыБезДокументовОстатки.Организация, | ВзаиморасчетыБезДокументовОстатки.Контрагент, | ВзаиморасчетыБезДокументовОстатки.ДоговорКонтрагента, | ВзаиморасчетыБезДокументовОстатки.Сделка, | НЕОПРЕДЕЛЕНО, | ВзаиморасчетыБезДокументовОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки( | &ДатаОстатков, | (НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом) {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыБезДокументовОстатки |ГДЕ | ВзаиморасчетыБезДокументовОстатки.СуммаВзаиморасчетовОстаток > 0"; ТекстЗапросаПоОборотам = "ВЫБРАТЬ | ВзаиморасчетыПоДокументамОбороты.Организация, | ВзаиморасчетыПоДокументамОбороты.Контрагент, | ВзаиморасчетыПоДокументамОбороты.ДоговорКонтрагента, | ВзаиморасчетыПоДокументамОбороты.Сделка, | ВзаиморасчетыПоДокументамОбороты.ДокументРасчетовСКонтрагентом, | ВЫБОР | КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход > 0 | ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход | ИНАЧЕ 0 | КОНЕЦ - ВЫБОР | КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход < 0 | ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход | ИНАЧЕ 0 | КОНЕЦ КАК УвеличениеДолга1 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты( | &НачалоИнтервала1, | &КонецИнтервала1, | , | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОбороты | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВзаиморасчетыБезДокументовОбороты.Организация, | ВзаиморасчетыБезДокументовОбороты.Контрагент, | ВзаиморасчетыБезДокументовОбороты.ДоговорКонтрагента, | ВзаиморасчетыБезДокументовОбороты.Сделка, | НЕОПРЕДЕЛЕНО, | ВЫБОР | КОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовПриход > 0 | ТОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовПриход | ИНАЧЕ 0 | КОНЕЦ - ВЫБОР | КОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовРасход < 0 | ТОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовРасход | ИНАЧЕ 0 | КОНЕЦ |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты( | &НачалоИнтервала1, | &КонецИнтервала1, | , | (НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом) | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыБезДокументовОбороты"; КолИнтервалов = ТабИнтервалы.Количество(); ТекстЗапросаОстатокИОбороты = "ВЫБРАТЬ | Остатки.Организация, | Остатки.Контрагент, | Остатки.ДоговорКонтрагента, | Остатки.Сделка, | Остатки.ДокументРасчетовСКонтрагентом, | Остатки.ОстатокДолга0"; Для Ном = 1 По КолИнтервалов - 1 Цикл ОборотыНом = "Обороты" + Ном; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + ", | ЕСТЬNULL(Обороты" + Ном + ".УвеличениеДолга" + Ном + ", 0) КАК УвеличениеДолга" + Ном; КонецЦикла; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + " |ИЗ | (" + ТекстЗапросаПоОстаткам + ") КАК Остатки"; Для Ном = 1 По КолИнтервалов - 1 Цикл ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотам, "УвеличениеДолга1", "УвеличениеДолга" + Ном); ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&НачалоИнтервала1", "&НачалоИнтервала" + Ном); ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&КонецИнтервала1", "&КонецИнтервала" + Ном); ОборотыНом = "Обороты" + Ном; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + " |ЛЕВОЕ СОЕДИНЕНИЕ | (" + ТекстЗапросаПоОборотамИнтервала + ") КАК " + ОборотыНом + " | ПО | Остатки.Организация = " + ОборотыНом + ".Организация | И Остатки.Контрагент = " + ОборотыНом + ".Контрагент | И Остатки.ДоговорКонтрагента = " + ОборотыНом + ".ДоговорКонтрагента | И Остатки.Сделка = " + ОборотыНом + ".Сделка | И Остатки.ДокументРасчетовСКонтрагентом = " + ОборотыНом + ".ДокументРасчетовСКонтрагентом"; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = "ВЫБРАТЬ | ОстатокИОбороты.Организация, | ОстатокИОбороты.Контрагент, | ОстатокИОбороты.ДоговорКонтрагента, | ОстатокИОбороты.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | ОстатокИОбороты.Сделка, | ОстатокИОбороты.ДокументРасчетовСКонтрагентом, | ОстатокИОбороты.ОстатокДолга0"; Для Ном = 1 По КолИнтервалов - 1 Цикл ВыражениеОстатка = "ОстатокИОбороты.ОстатокДолга0"; Для й = 1 По Ном Цикл ВыражениеОстатка = ВыражениеОстатка + " - ОстатокИОбороты.УвеличениеДолга" + й; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + ", | ВЫБОР | КОГДА " + ВыражениеОстатка + " > 0 | ТОГДА " + ВыражениеОстатка + " | ИНАЧЕ 0 | КОНЕЦ КАК ОстатокДолга" + Ном; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + " |ИЗ | (" + ТекстЗапросаОстатокИОбороты + ") КАК ОстатокИОбороты"; ТекстПоказателей = " | ОстаткиПоПериодам.ОстатокДолга0 КАК ОстатокДолга"; Для Ном = 1 По КолИнтервалов - 1 Цикл ТекстПоказателей = ТекстПоказателей + ", | ОстаткиПоПериодам.ОстатокДолга" + (Ном - 1) + " - ОстаткиПоПериодам.ОстатокДолга" + Ном + " КАК ОстатокПериода" + Ном; КонецЦикла; Если КолИнтервалов > 0 Тогда ТекстПоказателей = ТекстПоказателей + ", | ОстаткиПоПериодам.ОстатокДолга" + (КолИнтервалов - 1) + " КАК ОстатокПериода" + КолИнтервалов; КонецЕсли; ТекстЗапроса = "ВЫБРАТЬ | ОстаткиПоПериодам.Организация КАК Организация, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Организация) КАК ОрганизацияПредставление, | ОстаткиПоПериодам.Контрагент КАК Контрагент, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Контрагент) КАК КонтрагентПредставление, | ОстаткиПоПериодам.ДоговорКонтрагента КАК ДоговорКонтрагента, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление, | ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетовПредставление, | ОстаткиПоПериодам.Сделка КАК Сделка, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Сделка) КАК СделкаПредставление, | ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом) КАК ДокументРасчетовСКонтрагентомПредставление," + ТекстПоказателей + " | //ПОЛЯ_СВОЙСТВА | //ПОЛЯ_КАТЕГОРИИ |{ВЫБРАТЬ | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | ВалютаВзаиморасчетов.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*," + ТекстПоказателей + " | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИЗ | (" + ТекстЗапросаОстаткиПоПериодам + ") КАК ОстаткиПоПериодам | //СОЕДИНЕНИЯ |{ГДЕ" + ТекстПоказателей + " | //УСЛОВИЯ_СВОЙСТВА | //УСЛОВИЯ_КАТЕГОРИИ |} |{УПОРЯДОЧИТЬ ПО | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*, | ВалютаВзаиморасчетов.*, | ОстатокДолга"; Для Ном = 1 По КолИнтервалов Цикл ТекстЗапроса = ТекстЗапроса + ", | ОстатокПериода" + Ном; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИТОГИ | СУММА(ОстатокДолга)"; Для Ном = 1 По КолИнтервалов Цикл ТекстЗапроса = ТекстЗапроса + ", | СУММА(ОстатокПериода" + Ном + ")"; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | //ИТОГИ_СВОЙСТВА | //ИТОГИ_КАТЕГОРИИ |ПО | ОБЩИЕ |{ИТОГИ ПО | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | Контрагент.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*, | ВалютаВзаиморасчетов.* | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |}"; // В универсальном отчете включен флаг использования свойств и категорий. Если УниверсальныйОтчет.ИспользоватьСвойстваИКатегории Тогда // Добавление свойств и категорий поля запроса в таблицу полей. // Необходимо вызывать для каждого поля запроса, предоставляющего возможность использования свойств и категорий. // УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля(<ПсевдонимТаблицы>.<Поле> , <ПсевдонимПоля>, <Представление>, <Назначение>); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.Контрагент", "Контрагент", "Контрагент", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.ДоговорКонтрагента", "ДоговорКонтрагента", "Договор контрагента", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ДоговорыКонтрагентов); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.Организация", "Организация", "Организация", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Организации); УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса); КонецЕсли; // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; КонецПроцедуры |
|||
26
SkillUp
27.01.20
✎
12:15
|
(23) Ясно.
|
|||
27
Sasha_H
27.01.20
✎
12:15
|
(22)
ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Характеристика КАК Характеристика, СУММА(ТоварыНаСкладахОстатки.ВНаличииОстаток + ТоварыНаСкладахОстатки1.ВНаличииОстаток) КАК Остаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки1 ПО ТоварыНаСкладахОстатки.Склад = ТоварыНаСкладахОстатки1.Склад И ТоварыНаСкладахОстатки.Характеристика = ТоварыНаСкладахОстатки1.Характеристика СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Характеристика ИТОГИ СУММА(Остаток) ПО ОБЩИЕ, Склад, Характеристика |
|||
28
Sasha_H
27.01.20
✎
12:18
|
(0) но я не могу поять задачи задублировать даннЫе, для чего это!?
|
|||
29
Sasha_H
27.01.20
✎
12:19
|
(27) это примитивный приемр который можно оттестировать обычной консолью запроса для понимания, а что вообще произойдет. а не сразу приживлять это в готовое решение.
Суть в следующем что таблиса Остатки 1 полностью совпадает с ТаблицейОстатки и при полном соединении оно задублирует |
|||
30
Sasha_H
27.01.20
✎
12:22
|
а в СКД там можно вообще начудить используя функции агрегатов над ресурсами. Я просто не понимаю задачи.
|
|||
31
SSSSS_AAAAA
27.01.20
✎
12:40
|
(30) Да шахматку он таким извращенным способом пытается рисовать...
|
|||
32
SkillUp
27.01.20
✎
12:59
|
(28) Обясняю, я обеденяю запрос сам с собой. В Цикле ,на каждом цикле параметры меняються (в добавляемом запросе). Т.Е. выводяться данные разные. Вопрос, в том чтобы корректно объеденить...
|
|||
33
SSSSS_AAAAA
27.01.20
✎
13:09
|
(32) Вот это и называется шахматкой и ты изобретаешь очередной велосипед. Только даже не с квадратными, а с треугольными колесами.
|
|||
34
SkillUp
27.01.20
✎
13:13
|
(33) В этом ты прав.
|
|||
35
SkillUp
27.01.20
✎
13:13
|
(33) "Пример генерации текста запроса для шахматки можно посмотреть в любой бухгалтерии." Уже смотрю...
|
|||
36
SSSSS_AAAAA
27.01.20
✎
13:23
|
(35) Удачи. Только, боюсь, очередная бесполезная трата времени и ресурсов. Ибо шахматки в компьютерном учете - анахронизм, и те, кто хоть немного понимает почему и что он смотрит в шахматке (заметь, речь не о программистах, а о пользователях, для которых, собственно, программисты и трахаются с этими шахматками) быстро приходят этому выводу о их ненужности и забрасывают их полностью. Ибо вместо нее легче, удобнее и быстрее использовать более другие отчеты.
|
|||
37
SkillUp
27.01.20
✎
13:29
|
(36) Блин,я уже затрахался с этим отчетом, сейчас начавльство еще будет звонить, получу пи*ды. Все из-за того, что тупо не могу объеденить запрос с упорядочиванием и итогами. Нашел себе приключение на свою голову. Лучше бы через СКД сделал бы...
|
|||
38
SkillUp
27.01.20
✎
13:33
|
(36) Делаю через полное соединение...
|
|||
39
SSSSS_AAAAA
27.01.20
✎
13:36
|
(37) Упорядочивание и итоги должны присоединяться к тексту запроса в самом конце, после всех объединений.
|
|||
40
SkillUp
27.01.20
✎
13:41
|
(39) ДА так и делаю, ошибки лезут со всех сторон... Знал ,что так попаду делал бы по-другому. Не навижу универсальные отчеты...
|
|||
41
SkillUp
27.01.20
✎
13:43
|
Последняя попытка ,если кто-то подскажет как объеденить этот тект сам собой. Буду очень благодарен...
Процедура УстановитьТекстЗапроса() ТекстЗапросаПоОстаткам = "ВЫБРАТЬ | ВзаиморасчетыПоДокументамОстатки.Организация, | ВзаиморасчетыПоДокументамОстатки.Контрагент, | ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента, | ВзаиморасчетыПоДокументамОстатки.Сделка, | ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом, | ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток КАК ОстатокДолга0 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки( | &ДатаОстатков, | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОстатки |ГДЕ | ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0 | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВзаиморасчетыБезДокументовОстатки.Организация, | ВзаиморасчетыБезДокументовОстатки.Контрагент, | ВзаиморасчетыБезДокументовОстатки.ДоговорКонтрагента, | ВзаиморасчетыБезДокументовОстатки.Сделка, | НЕОПРЕДЕЛЕНО, | ВзаиморасчетыБезДокументовОстатки.СуммаВзаиморасчетовОстаток |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки( | &ДатаОстатков, | (НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом) {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыБезДокументовОстатки |ГДЕ | ВзаиморасчетыБезДокументовОстатки.СуммаВзаиморасчетовОстаток > 0"; ТекстЗапросаПоОборотам = "ВЫБРАТЬ | ВзаиморасчетыПоДокументамОбороты.Организация, | ВзаиморасчетыПоДокументамОбороты.Контрагент, | ВзаиморасчетыПоДокументамОбороты.ДоговорКонтрагента, | ВзаиморасчетыПоДокументамОбороты.Сделка, | ВзаиморасчетыПоДокументамОбороты.ДокументРасчетовСКонтрагентом, | ВЫБОР | КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход > 0 | ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовПриход | ИНАЧЕ 0 | КОНЕЦ - ВЫБОР | КОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход < 0 | ТОГДА ВзаиморасчетыПоДокументамОбороты.СуммаВзаиморасчетовРасход | ИНАЧЕ 0 | КОНЕЦ КАК УвеличениеДолга1 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты( | &НачалоИнтервала1, | &КонецИнтервала1, | , | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыПоДокументамОбороты | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВзаиморасчетыБезДокументовОбороты.Организация, | ВзаиморасчетыБезДокументовОбороты.Контрагент, | ВзаиморасчетыБезДокументовОбороты.ДоговорКонтрагента, | ВзаиморасчетыБезДокументовОбороты.Сделка, | НЕОПРЕДЕЛЕНО, | ВЫБОР | КОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовПриход > 0 | ТОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовПриход | ИНАЧЕ 0 | КОНЕЦ - ВЫБОР | КОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовРасход < 0 | ТОГДА ВзаиморасчетыБезДокументовОбороты.СуммаВзаиморасчетовРасход | ИНАЧЕ 0 | КОНЕЦ |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты( | &НачалоИнтервала1, | &КонецИнтервала1, | , | (НЕ ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом) | {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка}) КАК ВзаиморасчетыБезДокументовОбороты"; КолИнтервалов = ТабИнтервалы.Количество(); ТекстЗапросаОстатокИОбороты = "ВЫБРАТЬ | Остатки.Организация, | Остатки.Контрагент, | Остатки.ДоговорКонтрагента, | Остатки.Сделка, | Остатки.ДокументРасчетовСКонтрагентом, | Остатки.ОстатокДолга0"; Для Ном = 1 По КолИнтервалов - 1 Цикл ОборотыНом = "Обороты" + Ном; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + ", | ЕСТЬNULL(Обороты" + Ном + ".УвеличениеДолга" + Ном + ", 0) КАК УвеличениеДолга" + Ном; КонецЦикла; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + " |ИЗ | (" + ТекстЗапросаПоОстаткам + ") КАК Остатки"; Для Ном = 1 По КолИнтервалов - 1 Цикл ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотам, "УвеличениеДолга1", "УвеличениеДолга" + Ном); ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&НачалоИнтервала1", "&НачалоИнтервала" + Ном); ТекстЗапросаПоОборотамИнтервала = СтрЗаменить(ТекстЗапросаПоОборотамИнтервала, "&КонецИнтервала1", "&КонецИнтервала" + Ном); ОборотыНом = "Обороты" + Ном; ТекстЗапросаОстатокИОбороты = ТекстЗапросаОстатокИОбороты + " |ЛЕВОЕ СОЕДИНЕНИЕ | (" + ТекстЗапросаПоОборотамИнтервала + ") КАК " + ОборотыНом + " | ПО | Остатки.Организация = " + ОборотыНом + ".Организация | И Остатки.Контрагент = " + ОборотыНом + ".Контрагент | И Остатки.ДоговорКонтрагента = " + ОборотыНом + ".ДоговорКонтрагента | И Остатки.Сделка = " + ОборотыНом + ".Сделка | И Остатки.ДокументРасчетовСКонтрагентом = " + ОборотыНом + ".ДокументРасчетовСКонтрагентом"; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = "ВЫБРАТЬ | ОстатокИОбороты.Организация, | ОстатокИОбороты.Контрагент, | ОстатокИОбороты.ДоговорКонтрагента, | ОстатокИОбороты.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | ОстатокИОбороты.Сделка, | ОстатокИОбороты.ДокументРасчетовСКонтрагентом, | ОстатокИОбороты.ОстатокДолга0"; Для Ном = 1 По КолИнтервалов - 1 Цикл ВыражениеОстатка = "ОстатокИОбороты.ОстатокДолга0"; Для й = 1 По Ном Цикл ВыражениеОстатка = ВыражениеОстатка + " - ОстатокИОбороты.УвеличениеДолга" + й; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + ", | ВЫБОР | КОГДА " + ВыражениеОстатка + " > 0 | ТОГДА " + ВыражениеОстатка + " | ИНАЧЕ 0 | КОНЕЦ КАК ОстатокДолга" + Ном; КонецЦикла; ТекстЗапросаОстаткиПоПериодам = ТекстЗапросаОстаткиПоПериодам + " |ИЗ | (" + ТекстЗапросаОстатокИОбороты + ") КАК ОстатокИОбороты"; ТекстПоказателей = " | ОстаткиПоПериодам.ОстатокДолга0 КАК ОстатокДолга"; Для Ном = 1 По КолИнтервалов - 1 Цикл ТекстПоказателей = ТекстПоказателей + ", | ОстаткиПоПериодам.ОстатокДолга" + (Ном - 1) + " - ОстаткиПоПериодам.ОстатокДолга" + Ном + " КАК ОстатокПериода" + Ном; КонецЦикла; Если КолИнтервалов > 0 Тогда ТекстПоказателей = ТекстПоказателей + ", | ОстаткиПоПериодам.ОстатокДолга" + (КолИнтервалов - 1) + " КАК ОстатокПериода" + КолИнтервалов; КонецЕсли; ТекстЗапроса = //1 "ВЫБРАТЬ | ОстаткиПоПериодам.Организация КАК Организация, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Организация) КАК ОрганизацияПредставление, | ОстаткиПоПериодам.Контрагент КАК Контрагент, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Контрагент) КАК КонтрагентПредставление, | ОстаткиПоПериодам.ДоговорКонтрагента КАК ДоговорКонтрагента, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление, | ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДоговорКонтрагента.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетовПредставление, | ОстаткиПоПериодам.Сделка КАК Сделка, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.Сделка) КАК СделкаПредставление, | ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом, | ПРЕДСТАВЛЕНИЕ(ОстаткиПоПериодам.ДокументРасчетовСКонтрагентом) КАК ДокументРасчетовСКонтрагентомПредставление," + ТекстПоказателей + " | //ПОЛЯ_СВОЙСТВА | //ПОЛЯ_КАТЕГОРИИ |{ВЫБРАТЬ | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | ВалютаВзаиморасчетов.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*," + ТекстПоказателей + " | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИЗ | (" + ТекстЗапросаОстаткиПоПериодам + ") КАК ОстаткиПоПериодам | //СОЕДИНЕНИЯ |{ГДЕ" + ТекстПоказателей + " | //УСЛОВИЯ_СВОЙСТВА | //УСЛОВИЯ_КАТЕГОРИИ |} |{УПОРЯДОЧИТЬ ПО | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*, | ВалютаВзаиморасчетов.*, | ОстатокДолга"; Для Ном = 1 По КолИнтервалов Цикл ТекстЗапроса = ТекстЗапроса + ", | ОстатокПериода" + Ном; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИТОГИ | СУММА(ОстатокДолга)"; Для Ном = 1 По КолИнтервалов Цикл ТекстЗапроса = ТекстЗапроса + ", | СУММА(ОстатокПериода" + Ном + ")"; КонецЦикла; ТекстЗапроса = ТекстЗапроса + " | //ИТОГИ_СВОЙСТВА | //ИТОГИ_КАТЕГОРИИ |ПО | ОБЩИЕ |{ИТОГИ ПО | Организация.*, | Контрагент.*, | ДоговорКонтрагента.*, | Контрагент.*, | Сделка.*, | ДокументРасчетовСКонтрагентом.*, | ВалютаВзаиморасчетов.* | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |}"; // В универсальном отчете включен флаг использования свойств и категорий. Если УниверсальныйОтчет.ИспользоватьСвойстваИКатегории Тогда // Добавление свойств и категорий поля запроса в таблицу полей. // Необходимо вызывать для каждого поля запроса, предоставляющего возможность использования свойств и категорий. // УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля(<ПсевдонимТаблицы>.<Поле> , <ПсевдонимПоля>, <Представление>, <Назначение>); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.Контрагент", "Контрагент", "Контрагент", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.ДоговорКонтрагента", "ДоговорКонтрагента", "Договор контрагента", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ДоговорыКонтрагентов); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ОстаткиПоПериодам.Организация", "Организация", "Организация", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Организации); УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса); КонецЕсли; // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; КонецПроцедуры |
|||
42
D_E_S_131
27.01.20
✎
15:46
|
(41) "Буду очень благодарен..." - как-то дешево.
|
|||
43
SkillUp
27.01.20
✎
16:30
|
(42) Тебе заплатить за решение?!
|
|||
44
SkillUp
27.01.20
✎
16:30
|
(42) Справишься?!
|
|||
45
hhhh
27.01.20
✎
16:38
|
(43) сколько платишь? НУ, ниже 5000 конечно не обсудается.
|
|||
46
SkillUp
27.01.20
✎
17:00
|
(45) Не хочу в общем чате, личка есть? Там все и обсудим...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |