7.7 Запрос по регистру

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Necrodamus, 9 мар 2011.

  1. alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Вот запрос , как пример который работает на Типовом ТиСе , на регистре "Партииналичии"
    Код:
    "//{{ЗАПРОС(Сформировать)  	
    |Период с ВыбНачПериода по ВыбКонПериода;  	
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;  	
    |КодОперации = Регистр.ПартииНаличие.КодОперации;  	
    |Количество = Регистр.ПартииНаличие.Количество;  	
    |Функция КоличествоРасход = Расход(Количество);  	
    |Группировка КодОперации;  	
    |Группировка Номенклатура без групп;  	
    |"//}}ЗАПРОС  ;
    
    Работает все правильно

    Тока в вашем случае "КодОперации" это "Получатель"
  2. TopicStarter Overlay
    Necrodamus
    Offline

    Necrodamus Опытный в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Но ведь в этом случае я получаю только расход, а с этим проблем у меня не было. Мне необходимо кроме расхода, рядом еще и остаток получить.
  3. alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    В одном запросе вы остаток "правильный" не получите, сделайте 2 запроса, и отсортируйте все в ТаблицеЗначений.
  4. TopicStarter Overlay
    Necrodamus
    Offline

    Necrodamus Опытный в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Была мысль, но не разобрался как сделать. У меня ведь один и тот же материал у разных контрагентов встречается.
  5. alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26

    Формируете запрос по ОСТАТКУ , и выгружаете его в ТЗ скажем "ТаблицаОстатов" ,
    у вас должно быть колонки : Материал, НачОст,КонОСт,
    Далее делаем запрос по Расходу,
    ...
    В Цикле

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

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