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

7.7 Запросы.КолонкаТаблицы.ГосподеРебятаВыручайте

Автор alexactor, 28 сен 2017, 19:51

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

alexactor

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

      
      КонецЦикла;
      
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
         Таб.ВывестиСекцию("Товар");
   КонецЦикла;
         Таб.ВывестиСекцию("Итого");
      Таб.ТолькоПросмотр(1);
      Таб.Показать("Сформировать", "");
   КонецПроцедуры



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


Нужно синхронизировать данные двух запросов по товару бегая по одному из них в цикле,позиционируясь на результате другого (метод (Получить("Значение группировки Товар")),вынимая из него данные по выбранному товару(я знаю что можно проще, но ТЗ такое

Теги:
Рейтинг@Mail.ru

Поиск