7.7 Сравнение двух документов запросом

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем JMT, 25 июл 2012.

  1. TopicStarter Overlay
    JMT
    Offline

    JMT

    Регистрация:
    25 июл 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте,

    С помощью запроса нужно сравнить построчно документы "Заказ" и "ПриходнаяНакладная" и выявить отличия в цене и количестве товара, результат вывести в таблицу, в которой будут колонки: Товар, количество в накладной, цена в накладной, количество в заказе, цена в заказе.
    В результате, в таблице получаем по две строчки на каждый товар. Как в таблице "совместить" строки с одинаковым товаром?

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

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    В запросе не получится. Только выгружать в ТЗ
  3. TopicStarter Overlay
    JMT
    Offline

    JMT

    Регистрация:
    25 июл 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    А как можно поместить табличные части нескольких документов в одну таблицу значений?
    Код:
    //*******************************************
    Процедура Сформировать()  
    
    Заказ=СоздатьОбъект("Документ.Заказ");  
    лпПоставщикЗаказ=Заказ.Партнер;
    лпСкладПолучательЗаказ=Заказ.СкладПолучатель;
    Заказ.ВыбратьДокументы(НачДатаЗаказ,КонДатаЗаказ);
    Пока Заказ.ПолучитьДокумент()=1 Цикл
    лпПоставщикЗаказ=Заказ.Партнер;
    лпСкладПолучательЗаказ=Заказ.СкладПолучатель;
    Если (лпПоставщикЗаказ=ВыбПартнер) и (лпСкладПолучательЗаказ=ВыбСклад) Тогда   //условие1 соответствия поставщика и филиала
    
    Заказ.ВыгрузитьТабличнуюЧасть(лпТаблица);
    
    КонецЕсли;  
    КонецЦикла;
    
    КонецПроцедуры
    
    
    Попробовал так, но если за выбранный период в журнале несколько документов "Заказ" в таблицу попадают данные только из последнего документа?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Используйте метод запроса Выгрузить
  5. TopicStarter Overlay
    JMT
    Offline

    JMT

    Регистрация:
    25 июл 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Спасибо, все получилось!
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104

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