Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отбор по вычисляемому полю
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
Amfiaray
Добрый день!


Есть отчет, в нем в вычисляемых полях расчитываются из месячного плана дневной и текущий и проценты выполнения месячного, текущего и дневного. формулу расчета сделал на закладке ресурсы и проставил по каким полям расчитывать, всё считается правильно, но отбор по процентам не ставится, при его установке пишет что "Поле не найдено".
Возможно ли в СКД устанавливать отбор по вычисляемому полю?
TipsyKID
В вычисляемых полях есть галочка в группе "Ограничение доступности" : "Условие". Оно у Вас ,случайно, не стоит ?
Amfiaray
Нет, не стоит

Вот выражение с закладки Ресурсы, так считаю проценты
 ВЫБОР
    КОГДА ВыставленныеСчетаАбонентамСрезПоследних.Сумма / &КоличествоДнейМесяца * &ТекущийДеньМесяца = 0
        ТОГДА 0
    ИНАЧЕ (ЕСТЬNULL(МесяцОбороты.СуммаРасход, 0) + ЕСТЬNULL(ВзаиморасчетыСПотребителямиОстатки.СуммаОстаток, 0)) / (ВыставленныеСчетаАбонентамСрезПоследних.Сумма / &КоличествоДнейМесяца * &ТекущийДеньМесяца) * 100
КОНЕЦ


А на закладке Вычисляемые поля просто пишу наименование поля, без выражения
TipsyKID
1. &КоличествоДнейМесяца * &ТекущийДеньМесяца ? Серьезно ? Просите для каждой строки при расчете ресурса рассчитывать константу которую можно передать заранее ?
2. Сложно сказать, что - то внятное без кода. Давайте обработку, я гляну.
Amfiaray
1. &КоличествоДнейМесяца * &ТекущийДеньМесяца это параметры, расчитываются заранее и передаются в отчет
2. Конфа полностью самописная, не сможите открыть, могу показать запрос и скрины с расчетом

Вот запрос:
 ВЫБРАТЬ
    ВыставленныеСчетаАбонентам.Регион,
    ВыставленныеСчетаАбонентам.Район,
    ВыставленныеСчетаАбонентам.ЛицевойСчет,
    ВыставленныеСчетаАбонентам.Услуга,
    ЕСТЬNULL(ВыставленныеСчетаАбонентам.Сумма, 0) КАК МесячныйПлан,
    ВыставленныеСчетаАбонентам.ЛицевойСчет.ГРПШРП КАК ГРП,
    ВыставленныеСчетаАбонентам.ЛицевойСчет.ГРПШРП.Родитель КАК ШРП,
    ВыставленныеСчетаАбонентам.ЛицевойСчет.Родитель КАК МУчасток,
    ВыставленныеСчетаАбонентам.ЛицевойСчет.Родитель.Родитель КАК Участок,
    ВЫБОР
        КОГДА ВыставленныеСчетаАбонентам.ЛицевойСчет.Адрес.СекторПроживания = ЗНАЧЕНИЕ(Перечисление.СектораПроживания.Коллективный)
            ТОГДА ВыставленныеСчетаАбонентам.ЛицевойСчет.Адрес.Родитель
        ИНАЧЕ ВыставленныеСчетаАбонентам.ЛицевойСчет.Адрес.Ссылка
    КОНЕЦ КАК Дом,
    ВЫБОР
        КОГДА ВыставленныеСчетаАбонентам.ЛицевойСчет.Адрес.СекторПроживания = ЗНАЧЕНИЕ(Перечисление.СектораПроживания.Коллективный)
            ТОГДА ВыставленныеСчетаАбонентам.ЛицевойСчет.Адрес.Родитель.Родитель
        ИНАЧЕ ВыставленныеСчетаАбонентам.ЛицевойСчет.Адрес.Родитель
    КОНЕЦ КАК Улица,
    ВыставленныеСчетаАбонентам.ЛицевойСчет.СтатусПодключения КАК СтатусПодключения,
    ЕСТЬNULL(-Переплата.СуммаОстаток, 0) КАК Предоплата,
    ЕСТЬNULL(ПриходТекущий.СуммаРасход, 0) КАК ПриходТекущий,
    ЕСТЬNULL(ПриходДень.СуммаРасход, 0) КАК ПриходДень,
    ЕСТЬNULL(ВыставленныеСчетаАбонентам.Сумма, 0) / &КоличествоДнейМесяца * &ТекущееКоличествоДней КАК ТекущийПлан,
    ЕСТЬNULL(ВыставленныеСчетаАбонентам.Сумма, 0) / &КоличествоДнейМесяца КАК ДневнойПлан
ИЗ
    РегистрСведений.ВыставленныеСчетаАбонентам КАК ВыставленныеСчетаАбонентам
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСПотребителями.Остатки(&ДатаНачалаОтчета, ) КАК Переплата
        ПО ВыставленныеСчетаАбонентам.ЛицевойСчет = Переплата.ЛицевойСчет
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСПотребителями.Обороты(&ДатаНачалаОтчета, &ДатаКонцаДня, , ) КАК ПриходТекущий
        ПО ВыставленныеСчетаАбонентам.ЛицевойСчет = ПриходТекущий.ЛицевойСчет
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСПотребителями.Обороты(&ДатаНачалаДня, &ДатаКонцаДня, , ) КАК ПриходДень
        ПО ВыставленныеСчетаАбонентам.ЛицевойСчет = ПриходДень.ЛицевойСчет
ГДЕ
    ВыставленныеСчетаАбонентам.Сумма > 0
    И Переплата.СуммаОстаток < 0
    И ВыставленныеСчетаАбонентам.Период МЕЖДУ &ДатаНачалаОтчета И &ДатаКонцаОтчета
    И ВыставленныеСчетаАбонентам.Услуга = &Услуга




TipsyKID
Давайте скриншоты.
Я имел ввиду , что необходимо передавать Параметр = &КоличествоДнейМесяца * &ТекущееКоличествоДней
Вы же в запросе плодите лишнии вычисления.

Ясно... Он ругается на отбор т.к. у вас ресурс рассчитывается не для всех группировок. Естественно , что поле не найдется ( поле по которому отбирают) если его не расчитывать.
Amfiaray
Попробовал убрать все галочки и поставить вообще по всем полям в Расчитывать по... ошибка сохраняется
TipsyKID
Поставте для теста на вкладке вычисляемые поля значение 1 и тип Число.
Проверьте заработает ли отчет.
Amfiaray
По числу 1 работает отбор

Понял, отборы не работают если вырадение расчета писать не на закладке Вычисляемые поля, а на закладке Ресурсы

Спасибо огромное, разобрался с этими процентами, все заработало rulez.gif

Надо было всего лишь продублировать формулу расчета на закладке вычисляемые поля
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.