7.7 не вытягивает позиции

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

  1. TopicStarter Overlay
    AD1986
    Offline

    AD1986 Опытный в 1С

    Регистрация:
    8 фев 2011
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    1с 7.7 предприятие, есть отчет остатков в нем выбираеться номенклатура группа либо в отдельности по одной номенклатуре и склад . Показывает остатки по 41 счету. в карточке номенклатуры есть поле необходимое количество данной номенклатуры я ставлю 1000 но в остатке ее нет. Когда формирую отчетон мне выводит остатки по 41 которые есть. Проблема такова как сделать что бы он подбирал еще поле необходимое колиичество если при этом на 41 нету остатка. подскажите пожалуйста. код прилагаеться
    Код:
    Перем Запрос;
    Перем Таб;
    Перем НомерПП,НомерСтр,ПорядковыхНомеров,КоличествоНаСтранице;
    Перем ВсегоСтр;
    Перем ИнвНомер,ИтогоКол,ИтогоСт;
    Перем Док,Вывод,ИмяГ,ВсегоГрупп; 
    Перем ТЗ;			 
    Перем ИтогоИзлишекКол,ИтогоНедостачаКол,ИтогоИзлишекСуммы,ИтогоНедостачаСуммы,ИтогоФСумма;
    //-----------------------------------------------------------------
    Процедура Сформировать()
    Остт=СоздатьОбъект("справочник.Номенклатура");
    СчетУчета=(СчетПоКоду("41"));
    ТекстЗапроса =
    "//{{ЗАПРОС(Инвентаризация)
    |Период с ДатаНачала по ДатаНачала;
    |МХ = Операция.Субконто.МестаХранения;
    |Тов = Операция.Субконто.Номенклатура;
    |Сум = Операция.Сумма;
    |КолТов= Операция.Количество;
    |Сч = Операция.Счет;
    |Группировка МХ упорядочить по МХ.Наименование без групп;
    |Группировка Тов упорядочить по Тов.Наименование без групп;
    |Функция Стоим = СНД(Сум);
    |Функция Кол = СНД(КолТов);
    |условие (тов в ВыбНом);
    |"//}}ЗАПРОС
    ;
    Если СчетУчета.ЭтоГруппа()=1 Тогда
    ТекстЗапроса=ТекстЗапроса+
    "
    |Условие(Сч.ПринадлежитГруппе(СчетУчета)=1);";
    Иначе
    ТекстЗапроса=ТекстЗапроса+
    "
    |Условие(сч=СчетУчета);";
    КонецЕсли;
    
    Если ВыбСклад.Выбран()=1 Тогда
    ТекстЗапроса=ТекстЗапроса+
    "
    |Условие(МХ=ВыбСклад);";
    КонецЕсли;
    
    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
    Возврат;
    КонецЕсли;
    НомерПП = 0;
    НомерСтр = 0;
    Итогг=0;
    ПорядковыхНомеров = 0;
    КоличествоНаСтранице = 0;
    Таб = СоздатьОбъект("Таблица");	
    Таб.ВывестиСекцию("Отчет");
    Таб.ВывестиСекцию("МХ");
    Таб.ВывестиСекцию("Шапка");		
    ИтогоКол=запрос.Кол;
    Пока Запрос.Группировка("МХ")=1 Цикл
    ИтогоКолМХ=запрос.Кол;
    Если ИтогоКолМХ=0  тогда
    Продолжить;
    КонецЕсли;
    Пока Запрос.Группировка("Тов")=1 Цикл
    Если (Запрос.Кол=0) и (Запрос.Стоим=0) тогда
    Продолжить;
    КонецЕсли;
    Кол= Запрос.Кол;
    ИтогоКол=ИтогоКол+Кол;
    Остт1=Запрос.тов.ОстатокСклад;
    Итогг1=Остт1-Кол;
    НомерПП = НомерПП+1;
    ЕдиницаИзмерения = ""+  Запрос.Тов.ЕдиницаИзмерения;
    Таб.ВывестиСекцию("Строка"); //
    ПорядковыхНомеров = ПорядковыхНомеров + 1;
    
    КонецЦикла;
    КонецЦикла;
    
    Таб.Опции(0,0,0,0);
    Таб.ПараметрыСтраницы(1,,,,5);
    Таб.ТолькоПросмотр(0);
    Таб.Показать("Инвентаризационная опись товаров",);
    
    КонецПроцедуры  
    ДатаНачала=ДобавитьМесяц(ТекущаяДата(),1);
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    1. Как бы не совсем правильно использовать запрос для работы с бухгатерскими итогами. Для бухгалтерских итогов есть отдельный объект, его и нужно использовать.
    2. При использовании запроса есть слово "Все", вероятно в вашем случае поможет
    3. Можно использовать постобработку запроса. То есть получаем результат запроса, подготавливаем к нужному виду (ведь известно, какие позиции должны быть), а потом этот вариант выводим в печатную форму.

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