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

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

Метки:ТиС

Программисты 1С, откликнитесь

Я
   Александр
20.06.04 - 22:23
Доброго времени суток.
Необходимо в Т+С, чтобы отчет - ВедомостьПоПартиямТМЦ формировался только по документам прихода и расхода.
В процедуре - Сформировать после определения запроса дописал:

ТекстЗапроса = ТекстЗапроса +
    "Условие((Док.Вид() = ""ПоступлениеТМЦ"")или(Док.Вид() = ""ПоступлениеТМЦРозница"")или
    |(Док.Вид() = ""Реализация"")или(Док.Вид() = ""РеализацияРозница""));";
 
выводит по нужным документам, но не выводит НАЧАЛЬНЫЙ и КОНЕЧНЫЙ остатки. Очень надо. Помогите.
 
  Рекламное место пустует
   Волшебник
 
1 - 20.06.04 - 22:25
(тема должна отражать суть сообщения)
   Gavrila
 
2 - 20.06.04 - 22:26
а группировка у тебя случайно не по ДОК ?
   Asmody
 
3 - 20.06.04 - 22:38
да похоже не "случайно", а так и есть >;))
   Александр
4 - 20.06.04 - 23:28
нет, группивовка по номенклатуре.
Ниже код модуля:
//Создание объекта типа Запрос

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Период с ДатаНачала по ДатаКонца;
    |Фирма            = Регистр.ПартииНаличие.Фирма;
    |СтатусПартии     = Регистр.ПартииНаличие.СтатусПартии;
    |Номенклатура    = Регистр.ПартииНаличие.Номенклатура;
    |МОЛ            = Регистр.ПартииНаличие.МОЛ;
    |Партия            = Регистр.ПартииНаличие.Партия;
    |Поставщик        = Регистр.ПартииНаличие.Партия.Поставщик;
    |Док            = Регистр.ПартииНаличие.ТекущийДокумент;
    |КодОперации    = Регистр.ПартииНаличие.КодОперации;
    |Группировка Номенклатура;";
    
    ТекстЗапроса = ТекстЗапроса + "Количество = Регистр.ПартииНаличие.Количество;";
    ВидСуммы = 2;
    
    Если ВидСуммы = 1 Тогда// бух с НДС

        ТекстЗапроса = ТекстЗапроса + "Сумма = Регистр.ПартииНаличие.СуммаРуб;";
        
    ИначеЕсли ВидСуммы = 2 Тогда// бух без НДС

        ТекстЗапроса = ТекстЗапроса + "Сумма = Регистр.ПартииНаличие.СуммаБезНДС;";
        
    Иначе
        ТекстЗапроса = ТекстЗапроса + "Сумма = Регистр.ПартииНаличие.СуммаУпр;";
    
    КонецЕсли;
    
    ТекстЗапроса = ТекстЗапроса +
    "Функция НачОстС = НачОст(Сумма);
    |Функция ПриходС = Приход(Сумма);
    |Функция РасходС = Расход(Сумма);
    |Функция КонОстС = КонОст(Сумма);";
    ТекстЗапроса = ТекстЗапроса +
    "Функция НачОстК = НачОст(Количество);
    |Функция ПриходК = Приход(Количество);
    |Функция РасходК = Расход(Количество);
    |Функция КонОстК = КонОст(Количество);";
 
    ТекстЗапроса = ТекстЗапроса +
    "Условие((Док.Вид() = ""ПоступлениеТМЦ"")или(Док.Вид() = ""ПоступлениеТМЦРозница"")или
    |(Док.Вид() = ""Реализация"")или(Док.Вид() = ""РеализацияРозница""));";
    
    Загол="";
    ПечЗаголовокСтолбца = "";                      
                                     
   //НетОш = 1; // нет ошибок при наложении фильтров

   //НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Фирма",ВыбРазделитель1,"ВыбРазделитель1",ТекстЗапроса,Загол);

   //НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "ЮрЛицо",,,ТекстЗапроса,Загол);

   //НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "УпрАналитика",,,ТекстЗапроса,Загол);

   //    

   //НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Номенклатура",ВыбТМЦ,"ВыбТМЦ",ТекстЗапроса,Загол,"СвойстваНоменклатуры");

   //НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "СтатусПартии",ВыбСтатусПартии,"ВыбСтатусПартии",ТекстЗапроса,Загол);

   //НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Поставщик",ВыбПоставщик,"ВыбПоставщик",ТекстЗапроса,Загол,"СвойстваКонтрагентов");

   //

   //Если НетОш = 0 Тогда

   //    Возврат;

   //КонецЕсли;

    
   //УстановитьГруппировкиЗапроса(ТекстЗапроса, ПечЗаголовокСтолбца);

     
    Таб.ВывестиСекцию("Шапка");
    Таб.ВывестиСекцию("ШапкаТаблицы|Верх");
   //глОживить(1);

    
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 3, "ВедомостьПоПартиямТМЦДоп", "ВедомостьПоПартиямТМЦДоп");
    
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;   
   //начальный остаток 

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

    КонецЕсли;
   ChAlex
 
5 - 20.06.04 - 23:37
Начальные и конечные остатки по документам не могут быть сформированы (они в целом либо есть либо нет). Надо в функциях ставить условия ...
 |Приход = Приход(Количество) Когда (Док.Вид()=.....
   Александр
6 - 20.06.04 - 23:49
- они в целом либо есть либо нет -
А от чего это зависит
   Eola
 
7 - 21.06.04 - 07:30
В запросе нужно изменить условие так, чтобы вместо знака равенства использовался знак неравенства, тогда без проблем выведутся начальный и конечный остатки.
   Александр
8 - 21.06.04 - 09:55
Огромное спасибо. Все работает.


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