Имя: Пароль:
1C
1С v8
Запрос в УПП
,
0 asder117
 
05.05.15
20:31
Уважаемые приветствую! что-то мозг от жары вскипел. Подскажите плз. есть обработка по бп 2.0 для проверки ведения учета пбу. в УПП ругается на запрос
Запрос.Текст = "
    |ВЫБРАТЬ
    |    Остатки.СуммаОстаток КАК СуммаОстаток,
    |    Остатки.СуммаНУОстаток КАК СуммаНУОстаток,
    |    Остатки.СуммаПРОстаток КАК СуммаПРОстаток,
    |    Остатки.СуммаВРОстаток КАК СуммаВРОстаток
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ГраницаОстатков, Счет В ИЕРАРХИИ (&Счет),&ВидыСубконто ,#Фильтр# ) КАК Остатки    ";

Вопрос первый - можно ли ее использовать в Упп
и из него второй как переделать тогда ентот запрос? заранее спасибо.
1 ДенисЧ
 
05.05.15
20:33
На что ругается - мы должны угадать?
2 asder117
 
05.05.15
20:34
(1) Остатки.СуммаНУОстаток КАК СуммаНУОстаток,
    |    Остатки.СуммаПРОстаток КАК СуммаПРОстаток,
    |    Остатки.СуммаВРОстаток КАК СуммаВРОстаток
енти поля найти не могет
3 DrShad
 
05.05.15
20:34
Нельзя, убрать из запроса обращение к полям которых нет
4 ДенисЧ
 
05.05.15
20:35
(2) Ну... Если нету этих полей... Так может, их убрать?
5 asder117
 
05.05.15
20:37
незнаю но они потом используются
весь код
/ Функция возвращает остаток по счету бухгалтерского учета
// Возвращаемое значение - таблица значений в развороте по аналитике с учетом фильтра
Функция ПолучитьОстаток(Организация, Период, Счет, ГраницаКонецПериода=Истина, ВидУчета = Неопределено, Субконто1 = Неопределено, Субконто2 = Неопределено, Субконто3 = Неопределено)

    ВидПланаСчетов = Счет.Метаданные().Имя;

    Субконто    = Новый Массив(3);
    Субконто[0] = Субконто1;
    Субконто[1] = Субконто2;
    Субконто[2] = Субконто3;

    ФильтрПоСубконто = "";

    Для Каждого ТекВидСубконто Из Счет.ВидыСубконто Цикл
        Если НЕ ТекВидСубконто.ТолькоОбороты И НЕ Субконто[ТекВидСубконто.НомерСтроки-1] = Неопределено Тогда
            ФильтрПоСубконто = ФильтрПоСубконто + " И Субконто" + ТекВидСубконто.НомерСтроки + " В (&Субконто" + ТекВидСубконто.НомерСтроки+")";
        КонецЕсли;
    КонецЦикла;
    
    ОтборПоОрганизации        = (не Метаданные.РегистрыБухгалтерии[ВидПланаСчетов].Измерения.Найти("Организация")= Неопределено);

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ГраницаОстатков",  ?(ГраницаКонецПериода , Новый Граница(КонецДня(Период), ВидГраницы.Включая) ,  Новый Граница(НачалоДня(Период), ВидГраницы.Включая)    ));    
    Запрос.УстановитьПараметр("Счет"        , Счет);
    Запрос.УстановитьПараметр("Организация" , Организация);
    ВидыСубконто = Счет.ВидыСубконто.ВыгрузитьКолонку("ВидСубконто");
    Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
    Запрос.УстановитьПараметр("Субконто1",Субконто1);    
    Запрос.УстановитьПараметр("Субконто2",Субконто2);    
    Запрос.УстановитьПараметр("Субконто3",Субконто3);    
    
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Остатки.СуммаОстаток КАК СуммаОстаток,
    |    Остатки.СуммаНУОстаток КАК СуммаНУОстаток,
    |    Остатки.СуммаПРОстаток КАК СуммаПРОстаток,
    |    Остатки.СуммаВРОстаток КАК СуммаВРОстаток
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ГраницаОстатков, Счет В ИЕРАРХИИ (&Счет),&ВидыСубконто ,#Фильтр# ) КАК Остатки    ";
    
    Фильтр = "";
    Если ОтборПоОрганизации Тогда
        Фильтр = Фильтр + " И Организация = &Организация";
    КонецЕсли;
    Фильтр = Фильтр+ ФильтрПоСубконто;
    Если Не ПустаяСтрока(Фильтр) Тогда // Убираем первое "И"
        Фильтр = Сред(Фильтр, 3);
    КонецЕсли;
    
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Фильтр#", Фильтр);    
    
    
    Остатки = Запрос.Выполнить().Выгрузить();

    мСуммаОстаток=0;    
    мСуммаНУОстаток=0;    
    мСуммаПРОстаток=0;    
    мСуммаВРОстаток=0;    
    
    Для Каждого СтрокаЗапроса Из Остатки Цикл
        мСуммаОстаток=мСуммаОстаток+СтрокаЗапроса.СуммаОстаток;
        мСуммаНУОстаток=мСуммаНУОстаток+СтрокаЗапроса.СуммаНУОстаток;
        мСуммаПРОстаток=мСуммаПРОстаток+СтрокаЗапроса.СуммаПРОстаток;
        мСуммаВРОстаток=мСуммаВРОстаток+СтрокаЗапроса.СуммаВРОстаток;
    КонецЦикла;
    
    СтруктураРезультата=Новый Структура();
    СтруктураРезультата.Вставить("СуммаОстаток",мСуммаОстаток);
    СтруктураРезультата.Вставить("СуммаНУОстаток",мСуммаНУОстаток);
    СтруктураРезультата.Вставить("СуммаПРОстаток",мСуммаПРОстаток);
    СтруктураРезультата.Вставить("СуммаВРОстаток",мСуммаВРОстаток);
    
    
    Возврат СтруктураРезультата;

КонецФункции // ПолучитьОстатокПоСчету()
6 DrShad
 
05.05.15
20:38
Забей и не юзай в УПП из бп
7 asder117
 
05.05.15
20:44
(6) ТАК В Т И Д что мне такая обработка нужна в упп
8 ДенисЧ
 
05.05.15
20:46
(7) Хочешь, пилу продам? ))
9 asder117
 
05.05.15
20:46
(8) да есть на у меня. толку то. значит никак?
10 ДенисЧ
 
05.05.15
20:47
(9) ЧТо значит "никак"? Пилу в руки и пилить. Потом напильником довести.
11 RomanYS
 
05.05.15
20:49
в УПП два плана счетов, поэтому НУ, ВР и ПР надо брать из РБ "Налоговый". Но это там не ресурсы, а измерение - "вид учета". Поэтому или три "объединить", или три
"выбора"
12 asder117
 
05.05.15
20:52
(11) Спасибо уважаемый т.е из РБ лучше одним запросом хапнуть но вопрос как тогда в нем менять эти измерения сл-но 3 запроса. а параметры такие же как и у БУ?
13 RomanYS
 
05.05.15
20:55
либо объединить три запроса в каждом фильтр типа ВидУчета = &ПР, либо три поля типа
ВЫБОР когда ВидУчета = &ПР Тогда РБ.Сумма иначе 0 как СуммаПР,
14 asder117
 
05.05.15
21:08
(13) как то так
ВЫБРАТЬ
    НалоговыйОстатки.ВидУчета,
    НалоговыйОстатки.СуммаОстаток
    ИЗ
    РегистрБухгалтерии.Налоговый.Остатки КАК НалоговыйОстатки
ГДЕ
    НалоговыйОстатки.ВидУчета = &ВидУчета1


ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    НалоговыйОстатки.ВидУчета,
    НалоговыйОстатки.СуммаОстаток
ИЗ
    РегистрБухгалтерии.Налоговый.Остатки КАК НалоговыйОстатки
ГДЕ
    НалоговыйОстатки.ВидУчета = &ВидУчета2


ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    НалоговыйОстатки.ВидУчета,
    НалоговыйОстатки.СуммаОстаток
ИЗ
    РегистрБухгалтерии.Налоговый.Остатки КАК НалоговыйОстатки
ГДЕ
    НалоговыйОстатки.ВидУчета = &ВидУчета3

Но вопрос будет ли работать в нем такое
РегистрБухгалтерии.Налоговый.Остатки(&ГраницаОстатков, Счет В ИЕРАРХИИ (&Счет),&ВидыСубконто ,#Фильтр# ) КАК Остатки    ";
15 RomanYS
 
05.05.15
21:17
(14) блин...
ВидУчета не выбирай, только отбор;

суммы из разных запросов в разные поля:
...
Сумма КАК НУ,
0 КАК ПР,
0 КАК ВР
...
0 КАК НУ,
Сумма КАК ПР,
0 КАК ВР

условия из ГДЕ лучше засунуть в #Фильтр#

&Счет - из другого ПС,
&ВидыСубконто - скорей всего те же, но зависит от конкретного счета
16 asder117
 
05.05.15
21:54
(15) &Счет - из другого ПС,  енто я понял но у меня счет передается в процедуру
ПолучитьОстаток(Организация, Период, Счет, ГраницаКонецПериода=Истина, ВидУчета = Неопределено, Субконто1 = Неопределено, Субконто2 = Неопределено, Субконто3 = Неопределено)
17 asder117
 
05.05.15
22:03
(15) (16) Все вроде сам дошел
18 шаэс
 
05.05.15
22:52
(17) а что в БП этот отчет проверяет? в УПП такого точно нет?
19 DrShad
 
05.05.15
22:58
НУ
20 шаэс
 
05.05.15
23:02
(19) это мне?
а мой любимый "Анализ состояния налогового учета по налогу на прибыль" не делает тоже самое?
21 DrShad
 
05.05.15
23:10
А откуда же мне знать?
22 disk-2008
 
05.05.15
23:26
БП
"Отчет содержит аналитический анализ состояния налогового учета и учета разниц в оценке активов и обязательств, который проводится методом сопоставления данных бухгалтерского учета, налогового учета и учета разниц в оценке активов и обязательств."

УПП
"Отчет содержит аналитический анализ состояния налогового учета и учета разниц в оценке активов и обязательств.
Анализ проводится методом сопоставления данных бухгалтерского учета, налогового учета и учета разниц в оценке активов и обязательств."
23 шаэс
 
05.05.15
23:31
(22) я вот думаю, что может ТС имеет в виду что-то другое...
24 disk-2008
 
05.05.15
23:35
(23)Ну это интересно даже - что же такое на эту тему есть в БП, что УПП не умеет.
25 шаэс
 
05.05.15
23:40
(24) ну хз... а вдруг?
26 DrShad
 
05.05.15
23:47
Да он вообще не в теме
27 sergeev-ag-1977
 
06.05.15
06:45
Такой запрос не будет работать!
Ругается на то что нет объекта СуммаНу и прочих ...
Посмотри на регистр бухгалтерии Хозрасчетный в бух. 2.0 и УПП и всё поймёшь.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.