Имя: Пароль:
1C
1С v8
Не удается установить параметр на запрос
,
0 FreeWay
 
08.11.13
01:04
Имеется ниже следующий код
[spoiler=Раскрывающийся Текст][code=Ic]ВЫБРАТЬ
    Данные.ЛицевойСчет,
    ВЫРАЗИТЬ(ВЫБОР
            КОГДА Данные.СуммаСреднемесячныхНачислений = 0
                ТОГДА "нет данных"
            ИНАЧЕ Данные.СуммаЗадолженности / Данные.СуммаСреднемесячныхНачислений
        КОНЕЦ КАК ЧИСЛО(15, 1)) КАК МесяцевЗадолженности,
    Данные.СуммаЗадолженности,
    Данные.СуммаСреднемесячныхНачислений,
    1 КАК КоличествоЛицевыхСчетов
ИЗ
    (ВЫБРАТЬ
        Данные.ЛицевойСчет КАК ЛицевойСчет,
        СУММА(Данные.СуммаЗадолженности) КАК СуммаЗадолженности,
        СУММА(Данные.СуммаСреднемесячныхНачислений) КАК СуммаСреднемесячныхНачислений
    ИЗ
        (ВЫБРАТЬ
            ркЗадолженностьЛицевыхСчетовОстатки.ЛицевойСчет КАК ЛицевойСчет,
            ркЗадолженностьЛицевыхСчетовОстатки.СуммаОстаток КАК СуммаЗадолженности,
            0 КАК СуммаСреднемесячныхНачислений
        ИЗ
            РегистрНакопления.ркЗадолженностьЛицевыхСчетов.Остатки КАК ркЗадолженностьЛицевыхСчетовОстатки
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            ркСреднемесячныеНачисленияСрезПоследних.ЛицевойСчет,
            0,
            ркСреднемесячныеНачисленияСрезПоследних.Сумма
        ИЗ
            РегистрСведений.ркСреднемесячныеНачисления.СрезПоследних КАК ркСреднемесячныеНачисленияСрезПоследних) КАК Данные
    
    СГРУППИРОВАТЬ ПО
        Данные.ЛицевойСчет) КАК Данные[/code][/spoiler]

в нем есть вычисляемое поле кол-во "МесяцевЗадолженности" и "Период" по регистру сведений и накопления.

в СКД "Период" проставляется в Параметрах СКД и "МесяцевЗадолженности" в Настройка->Отбор.

Вопрос: как наложить эти два условия, что бы программно, а не через СКД использовать запрос?

