Вход | Регистрация

1С:Предприятие ::

Метки:запросы, Запросы и построители

Два регистра остатка в одной строке

Я
   staer
12.05.04 - 10:21
Жизнь заставила создать два регистра остатка.Стоит задача их сравнить.
И вывести в одну таблицу.В них одинаковые товары, но разное количество,цены, приходы,...
Нужно: товар.кол1.кол2.прих1.прих2.расх1.расх2.
У меня:товар.кол1.0.прих1.0.расх1.0.
            0.Кол2.0.Прих2.0.расх2.0.товар(для контроля)
А нужно все в одной строке.Я делаю так:
Процедура Контроль()
    Перем Запрос, ТекстЗапроса, Таб;
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Контроль)

    |Период с НачДата по КонДата;
    |ОстТов = Регистр.ОстаткиТоваров.Товар;
    |ОстРош = Регистр.ОстаткиТоваровРошен.Товар;
    |КолРош    =Регистр.ОстаткиТоваровРошен.Количество;
    |КолТов    =Регистр.ОстаткиТоваров.Количество; 
    |Функция КолТовНач=НачОст(КолТов); 
    |Функция КолРошНач=НачОст(КолРош); 
    |Функция КолТовКон=КонОст(КолТов); 
    |Функция КолРошКон=КонОст(КолРош);
    |Функция ПрихТов=Приход(КолТов);
    |Функция ПрихРош=Приход(КолРош);
    |Функция РасхТов=Расход(КолТов);
    |Функция РасхРош=Расход(КолРош);
   //|Условие (ОстТов.Поставщик=Константа.Рошен);

    |Группировка ОстРош;
    |Группировка ОстТов;
    |//}}ЗАПРОС

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

                КолТовКонТ=Запрос.КолТовКон; 
               //КолРошКонТ=Запрос.КолРошКон;

                ПрихТовТ=Запрос.ПрихТов;
               //ПрихРошТ=Запрос.ПрихРош;

                РасхТовТ=Запрос.РасхТов;
               //РасхРошТ=Запрос.РасхРош;   

                 ТабЗн.НоваяСтрока();
             Таб.ВывестиСекцию("Товар"); 
            КонецЕсли; 
            КонецЦикла;
        
        Наз=Запрос.ОстРош.Наименование;
       //КолТовНачТ=Запрос.КолТовНач; 

        КолРошНачТ=Запрос.КолРошНач; 
       //КолТовКонТ=Запрос.КолТовКон; 

        КолРошКонТ=Запрос.КолРошКон;
       //ПрихТовТ=Запрос.ПрихТов;

        ПрихРошТ=Запрос.ПрихРош;
       //РасхТовТ=Запрос.РасхТов;

        РасхРошТ=Запрос.РасхРош;
        Таб.ВывестиСекцию("Товар");
        КонецЦикла;
        Таб.ТолькоПросмотр(1);
    Таб.Показать("Контроль", "");
КонецПроцедуры
 
  Рекламное место пустует
   Рупор абсурда
 
1 - 12.05.04 - 10:26
Товар = Регистр.ОстаткиТоваров.Товар,Регистр.ОстаткиТоваровРошен.Товар;
   lexa
 
2 - 12.05.04 - 10:44
и соответсвенно убрать одну группировку
Процедура Контроль() 
   Перем Запрос, ТекстЗапроса, Таб; 
   Запрос = СоздатьОбъект(\"Запрос\"); 
   ТекстЗапроса = 
   \"//{{ЗАПРОС(Контроль) 

   |Период с НачДата по КонДата; 
   |Тов = Регистр.ОстаткиТоваров.Товар, Регистр.ОстаткиТоваровРошен.Товар; 
   |КолРош    =Регистр.ОстаткиТоваровРошен.Количество; 
   |КолТов    =Регистр.ОстаткиТоваров.Количество; 
   |Функция КолТовНач=НачОст(КолТов); 
   |Функция КолРошНач=НачОст(КолРош); 
   |Функция КолТовКон=КонОст(КолТов); 
   |Функция КолРошКон=КонОст(КолРош); 
   |Функция ПрихТов=Приход(КолТов); 
   |Функция ПрихРош=Приход(КолРош); 
   |Функция РасхТов=Расход(КолТов); 
   |Функция РасхРош=Расход(КолРош); 
  //|Условие (ОстТов.Поставщик=Константа.Рошен); 

   |Группировка Тов; 
   |\//}}ЗАПРОС 

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


Список тем форума
 
Ошибка? Это не ошибка, это системная функция.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует