Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Формула в запросе
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
4andriy
Версия 1С 7.7 делаю запрос для отчета.

Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Количество = Документ.Акт.Количество;
    |Группировка Акт упорядочить по Акт.ДатаДок;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

Мне нужно вставить такой параметр как итог по количеству позиций по каждому документу:
Количество = Итог("Документ.Акт.Количество");


Но почему-то в запрос эту формулу вставить не могу. Как только вставляю формулу в запрос то выходит ошибка:

{Отчет.новый2.Форма.Модуль(14)}: Пропущен символ ';'


 ! 

Смотрю у вас патологическое не желание выделять код.
В следующий раз сообщения будут удалены без предупреждений.
 
Vofka
Количество = Итог("Документ.Акт.Количество");

Это что?
4andriy
Сейчас при выводе формы Количество у меня выводиться число 1, хотя в акте у меня 3 позиции.. вот хотел что-то придумать что-бы оно подсумировало...
Можно написать Количество1 = Итог("Документ.Акт.Количество");

Ошибка:

Количество=Итог<<?>>("Количество");
{Отчет.новый2.Форма.Модуль(27)}: Функция не обнаружена (Итог)

"//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Количество = Документ.Акт.Количество;
    |Группировка Акт упорядочить по Акт.ДатаДок;
    |"//}}ЗАПРОС


сдесь я хотел что-бы количество было просумировано из всего документа
Cthulhu
|Функция ИтКво=Сумма(Количество);

Читать книжки - полезно! Например, "Описание встроенного языка"... Главу 34 (Язык запросов)... Описание оператора "Функция"....
4andriy
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Количество = Документ.Акт.Количество;
|Функция ИтКво=Сумма(Количество);
|Группировка Акт упорядочить по Акт.ДатаДок;
|"//}}ЗАПРОС


Не работает...

{Отчет.МодРеестр.Форма.Модуль(20)}: Функция ИтКво=Сумма( <<?>> Документ.Акт.Количество);
Запрос[7] : Ожидается логическое выражение

Я извиняюсь но может эту функцию я не туда поставил
Vofka
4andriy, специально для тех кто в танке я повторюсь ещё раз: код выделяется тегами [ code ][ /code ] (без пробелов)? Или вы издеваетесь? В следующий ваши посты с неправильно вставленным кодом я точно буду тереть!
4andriy
Понял. В разделе BB-коды в примере рамочки не было.
Flexy
А так? И не особо понятно что надо вдиеть именно. Именно сумму количества товара в строке? Или может сумму количества позиций в таб части дока?
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Акт = Документ.Акт.ТекущийДокумент;
|Количество = Документ.Акт.Количество;
|Функция ИтКво=Сумма(Количество);
|Группировка Акт упорядочить по Акт.ДатаДок;
|"//}}ЗАПРОС
;
Cthulhu
Цитата(4andriy @ 28.02.13, 16:54) необходимо зарегистрироваться для просмотра ссылки
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Количество = Документ.Акт.Количество;
|Функция ИтКво=Сумма(Количество);
|Группировка Акт упорядочить по Акт.ДатаДок;
|"//}}ЗАПРОС


Не работает...

{Отчет.МодРеестр.Форма.Модуль(20)}: Функция ИтКво=Сумма( <<?>> Документ.Акт.Количество);
Запрос[7] : Ожидается логическое выражение

Я извиняюсь но может эту функцию я не туда поставил

В приведенном куске кода напрочь отсутствует фрагмент, фигурирующий в приведенном сообщении об ошибке.
Ваши выводы?
(мои выводы - увы, весьма неутешительны для Вас, поэтому попрридержу их при себе)
4andriy
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Акт = Документ.Акт.ТекущийДокумент;
    |Количество = Документ.Акт.Количество;
    |Группировка Акт упорядочить по Акт.ДатаДок;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;


Если я вывожу в форму так как сейчас есть из процедуры - то у меня количество = 1, ибо процедура мне не сумирует количество услуг в акте (у меня их 2 шт.), а мне надо что-бы количество услуг было просумировано из всего документа.

Цитата(Cthulhu @ 28.02.13, 18:24) необходимо зарегистрироваться для просмотра ссылки
В приведенном куске кода напрочь отсутствует фрагмент, фигурирующий в приведенном сообщении об ошибке.
Ваши выводы?
(мои выводы - увы, весьма неутешительны для Вас, поэтому попрридержу их при себе)


ААА :0) Теперь я понял... Я в 1С еще не такой гуру)))))))))) Пасибо!
Домовик
..
|Функция Счетчик() когда (Количество<>0);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.