Имя: Пароль:
1C
1C 7.7
v7: ДатаДляЗапроса = СформироватьПозициюДокумента(ТекущийДокумент(),-1); не работает
0 Zoeh
 
16.04.15
13:32
мине нужно получить коечный остаток до документа, а получается он показывает его по этот документ.
        ДатаДляЗапроса="";
        Если ДатаДок>ПолучитьДатуТА() Тогда
            ДатаДляЗапроса=ПолучитьДатуТА();
        Иначе
            ДатаДляЗапроса=ДатаДок;
            Если Проведен()=1 Тогда
                ДатаДляЗапроса = СформироватьПозициюДокумента(ТекущийДокумент(),-1);
                 //Док.ПолучитьПозицию()
                //ДатаДляЗапроса=ТекущийДокумент();
            КонецЕсли;
        КонецЕсли;
        
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ДатаДляЗапроса по ДатаДляЗапроса;
        |ЗДоговор = Регистр.ПартииОтданные.Договор;
        |ЗНоменклатура = Регистр.ПартииОтданные.Номенклатура;
        |ЗКоличество = Регистр.ПартииОтданные.Количество;
        |ЗДакумент = Регистр.ПартииОтданные.ТекущийДокумент;
        |Функция КоличествоКонОст = КонОст(ЗКоличество);
        //|Группировка ЗДакумент;
        |Условие(ЗНоменклатура в СпКег);
        |Условие(ЗДоговор в Договор);
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
        КоличествоКонОст=0;
                //Пока Запрос.Группировка(1)=1 Цикл
                //    
                //        КоличествоКонОст=Запрос.КоличествоКонОст;
                //
                //КонецЦикла;
1 Zoeh
 
16.04.15
13:33
т.е.
ДатаДляЗапроса = СформироватьПозициюДокумента(ТекущийДокумент(),-1);
не работает
2 Zoeh
 
16.04.15
13:49
?
3 dk
 
16.04.15
13:55
а документ уже записан?
4 Zoeh
 
16.04.15
13:59
да мало того он уже проведен, я этот запрос использую из модуля этого документа
5 Zoeh
 
16.04.15
13:59
мне нужен остаток до него
6 dk
 
16.04.15
14:00
и что в сообщить эта датадлязапроса возвращает?
7 Serginio1
 
16.04.15
14:01
Наверное он самый первый за дату
8 Z1
 
16.04.15
14:04
(0) Все работает
У тебя немного не так написано
Если начОст  то это на начало документа не включая его

если конОст то это конечный остаток на конец документа включая и сам документ
9 Zoeh
 
16.04.15
14:05
(8)
т.е. мне надо взять
начало дня
и мою позицию?
10 Zoeh
 
16.04.15
14:08
спасибо зааботало
ДатаДляЗапроса="";
        Если ДатаДок>ПолучитьДатуТА() Тогда
            ДатаДляЗапроса=ПолучитьДатуТА();
        Иначе
            ДатаДляЗапроса=ДатаДок;
            Если Проведен()=1 Тогда
                ДатаДляЗапроса = СформироватьПозициюДокумента(ТекущийДокумент(),-1);
                 //Док.ПолучитьПозицию()
                //ДатаДляЗапроса=ТекущийДокумент();
            КонецЕсли;
        КонецЕсли;
        
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ДатаДок по ДатаДляЗапроса;
        |ЗДоговор = Регистр.ПартииОтданные.Договор;
        |ЗНоменклатура = Регистр.ПартииОтданные.Номенклатура;
        |ЗКоличество = Регистр.ПартииОтданные.Количество;
        |ЗДакумент = Регистр.ПартииОтданные.ТекущийДокумент;
        |Функция КоличествоКонОст = КонОст(ЗКоличество);
        //|Группировка ЗДакумент;
        |Условие(ЗНоменклатура в СпКег);
        |Условие(ЗДоговор в Договор);
        |"//}}ЗАПРОС
11 Serginio1
 
16.04.15
14:09
(9) Тебе нужен начОст
и просто |Период с ДатаДляЗапроса