Имя: Пароль:
1C
1C 7.7
v7: прошу Помощи по Запросу 7.7
0 Popkorm
 
11.03.12
18:32
не отрабатывается ЗадолженностьКон


Функция ПроверкаДатыПродаж(ТекДок)  
   Если ТекДок.ДатаОтчета<=КонМесяца(ВыбДата) Тогда
       Если ПустоеЗначение(ТекДок.ДатаОтчета)=0 Тогда
           Возврат 1;                                  
       КонецЕсли;
   КонецЕсли;
   Возврат 0;
КонецФункции  

Функция ПроверкаДатыОплаты(ТекДок)  
   Если ПустоеЗначение(ТекДок.ДатаДок)=0 Тогда
   Если ТекДок.ДатаДок<=КонМесяца(ВыбДата) Тогда
       Возврат 1;                                  
   КонецЕсли;
   КонецЕсли;
   Возврат 0;
КонецФункции

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

   ВыбНачПериода = НачМесяца(ВыбДата);
   ВыбКонПериода = КонМесяца(ВыбДата)+25;
1 Mikeware
 
11.03.12
18:34
И как ты себе представляешь остаток по реквизиту?
2 Джинн
 
11.03.12
18:34
И не должна.
3 2S
 
11.03.12
18:34
реквизит?
4 Popkorm
 
11.03.12
18:35
(1)знаю что чушь,я хочу получить конОст на КонМесяца(ВыбДата)
5 Mikeware
 
11.03.12
18:39
а этот - безнадежен
6 Джинн
 
11.03.12
18:41
(1) СуммаРуб - ресурс.

(4) Получай. Без "когда (ПроверкаДатыОплаты(ТекДок)=1)"
7 Popkorm
 
11.03.12
18:41
(5)то есть без вариантов я так понимаю?!
8 Mikeware
 
11.03.12
18:43
(6) Ну, в разрезе реквизитов, или с фильтром по реквизиту...
хотя я черные запросы вообще не знаю.
9 Джинн
 
11.03.12
18:44
(7) Варианты есть всегда. Но боюсь они не кошерные.

Чего получить то нужно?
10 Popkorm
 
11.03.12
18:48
(6) Без "когда (ПроверкаДатыОплаты(ТекДок)=1)" отбирет на КонМесяца(ВыбДата)+25 дней....
запрос формируется месяц+25дней,в запросе получилось по Оплате И отгрузке отобрать на КонМесяца(ВыбДата),теперь для ЗадолженностьКон.А разве Расход(Сумма)Сумма не ресурс?!Там же отрабатывает
11 Popkorm
 
11.03.12
18:49
(9)получить нужно ЗадолженностьКон на КонМесяца(ВыбДата)
12 Mikeware
 
11.03.12
18:52
(10) обороты с фильтром по ресурсу - сколько угодно. но не остатки
13 Джинн
 
11.03.12
18:52
> Без "когда (ПроверкаДатыОплаты(ТекДок)=1)" отбирет на КонМесяца(ВыбДата)+25 дней....

Ага. Но не позднее ТА.

> А разве Расход(Сумма)Сумма не ресурс?!Там же отрабатывает

Отрабатывает. Потому что оборот можно отфильтровать по реквизиту движения. А остаток нет.
14 Джинн
 
11.03.12
18:54
(11) Получайте. Но без фильтра по движениям.

А по-русски можно объяснить - что вы получить пытаетесь? В Вашей терминологии ни хрена не понять.
15 Popkorm
 
11.03.12
19:09
(14)вообщем для чего ВыбКонПериода = КонМесяца(ВыбДата)+25; добовляю 25 дней,в док Реализация имеется ДатаОтчета(отгрузка склада)имеено их и надо получить,если Дата.Док>01.02.12(КонМесяца(ВыбДата)),а ДатаОтчета<=31.01.12(КонМесяца(ВыбДата)) то берем его.То есть такое имеет быть ДатаДок(февраль),ДатаОтчета(Январь) ......То есть все это работает,теперь для ЗадолженностьКон надо получить Январь(КонМесяца(ВыбДата)) 25 дней не включать
16 Popkorm
 
11.03.12
19:12
Запрос формируется ВыбНачПериода = НачМесяца(ВыбДата);
   ВыбКонПериода = КонМесяца(ВыбДата)+25;
НачМесяца(ВыбДата) = 01.01.12
КонМесяца(ВыбДата) = 31.01.12+25 дней
17 Джинн
 
11.03.12
19:18
(15) Мля, ПО-РУССКИ объясните, без реквизитов и функций! Бизнес-задачу опишите в народной терминологии.
18 Popkorm
 
11.03.12
19:28
(17)Ну давайте начну с начало:Получить Огрузку по реквезиту(ДатаОтчета) за месяц,Оплату за месяц,НачОст и Коност так же за месяц.Теперь жду вопросов
19 Джинн
 
11.03.12
19:34
(18) ДатаОтчета - реквизит чего?

И вообще - какой физический смысл несет "начальный остаток по реквизиту "дата отчета"? Что это такое?
20 Popkorm
 
11.03.12
19:42
(19)
вообщем можно так:
КонОст=НачОст+Отгрузка-Оплата;
Независимо от того, куда вы едете — это в гору и против ветра!