Имя: Пароль:
1C
1C 7.7
v7: Помогите подправить код
0 Aldnepr
 
27.05.13
19:10
В цикле не хотят вычислятся вот эти переменные
//**********************************************************
Если (Запрос.ТекущийДокумент.ДатаДок >= (Дата1 - МалоДней)) Тогда
               тбТовар.МалоКолво = Запрос.РасходКвоСумма;
               тбТовар.МалоСумма = Запрос.РасходОснСумма;
           КонецЕсли;

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

   тбТовар = СоздатьОбъект("ТаблицаЗначений");
   тбТовар.НоваяКолонка("Клиент","Справочник.Контрагенты");
   тбТовар.НоваяКолонка("ТМЦ","Справочник.ТМЦ");
   тбТовар.НоваяКолонка("МногоКолво", "Число",12,4);
   тбТовар.НоваяКолонка("МногоСумма","Число",12,2);
   тбТовар.НоваяКолонка("МалоКолво", "Число",12,4);
   тбТовар.НоваяКолонка("МалоСумма","Число",12,2);
   
   // Подготовка к заполнению выходных форм данными запроса
   Пока Запрос.Группировка(1) = 1 Цикл
      Пока Запрос.Группировка(2) = 1 Цикл
           тбТовар.НоваяСтрока();
           тбТовар.Клиент = Запрос.Клиент;
           тбТовар.ТМЦ = Запрос.ТМЦ;
           тбТовар.МногоКолво = Запрос.РасходКвоСумма;
           тбТовар.МногоСумма = Запрос.РасходОснСумма;
           Если (Запрос.ТекущийДокумент.ДатаДок >= (Дата1 - МалоДней)) Тогда
               тбТовар.МалоКолво = Запрос.РасходКвоСумма;
               тбТовар.МалоСумма = Запрос.РасходОснСумма;
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   
//**********************************************************************
1 ivanov-i-i
 
27.05.13
19:17
А где у тебя задается значение МалоДней?
2 Тьма
 
27.05.13
19:19
тбТовар.МалоКолво = 0;
тбТовар.МалоСумма = 0;
Пока Запрос.Группировка(3) = 1 Цикл
Если (Запрос.День >= (Дата1 - МалоДней)) Тогда
 тбТовар.МалоКолво = тбТовар.МалоКолво + Запрос.РасходКвоСумма;
 тбТовар.МалоСумма = тбТовар.МалоСумма + Запрос.РасходОснСумма;
КонецЕсли;
КонецЦикла;
3 ivanov-i-i
 
27.05.13
19:21
+(1) У тебя как я понимаю на форме два реквизита: МногоДней и МалоДней, или нет?
4 Aldnepr
 
27.05.13
19:26
Да. На форме два реквизита МногоДней и МалоДней. В итоговую таблицу должен выводится оборот Клиента за "МногоДней" и "МалоДней". (для сравнения что покупал скажем за 30 дней и за последнюю неделю). Так вот оборот за "МногоДней" выводится, а за "МалоДней" нет((.
5 ivanov-i-i
 
27.05.13
19:31
Ну я бы в первую очередь посмотрел бы в отладчике, что получается в левой и правой частях этого неравенства:

Если (Запрос.ТекущийДокумент.ДатаДок >= (Дата1 - МалоДней)) Тогда
6 Aldnepr
 
27.05.13
19:39
СПАСИБО "Тьма". Все заработало! И Вам Иван Иваныч тоже ).
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой