8.х Запрос на подсчет суммы

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем DIZZID, 19 ноя 2013.

  1. TopicStarter Overlay
    DIZZID
    Offline

    DIZZID

    Регистрация:
    19 ноя 2013
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Добрый день.Подскажите,как запросом посчитать сумму.Сумму надо подсчитать по столбцу "Фрахт" справочника "Рейсы",при условии,что значение столбца "НомерКругорейса" справочника "Рейсы" буду совпадать с столбцом "НомерКруга" справочника "Кругорейсы" и передать значение в сумму в столбец "Фрахт" справочника "Кругорейс" при том же значении...
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    как-то так
    Код:
    ВЫБРАТЬ
    Кругорейсы.Ссылка КАК Кругорейс,
    СУММА(Рейсы.Фрахт) КАК Фрахт
    ИЗ
    Справочник.Кругорейсы КАК Кругорейсы
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Рейсы КАК Рейсы
    ПО Рейсы.НомерКругорейса=Кругорейсы.НомерКруга
    СГРУППИРОВАТЬ ПО
    Кругорейсы.Ссылка
  3. TopicStarter Overlay
    DIZZID
    Offline

    DIZZID

    Регистрация:
    19 ноя 2013
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо!!! А как значение записать в таблицу?
  4. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    в какую табицу?
  5. TopicStarter Overlay
    DIZZID
    Offline

    DIZZID

    Регистрация:
    19 ноя 2013
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Запрос=Новый запрос;
    Запрос.Текст="ВЫБРАТЬ
    |СУММА(Рейсы.Фрахт) КАК Фрахт
    |ИЗ
    |Справочник.Рейсы КАК Рейсы
    | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Кругорейсы КАК Кругорейсы
    | ПО Рейсы.НомерКруга = Кругорейсы.Наименование";

    Фрахт=запрос.Выполнить().Выгрузить();

    Но вот почему то в Фрахт ничего не предаеться;
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    у вас в переменную Фрахт попадет таблица значений, а не число
  7. TopicStarter Overlay
    DIZZID
    Offline

    DIZZID

    Регистрация:
    19 ноя 2013
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    а как реализовать предыдущий запрос так,что бы считалось сумма и это число передать в переменную...
  8. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Код:
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Фрахт = Выборка.Фрахт;
    Иначе
    Фрахт = 0;
    КонецЕсли;
    
    то есть берем первую запись, которую вернул запрос и если она есть - из нее берем значение колонки, если нет - то 0

    только ваш запрос в последнем варианте вернет не фрахт по конкретному кругорейсу, а все суммы фрахта по всем кругорейсам
  9. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Может уже попробуете сами написать код а не какать, заодно и вопрос бы уточнился.
  10. TopicStarter Overlay
    DIZZID
    Offline

    DIZZID

    Регистрация:
    19 ноя 2013
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    СПАСИБО!!! Понял как работает)Не важно сколько значений в результате запроса-все равно таблица значений))) И если даже 1,то надо брать 1й...Спасибо,азобрался и все работает)

Поделиться этой страницей