У меня пока не получилось ;(

а пробовал примерно так
[spoiler=Раскрывающийся Текст][code=Ic]ВЫБРАТЬ
    Данные.ЛицевойСчет,
    ВЫРАЗИТЬ(ВЫБОР
            КОГДА Данные.СуммаСреднемесячныхНачислений = 0
                ТОГДА "нет данных"
            ИНАЧЕ Данные.СуммаЗадолженности / Данные.СуммаСреднемесячныхНачислений
        КОНЕЦ КАК ЧИСЛО(15, 1)) КАК МесяцевЗадолженности,
    Данные.СуммаЗадолженности,
    Данные.СуммаСреднемесячныхНачислений,
    1 КАК КоличествоЛицевыхСчетов
ИЗ
    (ВЫБРАТЬ
        Данные.ЛицевойСчет КАК ЛицевойСчет,
        СУММА(Данные.СуммаЗадолженности) КАК СуммаЗадолженности,
        СУММА(Данные.СуммаСреднемесячныхНачислений) КАК СуммаСреднемесячныхНачислений
    ИЗ
        (ВЫБРАТЬ
            ркЗадолженностьЛицевыхСчетовОстатки.ЛицевойСчет КАК ЛицевойСчет,
            ркЗадолженностьЛицевыхСчетовОстатки.СуммаОстаток КАК СуммаЗадолженности,
            0 КАК СуммаСреднемесячныхНачислений
        ИЗ
            РегистрНакопления.ркЗадолженностьЛицевыхСчетов.Остатки КАК ркЗадолженностьЛицевыхСчетовОстатки
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            ркСреднемесячныеНачисленияСрезПоследних.ЛицевойСчет,
            0,
            ркСреднемесячныеНачисленияСрезПоследних.Сумма
        ИЗ
            РегистрСведений.ркСреднемесячныеНачисления.СрезПоследних КАК ркСреднемесячныеНачисленияСрезПоследних) КАК Данные
    
    СГРУППИРОВАТЬ ПО
        Данные.ЛицевойСчет) КАК Данные
         ГДЕ    Данные.Период >=(&Период) и Данные.МесяцевЗадолженности = &МесяцевЗадолженности";
        Запрос.УстановитьПараметр("Период", Период);
        Запрос.УстановитьПараметр("МесяцевЗадолженности", МесяцевЗадолженности);
          ТаблицаЛицевыхСчетов = Запрос.Выполнить().Выбрать();
[/code][/spoiler]

Ругается на неверное условие в запросе.
1 sanja26
 
08.11.13
01:18
Как же достали вложенные запросы
2 FreeWay
 
08.11.13
01:21
Код не мой, а разгребать мне ((
3 sanja26
 
08.11.13
01:26
(2) так ты выбери период и месяцзадолженности во вложенном запросе в поля или накладывай условие внутри вложенного запроса
4 FreeWay
 
08.11.13
01:36
(3)
уровень у меня слабоват (
5 FreeWay
 
08.11.13
02:44
6 Wobland
 
08.11.13
06:08
а вырази "нет данных" как число, пожалуйста
7 M_Flint
 
08.11.13
07:30
Где в Данные есть поле с именем Период?

   ГДЕ    Данные.Период >=(&Период) и Данные.МесяцевЗадолженности = &МесяцевЗадолженности";

да и месяцевЗадолженности там нет.
8 1dvd
 
08.11.13
07:35
ГДЕ    Данные.Период >=(&Период) и Данные.МесяцевЗадолженности = &МесяцевЗадолженности";
        Запрос.УстановитьПараметр("Период", Период);
        Запрос.УстановитьПараметр("МесяцевЗадолженности", МесяцевЗадолженности);
          ТаблицаЛицевыхСчетов = Запрос.Выполнить().Выбрать();


вместо точек с запятой ставь И, ИЛИ
9 1dvd
 
08.11.13
07:35
О, пардон. не туда глянул
10 Ofizer
 
08.11.13
07:37
(7) МесяцевЗадолженности есть, а вот Период, действительно нет
11 M_Flint
 
08.11.13
08:46
(10), МесяцевЗадолженности формируется на основании Данных, но в Данные нет такого поля.
12 Ofizer
 
08.11.13
10:04
(11) согласен, не так выразился, я имел ввиду, что поля Период совсем нет, а не то что МесяцевЗадолженности находится в Данных
13 FreeWay
 
08.11.13
14:28
(5) Решил через СКД внешнего отчета
http://files.mail.ru/8EC8C548831E4D9B910BD5553197B28D - файл с примером
[spoiler=Раскрывающийся Текст][code=Ic]ВЫБРАТЬ
    ркЗадолженностьЛицевыхСчетовОстатки.ВидРасчета,
    ркЗадолженностьЛицевыхСчетовОстатки.СуммаОстаток КАК Сумма,
    ВложенныйЗапрос.МесяцевЗадолженности
ИЗ
    (ВЫБРАТЬ
        Данные.ЛицевойСчет КАК ЛицевойСчет,
        ВЫРАЗИТЬ(ВЫБОР
                КОГДА Данные.СуммаСреднемесячныхНачислений = 0
                    ТОГДА "нет данных"
                ИНАЧЕ Данные.СуммаЗадолженности / Данные.СуммаСреднемесячныхНачислений
            КОНЕЦ КАК ЧИСЛО(15, 1)) КАК МесяцевЗадолженности,
        Данные.СуммаЗадолженности КАК СуммаЗадолженности,
        Данные.СуммаСреднемесячныхНачислений КАК СуммаСреднемесячныхНачислений,
        1 КАК КоличествоЛицевыхСчетов
    ИЗ
        (ВЫБРАТЬ
            Данные.ЛицевойСчет КАК ЛицевойСчет,
            СУММА(Данные.СуммаЗадолженности) КАК СуммаЗадолженности,
            СУММА(Данные.СуммаСреднемесячныхНачислений) КАК СуммаСреднемесячныхНачислений
        ИЗ
            (ВЫБРАТЬ
                ркЗадолженностьЛицевыхСчетовОстатки.ЛицевойСчет КАК ЛицевойСчет,
                ркЗадолженностьЛицевыхСчетовОстатки.СуммаОстаток КАК СуммаЗадолженности,
                0 КАК СуммаСреднемесячныхНачислений
            ИЗ
                РегистрНакопления.ркЗадолженностьЛицевыхСчетов.Остатки КАК ркЗадолженностьЛицевыхСчетовОстатки
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                ркСреднемесячныеНачисленияСрезПоследних.ЛицевойСчет,
                0,
                ркСреднемесячныеНачисленияСрезПоследних.Сумма
            ИЗ
                РегистрСведений.ркСреднемесячныеНачисления.СрезПоследних КАК ркСреднемесячныеНачисленияСрезПоследних) КАК Данные
        
        СГРУППИРОВАТЬ ПО
            Данные.ЛицевойСчет) КАК Данные) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ркЗадолженностьЛицевыхСчетов.Остатки КАК ркЗадолженностьЛицевыхСчетовОстатки
        ПО (ркЗадолженностьЛицевыхСчетовОстатки.ЛицевойСчет = ВложенныйЗапрос.ЛицевойСчет)[/code][/spoiler]
AdBlock убивает бесплатный контент. 1Сергей