Имя: Пароль:
1C
 
Запросы
↓ (Волшебник 09.03.2025 15:17)
0 Дима1С-ник
 
naïve
09.03.25
12:06
Нужно выполнить два запроса.
Первый — получить общую сумму закупок этого контрагента
за текущий календарный год (Для указания в запросе дат начала и окончания года можно воспользоваться
встроенными функциями «НачалоГода» и «КонецГода») и сохранить её в отдельную переменную, например «СуммаЗакупокЗаГод».
1 Дима1С-ник
 
naïve
09.03.25
12:08
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказПокупателю.Клиент.Ссылка КАК КлиентСсылка,
        |    ЗаказПокупателю.Дата КАК Дата,
        |    ЗаказПокупателю.СуммаДокумента КАК СуммаДокумента
        |ИЗ
        |    Документ.ЗаказПокупателю КАК ЗаказПокупателю
        |ГДЕ
        |    ЗаказПокупателю.Клиент.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Объект.Клиент);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи  
        СуммаЗакупокЗаГод = ВыборкаДетальныеЗаписи.СуммаДокумента;        
    КонецЦикла;


// Вот мой запрос, как сюда вставить -встроенные функциии «НачалоГода» и «КонецГода» ???
2 zenik
 
09.03.25
12:47
ГДЕ
...
И ЗаказПокупателю.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";

...
Запрос.УстановитьПараметр("ДатаНачала", НачалоГода(ТекущаяДата()));
...
3 Волшебник
 
09.03.25
15:07
(0) Это же Вам задание, вот Вы и делайте.
4 Voronve
 
09.03.25
15:25
(0) И ЗаказПокупателю.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ГОД) И КОНЕЦПЕРИОДА(&ДатаОкончания, ГОД)
5 Волшебник
 
09.03.25
15:42
(2) (4) Не подсказывайте
6 Конструктор1С
 
09.03.25
16:47
(4) плохое решение, надо как в (2)
7 Дима1С-ник
 
naïve
09.03.25
18:24
(5) вот вроде работает, оцените

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПродажиОбороты.СуммаОборот КАК СуммаОборот
        |ИЗ
        |    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты,
        |    РегистрНакопления.Продажи КАК Продажи
        |ГДЕ
        |    ПродажиОбороты.Контрагент.Ссылка = &Ссылка
        |    И Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания";
    
    Запрос.УстановитьПараметр("ДатаНачала", НачалоГода(ТекущаяДата()));
    Запрос.УстановитьПараметр("ДатаОкончания", КонецГода(ТекущаяДата()));
    Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка.Клиент);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи    
        
        СуммаЗакупокЗаГод = ВыборкаДетальныеЗаписи.СуммаОборот;
        
    КонецЦикла;
8 2S
 
09.03.25
18:46
(7) Период укажите в параметрах виртуальной таблицы.
9 Voronve
 
09.03.25
18:47
(6) Аргументируй
10 Дима1С-ник
 
naïve
09.03.25
19:26
(8) Хорошо понял, спасибо
11 rudnitskij
 
09.03.25
19:33
(1) Если человек сделал заказ - из этого разве следует, что он что-то купил?
12 Волшебник
 
модератор
09.03.25
20:52
(10) Хватит засирать форум своими говноветками!