Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 авг 2025, 01:54

присвоить результат запроса к двум и более филиалам.

Автор maxxi, 22 июл 2025, 13:22

0 Пользователей и 1 гость просматривают эту тему.

maxxi

    ВЫБРАТЬ
      СУММА(ОстаткиОстатки.КолОстаток) КАК КолОстаток,
      ОстаткиОстатки.Товар КАК Товар
    ПОМЕСТИТЬ ВТ_ФилиалБаза
    ИЗ
      РегистрНакопления.Остатки.Остатки КАК ОстаткиОстатки
    ГДЕ
      ОстаткиОстатки.Склад.Филиал.Код В(&Филиал)
   
    СГРУППИРОВАТЬ ПО
      ОстаткиОстатки.Товар
    ;

уважаемые знатоки, помогите пожалуйста, есть запрос, мне надо присвоить результат запроса к двум филиалам, коды филиалов хранятся в МассивКодов.
Пока делаю так:
Пока Выборка.Следующий() Цикл
   
  ........
   
  ТЗ.Клиент=Выборка.Клиент;
   
  Для Каждого Элемент Из МассивКодов Цикл
 
    ИмяКолонки = "Остаток_" + Элемент.Значение.Код;
 
    ТЗ[ИмяКолонки] = Выборка.КолОстаток;
     
  КонецЦикла;
 
  ........
 
КонецЦикла;

antoneus

Ну в запросе выбирать код филиала, в выборке получать код - получать имя колонки - пихать туда остаток. Возможно, нужны будут итоги по товару. Ну или нет.

maxxi

antoneus,
Пока Выборка.Следующий() Цикл
   
  ........
   
  ТЗ.Клиент=Выборка.Клиент;
   
  Для Каждого Элемент Из МассивКодов Цикл
 
    ИмяКолонки = "Остаток_" + Элемент.Значение.Код;
 
    ТЗ[ИмяКолонки] = Выборка.КолОстаток;
     
  КонецЦикла;
 
  ........
 
КонецЦикла;

тут помоему это и я делаю. или у меня ошибка.

antoneus

Нет. Тут ты делаешь следующее: в запросе получаешь общий остаток по всем филиалам, которые в списке. Потом в выборке получаешь товар и этот остаток по всем филиалам кладешь во все колонки, филиалов, так? Получается во всех колонках один и тот же общий остаток, так?

maxxi

antoneus,
        ВЫБРАТЬ
    СУММА(ОстаткиОстатки.СониОстаток) КАК СониОстаток,
    ОстаткиОстатки.Товар КАК Товар,
    ОстаткиОстатки.Склад.Филиал.Код КАК Код

ИЗ
    РегистрНакопления.Остатки.Остатки КАК ОстаткиОстатки
ГДЕ
    ОстаткиОстатки.Склад.Филиал В(&Филиал)

СГРУППИРОВАТЬ ПО
    ОстаткиОстатки.Товар,
    ОстаткиОстатки.Склад.Филиал.Код
;

вот изменил запрос

antoneus

Ну и типа

ВЫБРАТЬ
    СУММА(ОстаткиОстатки.СониОстаток) КАК СониОстаток,
    ОстаткиОстатки.Товар КАК Товар,
    ОстаткиОстатки.Склад.Филиал.Код КАК Код

ИЗ
    РегистрНакопления.Остатки.Остатки(, ОстаткиОстатки.Склад.Филиал В(&Филиал)) КАК ОстаткиОстатки
   

СГРУППИРОВАТЬ ПО
    ОстаткиОстатки.Товар,
    ОстаткиОстатки.Склад.Филиал.Код

ИТОГИ
    Сумма(СониОстаток)
ПО
    Товар

...

Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Пока Выборка.Следующий() Цикл
    НовСтрока = ТЗ.Добавить();
    НовСтрока.Товар = Выборка.Товар;
    ВыборкаОстатки = Выборка.Выбрать();
    Пока ВыборкаОстатки.Следующий() Цикл
        НовСтрока["Филиал_" + ВыборкаОстатки.Код] = ВыборкаОстатки.СониОстаток

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск