#0
by Deryni
Имеем регистр Расчёты с подотчётными лицам. Учёт ведётся в разрезе подотчётных лиц и валют. Хочу отчёт, где в строках - подотчётные лица, под ними документы, в колонках валюты. Каждый блок колонок Нач. ост, Приход, Расход, Кон. ост. В конце Итого в валюте, которую выбирает пользователь. Для простоты пусть это будет доллар. Сами курсы валют передаю внешним набором данных (таблица значений). Это связано с тем, что в системе есть курсы для разных стран и запрос по курсам валют - отдельная сложная тема. Поэтому мне удобнее получать таблицу курсов заранее и потом передавать в запрос именно таблицей. Естественно наборы связаны между собой. Для расчёта, собственно по курсу используются вычисляемые поля СКД. И всё вроде как хорошо. Но вычисляемому полю нельзя присвоить роль. Получается вот что. Все мы знаем, что при запросе ОстаткиИОбороты кроме собственно документов получаются ещё 2 пустых строки с начальным и конечным остатком. Они выводятся в отчёт. Ну выводятся и фиг с ними, подавить то вывод можно. Но из-за того, что вычисляемым полям нельзя задать роль получается, что сумма в долларах в начальном и конечном остатке задваивается Т.е. например у сотрудника Вася есть долг на начало 600 рублей. Это 10 долларов. Но в отчёте показывает 20. Потому что в самом запросе поле Начальный остаток имеет роль "Начальный остаток", а вот вычисляемое поле Начальный остаток долл. роли не имеет и задать её нельзя. Подскажите, как правильно сделать. Спасибо.
#2
by Deryni
Ну естественно Регистратор и ПериодСекунда. Поэтому остатки по валютам показывает правильно. Неправильно показываются только значения вычисляемых полей. Период тоже выбран Регистратор.
#3
by Deryni
Т.е. в приведенном примере в колонке Рубль показывает начальный остаток 600 (что правильно), а вот в колонке Доллар - 20.
#6
by Deryni
Периодичность - Авто. а как я в запрос передам таблицу значений? А поля связанных наборов данных я в запросе использовать не могу. Или же не знаю, как.
#8
by Deryni
я в курсе. У меня в источнике данных 2 набора данных. Собственно запрос по регистру и Таблица значений. Но в запросе поля этой таблицы я использовать не могу. Только в вычисляемых полях.
#10
by Deryni
Подскажи как. Я не знаю. Пишу в запросе поле ТаблицаКурсов.Курс. Ругается. ТаблицаКурсов - это второй набор данных.
#13
by DrShad
это запрос в СКД? а где параметры вирт таблицы? ну и помещай данные из ТЗ во временную, это тоже во временную, а потом соединяй или объединяй две временные таблицы
#14
by Deryni
Т.е. мне нужно сформировать таблицу значений из запроса по регистру, в ней всё пересчитать, а потом её уже использовать как источник для СКД. Ну такая идея приходила мне в голову, но я думал, что всё-таки можно решить вопрос другим методом. Виртуальные таблицы в запросе я использовать не могу. СКД не умеет получать в запросе данные из таблицы значений. Это можно делать только в объекте Запрос. Передать ему параметром ТЗ, в запросе выбрать все её данные в ВТ, а потом ВТ использовать дальше.
#15
by Deryni
Что значит "где параметры"? Параметры начало периода и конец периода СКД добавляем само. Как и и ДвиженияИГраницыПериода. Оно работает правильно для полей запроса, для которых заданы роли. Проблема возникает именно с вычисляемыми полями. Нельзя поместить ТЗ во временную таблицу в запросе в СКД.
#18
by Курцвейл
Очень странно работают вычисляемые поля у тебя. Может нужно агрегирующую функцию применить или назначить его в ресурс? Кроме того пересчет по курсу можно вынести в общий модуль и под отладкой посмотреть что у тебя происходит с СКД
#19
by Deryni
Потому что такие начальные условия задачи. Там очень сложная структура курсов. Есть несколько регистров с курсами. Плюс курс нужно брать средний за период. Для этого у меня уже есть готовые процедуры. Зачем мне повторять эти запросы в каждом отчёте, когда можно получить таблицу курсов заранее и передать? Вопрос вообще не в этом. Вопрос в том, возможно ли такое, как я хочу именно в таком варианте со связыванием наборов данных, или нужно искать другие пути.
#20
by DrShad
ну ты же уже дошел до того что вычисляемые поля не имеют возможности быть выбранными в наборе данных - ищи другие пути
#21
by Deryni
Это не важно. Если без пересчёта всё работает хорошо. Остатки по каждой валюте считаются правильно. Да оно правильно считает по курсу, оно просто не понимает, что СуммаНачОстДолл - это начальный остаток и не нужно его суммировать. Хорошо. Результат выполнения СКД с группировкой по документам выглядит так: Сотрудник Вася - 600 И вот оно правильно показывает 600, но в долларах считает 2 по 600. Потом, что вычисляемому полю нельзя присвоить роль. Я понимаю, что у меня происходит. Он первые две пустых строки суммирует. Я не понимаю, как это обойти и заставить его считать только одну строку.
#24
by Deryni
Я не могу игнорировать NULL. Как минимум один раз я должен остаток посчитать. Нет, не похоже. Остатки в разрезе документов как раз работают на ура. Вопрос именно в том, что вычисляемые поля не имеют роли. Поэтому он не воспринимает их как остатки и просто суммирует.
#25
by Курцвейл
А причем тут роль? Твои вычисленные поля должны быть ресурсом. ЗЫ Так же слабо понятна причина задвоения.
#26
by Курцвейл
+ Попробуй такой вариант, добавь группировку ПериодСекунда, а в группировке Регистратор не отображать Нач и Кон остатки.
#27
by Deryni
Причина задвоения - простая. Когда выполняется запрос по ВТ с периодичностью Регистратор там всегда будет 2 строки с пустым регистратором. Это остаток на начало и на конец. Если задать роли для поле СуммаНачальныйОстаток и СуммаКонечныйОстаток, то СКД понимает, что это остатки и не суммирует остатки в этих двух строках для группировки более высокого уровня. А вот для вычисляемых полей - она не понимает. ПериодСекунда у меня в запросе есть. Именно поэтому без вычисляемых полей всё работает ок.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- СКД: v8: СКД и произвольный макет
- СКД: СКД. Понимает ли СКД ссылки на МенеджерВременныхТаблиц?
- СКД: как в СКД значеняи параметров по умолчанию заполнять?
- СКД: Как подставить GUID организации в СКД
- СКД: Диаграмма в СКД
- СКД: СКД. Как задать устанавливать параметры вложенных схем СКД?
- СКД: Объединение в СКД
- СКД: СКД - можно ди получить промежуточные итоги по колонкам
- СКД: СКД Итоги. Начальный и конечный остаток
- СКД: Настройки СКД
- СКД: СКД: Программное обращение к полям группировки СКД
- СКД: СКД. Как переоределить действие кнопки "Сформировать" отчета, созданного в СКД?
В этой группе 1С
- Компенсация за молоко ЗУП 2.5
- Подготовка данных для передачи в ПФР задваивает суммы
- Розница 2.1. Можно ли запретить изменять справочники центра на узлах РИБ?
- План счетов - к счету добавить субконто в конфигураторе (в пользовательском режиме они есть)
- оприходовать на забалансовый счет
- Подпись интервала в диаграмме Ганта
- Ссылки в поле HTML
- неправильное заполнение приказа на отпуск
- Как вызвать хранимую процедуру SQL из 1С?
- Группировки колонок в универсальном отчёте на платформе 8.3
- (УТ 10.3) Регистр Партии товаров на складах, учет НДС
- Как программно установить курсор на элемент управляемой формы?
- Выплаты призов и подарков в 1с ЗУП, ред.3.1
- v7: Новое решение старых проблем. "Config Spy" для 1С:Предприятие 7.7 от АЛьФа
- УНФ. Как отразить курсовую разницу на себестоимости?
- УПП. Партионный учет. Чем отличаются регистры НЗП и Материалы в производстве?
- Отчет на СКД как передать ему параметры с обработки
- УФ Кнопка.Пометка программное изменение не работает
- Вопрос по разделению чеков в УТ
- УТ 11.2 ЕГАИС Продажа в розницу юридическому лицу при оплате безналом