Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Арифметические операции с результатами запроса
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
meverikxp
Здравствуйте, как реализовать арифметическую операцию у же после текста самого запроса. типа:
ВЫБРАТЬ СУММА (Количество) КАК Кол, СУММА(Сумма) КАК Сум
ИЗ
Документ.Приходная

Результат=Запрос.выполнить().Выбрать()
Пока Результат.Следующий Цикл
         Цена=Результат.Сум/Результат.Кол
КонецЦикла

Спасибо?
Batchir
Запрос = Новый Запрос;
    ТекстЗапроса = "
    |ВЫБРАТЬ СУММА (Количество) КАК Кол,
    |СУММА(Сумма) КАК Сум
    |ИЗ
    |Документ.Приходная
    |";
    Запрос.Текст = ТекстЗапроса;
    РезультатЗапроса = Запрос.Выполнить();
    Если Не РезультатЗапроса.Пустой() Тогда
        // обходим результат зароса
        Выборка = РезультатЗапроса.Выбрать();
        Пока Выборка.Следующий() Цикл
            Цена=Выборка.Сум/Выборка.Кол
        КонецЦикла;  
    Иначе
        // обрабатываем пустой результат
    КонецЕсли;
Vofka
Ахренеть. Вот я специально открыл доступ и "уважаемым посетителям" к базе знаний, т.к. вменяемы человек должне понимать для чего этот раздел. Ну задавать в нём вопросы - это ж уже через счур.
1. Переезжаем;
2. meverikxp, переводим в группу "пользователь".
meverikxp
Ошибка:

{Форма.ФормаОтчета(59)}: Перетворення значення к типу Число не може бути виконано
Batchir
Я описал шаблон, текст запроса уже вы должны сами написать и уж тем более сами контролировать какого типа у Вас "цена"
meverikxp
Цитата(Batchir @ 27.05.11, 12:11) необходимо зарегистрироваться для просмотра ссылки
Я описал шаблон, текст запроса уже вы должны сами написать и уж тем более сами контролировать какого типа у Вас "цена"

Да все данные должны быть в типе число
Vofka
Функция есть
Число()


Я вас умоляю, откройте книгу icon_20050121.gif
meverikxp
Цитата(Vofka @ 27.05.11, 12:40) необходимо зарегистрироваться для просмотра ссылки
Функция есть
Число()


Я вас умоляю, откройте книгу icon_20050121.gif

Уже делал, та же ошибка
DartRomanius
19000000.gif
Vofka
А я знаю правильный ответ. Но не скажу 16000000.gif . Я искринне надеюсь, что вы сами додумаетесь (дочитаетесь).

И это, честно говоря, меня убивает:
Цитата
Спасибо?

Очень интересный вопрос.
meverikxp
Цитата(Vofka @ 27.05.11, 12:54) необходимо зарегистрироваться для просмотра ссылки
А я знаю правильный ответ. Но не скажу 16000000.gif . Я искринне надеюсь, что вы сами додумаетесь (дочитаетесь).

И это, честно говоря, меня убивает:

Очень интересный вопрос.

Ну я и баран, все действительно просто. Надо было написать
 Если ПустаяСтрока(Выборка.Количество) Тогда
Иначе
Цена = Выборка.Сумма/Выборка.Количество;
КонецЕсли
;
вот и все, и не надо даже проверять на постой запрос
logist
А почему не:
 Если НЕ ПустаяСтрока(Выборка.Количество) Тогда
        Цена = Выборка.Сумма/Выборка.Количество;
КонецЕсли;
Batchir
Цитата
вот и все, и не надо даже проверять на постой запрос

1. К пониманию проверки на пустой результат запроса Вы придете чуть позже ...
2. Если есть строки в документе с пустыми количествами и эти строки обрабатывать не нужно, то опишите запрос таким образом что бы в его результате не было этих строк.
meverikxp
Цитата(logist @ 27.05.11, 15:21) необходимо зарегистрироваться для просмотра ссылки
А почему не:
 Если НЕ ПустаяСтрока(Выборка.Количество) Тогда
        Цена = Выборка.Сумма/Выборка.Количество;
КонецЕсли;

Можно и так, но есть действие которое нужно выполнить если условие удовлетворится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.