7.7 Вывод в отчет значений реквизитов регистров
Показывать по
10
20
40
сообщений
- 1
- 2
11.01.2010
12:01
#1
"|Период с ВыбНач по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|КредитныйДокумент = Регистр.НачислениеПроцентов.КредитныйДокумент, Регистр.ПеняПоПроцентам.КредитныйДокумент, Регистр.НачислениеОД.КредитныйДокумент, Регистр.ПеняПоОД.КредитныйДокумент;
|Договор = Регистр.ПеняПоОД.Договор, Регистр.ПеняПоПроцентам.Договор, Регистр.НачислениеПроцентов.Договор, Регистр.НачислениеОД.Договор;
|СуммаПроц = Регистр.НачислениеПроцентов.Сумма;
|СуммаОД = Регистр.НачислениеОД.Сумма;
|СуммаПеняПроц = Регистр.ПеняПоПроцентам.Сумма;
|СуммаПеняОД = Регистр.ПеняПоОД.Сумма;
|ПроцентыРасчетнаяСумма = Регистр.НачислениеПроцентов.РасчетнаяСумма; // ЭТО РЕКВИЗИТ
|ПеняПроцРасчетнаяСумма = Регистр.ПеняПоПроцентам.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|ПеняОДРасчетнаяСумма = Регистр.ПеняПоОД.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|Функция СуммаПроцПриход = Приход(СуммаПроц);
|Функция СуммаОДПриход = Приход(СуммаОД);
|Функция СуммаПеняПроцПриход = Приход(СуммаПеняПроц);
|Функция СуммаПеняОДПриход = Приход(СуммаПеняОД);
|Группировка Договор без групп;
|Группировка КредитныйДокумент без групп;
|Группировка Месяц;
|Группировка Документ;
|Условие(Договор в ВыбДоговор);
|Условие(КредитныйДокумент = ВыбКредитныйДокумент.ДокументВыдачи);
Вот текст запроса, однако при выводе таблицы выводится только один из реквизитов, сначала "ПроцентыРасчетнаяСумма", потом как только появляются суммы по "СуммаПеняПроцПриход", выводится реквизит ПеняПроцРасчетнаяСумма, а "ПроцентыРасчетнаяСумма" равен нулю и тд.
ВОПРОС - как выводить реквизиты по всем регистрам, без обнуления?
СПАСИБО ЗАРАНЕЕ.
"
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|КредитныйДокумент = Регистр.НачислениеПроцентов.КредитныйДокумент, Регистр.ПеняПоПроцентам.КредитныйДокумент, Регистр.НачислениеОД.КредитныйДокумент, Регистр.ПеняПоОД.КредитныйДокумент;
|Договор = Регистр.ПеняПоОД.Договор, Регистр.ПеняПоПроцентам.Договор, Регистр.НачислениеПроцентов.Договор, Регистр.НачислениеОД.Договор;
|СуммаПроц = Регистр.НачислениеПроцентов.Сумма;
|СуммаОД = Регистр.НачислениеОД.Сумма;
|СуммаПеняПроц = Регистр.ПеняПоПроцентам.Сумма;
|СуммаПеняОД = Регистр.ПеняПоОД.Сумма;
|ПроцентыРасчетнаяСумма = Регистр.НачислениеПроцентов.РасчетнаяСумма; // ЭТО РЕКВИЗИТ
|ПеняПроцРасчетнаяСумма = Регистр.ПеняПоПроцентам.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|ПеняОДРасчетнаяСумма = Регистр.ПеняПоОД.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|Функция СуммаПроцПриход = Приход(СуммаПроц);
|Функция СуммаОДПриход = Приход(СуммаОД);
|Функция СуммаПеняПроцПриход = Приход(СуммаПеняПроц);
|Функция СуммаПеняОДПриход = Приход(СуммаПеняОД);
|Группировка Договор без групп;
|Группировка КредитныйДокумент без групп;
|Группировка Месяц;
|Группировка Документ;
|Условие(Договор в ВыбДоговор);
|Условие(КредитныйДокумент = ВыбКредитныйДокумент.ДокументВыдачи);
Вот текст запроса, однако при выводе таблицы выводится только один из реквизитов, сначала "ПроцентыРасчетнаяСумма", потом как только появляются суммы по "СуммаПеняПроцПриход", выводится реквизит ПеняПроцРасчетнаяСумма, а "ПроцентыРасчетнаяСумма" равен нулю и тд.
ВОПРОС - как выводить реквизиты по всем регистрам, без обнуления?
СПАСИБО ЗАРАНЕЕ.
"
11.01.2010
17:47
#3
"вы их в конструкцию Функция поместите. То есть, будет что то вроде такого:
|ПроцентыРасчетнаяСумма = Регистр.НачислениеПроцентов.РасчетнаяСумма; // ЭТО РЕКВИЗИТ
|ПеняПроцРасчетнаяСумма = Регистр.ПеняПоПроцентам.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|ПеняОДРасчетнаяСумма = Регистр.ПеняПоОД.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|Функция СуммаПроцентыРасчетнаяСумма = Приход(ПроцентыРасчетнаяСумма);
|Функция СуммаПеняПроцРасчетнаяСумма = Приход(ПеняПроцРасчетнаяСумма);
|Функция СуммаПеняОДРасчетнаяСумма = Приход(ПеняОДРасчетнаяСумма);
...
В общем, это все от того, что по идее, внутренние переменные запроса не должны быть видны в дальнейшем через Запрос.ВнутренняяПеременная, а видны должны быть только те переменные, по которым была группировка и результаты функций. 1С, к сожалению, не блокирует обращиние к ним, в результате возникает "ложная надежда", что таким образом можно достать какие то данные"
|ПроцентыРасчетнаяСумма = Регистр.НачислениеПроцентов.РасчетнаяСумма; // ЭТО РЕКВИЗИТ
|ПеняПроцРасчетнаяСумма = Регистр.ПеняПоПроцентам.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|ПеняОДРасчетнаяСумма = Регистр.ПеняПоОД.РасчетнаяСумма;// ЭТО РЕКВИЗИТ
|Функция СуммаПроцентыРасчетнаяСумма = Приход(ПроцентыРасчетнаяСумма);
|Функция СуммаПеняПроцРасчетнаяСумма = Приход(ПеняПроцРасчетнаяСумма);
|Функция СуммаПеняОДРасчетнаяСумма = Приход(ПеняОДРасчетнаяСумма);
...
В общем, это все от того, что по идее, внутренние переменные запроса не должны быть видны в дальнейшем через Запрос.ВнутренняяПеременная, а видны должны быть только те переменные, по которым была группировка и результаты функций. 1С, к сожалению, не блокирует обращиние к ним, в результате возникает "ложная надежда", что таким образом можно достать какие то данные"
11.01.2010
20:43
#5
"Конечно складывать будет, по всем группировкам, которые у вас есть и будет сложение. Далее при переборе результатов запроса вы получите итоги и по месяцу и по договору и т.п.
|Группировка Договор без групп;
|Группировка КредитныйДокумент без групп;
|Группировка Месяц;
|Группировка Документ;
"
|Группировка Договор без групп;
|Группировка КредитныйДокумент без групп;
|Группировка Месяц;
|Группировка Документ;
"
14.11.2012
10:47
#7
Добрый день
Это если реквизит типа "число", а если это элемент тип реквизита "справочник"? Тогда что делать? При попытке вставить в функцию будет, естественно, ошибка запроса... Подскажите, плз, как же вывести такие реквизиты
Это если реквизит типа "число", а если это элемент тип реквизита "справочник"? Тогда что делать? При попытке вставить в функцию будет, естественно, ошибка запроса... Подскажите, плз, как же вывести такие реквизиты
14.11.2012
10:53
#8
"> как же вывести такие реквизиты
Для примера текст своего запроса напишите."
ТекстЗапроса="Товар=Справочник.Номенклатура.ТекущийЭлемент;
|Группировка Товар без групп без упорядочивания;";
Запрос=СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=1 Тогда
Пока Запрос.Группировка(1)=1 Цикл
Сообщить(Запрос.Товар);
КонецЦикла;
КонецЕсли;
Для примера текст своего запроса напишите."
14.11.2012
11:06
#9
"Точный текст запроса дома, но смысл такой:
|Фирма= Регистр.Цены.Фирма;
|Номенклатура= Регистр.Цены.Номенклатура;
|Контрагент= Регистр.Цены.Контрагент;
|Цена= Регистр.Цены.Цена;
|Валюта= Регистр.Цены.Валюта; // ЭТО РЕКВИЗИТ
|Единица= Регистр.Цены.Единица; // ЭТО РЕКВИЗИТ
|Функция КонОстЦена= КонОст(Цена);
|Условие(Договор в ВыбДоговор);
|Группировка Номенклатура без групп;
|Группировка Контрагент без групп;
Запрос=СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=1 Тогда
Пока Запрос.Группировка("Номенклатура")=1 Цикл
Пока Запрос.Группировка("Контрагент")=1 Цикл
Сообщить("Номенклатура: "+Запрос.Номенклатура+" Контрагент: "+Запрос.Контрагент+" Цена "+Запрос.Цена);
Сообщить("Валюта: "+Запрос.Валюта+" Единица: "+Запрос.Единица); // вот эта строка ничего не выводит
КонецЦикла;
КонецЦикла;
КонецЕсли;
Примерно так -я хочу увидеть значения Валюты и Единицы - а мне запрос ничего не показывает (в регистре данная информация присутствует - проверял)"
|Фирма= Регистр.Цены.Фирма;
|Номенклатура= Регистр.Цены.Номенклатура;
|Контрагент= Регистр.Цены.Контрагент;
|Цена= Регистр.Цены.Цена;
|Валюта= Регистр.Цены.Валюта; // ЭТО РЕКВИЗИТ
|Единица= Регистр.Цены.Единица; // ЭТО РЕКВИЗИТ
|Функция КонОстЦена= КонОст(Цена);
|Условие(Договор в ВыбДоговор);
|Группировка Номенклатура без групп;
|Группировка Контрагент без групп;
Запрос=СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=1 Тогда
Пока Запрос.Группировка("Номенклатура")=1 Цикл
Пока Запрос.Группировка("Контрагент")=1 Цикл
Сообщить("Номенклатура: "+Запрос.Номенклатура+" Контрагент: "+Запрос.Контрагент+" Цена "+Запрос.Цена);
Сообщить("Валюта: "+Запрос.Валюта+" Единица: "+Запрос.Единица); // вот эта строка ничего не выводит
КонецЦикла;
КонецЦикла;
КонецЕсли;
Примерно так -я хочу увидеть значения Валюты и Единицы - а мне запрос ничего не показывает (в регистре данная информация присутствует - проверял)"
- 1
- 2
Читают тему
(гостей: 1)