Имя: Пароль:
1C
1C 7.7
v7: Количество из ОтчетаККМ за неделю
0 Vigor06
 
28.07.11
10:00
Задача такая:
Нужно по щелчку на товар в справочнике "Номенклатура" в поле под таблицей вывести Количество этого товара,указанного в ОтчетеККМ за прошедшую неделю.
Пробовал делать так:

Функция СформироватьПродажиЗаПериод()
   Перем ИнфСтрока;
   
   Если ПустоеЗначение(ТекущийЭлемент()) = 1 Тогда
       // не выбран элемент
       ИнфСтрока = "";
   Иначе
       
       Если ТекущийЭлемент().ЭтоГруппа() = 1 Тогда
           // текущий элемент - группа
           ИнфСтрока =  ТекущийЭлемент().ПолноеНаименование();
       Иначе
           
           ТекЭлем = ТекущийЭлемент();
           
           ИнфСтрока = СокрЛП(ТекЭлем.ПолнНаименование) +
                       ?(ПустоеЗначение(ТекЭлем.Артикул) = 0, "  Артикул: " + СокрЛП(ТекЭлем.Артикул), "") +
                       ?(ПустоеЗначение(ТекЭлем.Комментарий) = 0, "  Комментарий: " + СокрЛП(ТекЭлем.Комментарий),    "");
           
       КонецЕсли;

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




Но в отладчике видно,что Запрос.Наименование="          ", поэтому Запрос.Количество=0

Как эту радость починить?
1 zak555
 
28.07.11
10:04
есть штатный отчёт
2 Vigor06
 
28.07.11
10:06
Барышне-клиенту,видите ли,долго,да и не нужно этот отчет формировать.
И ей необходимо смотреть "здесь и сейчас"
3 filh
 
28.07.11
10:06
фигасе...
4 filh
 
28.07.11
10:07
т.е. имея ссылку на элемент справочника "Номенклатура" ты извращаешься и потом условие накладываешь?
забавно...
5 Vigor06
 
28.07.11
10:14
Ну как то мне надо выбрать количество именно той номенклатуры,которая выбрана в данный момент

Подскажите вариант попроще?
6 ДенисЧ
 
28.07.11
10:22
Функция СформироватьПродажиЗаПериод()
   Перем ИнфСтрока;
   
   Если ПустоеЗначение(ТекущийЭлемент()) = 1 Тогда
       // не выбран элемент

       ИнфСтрока = "";
Возврат;
   Иначе
       
       Если ТекущийЭлемент().ЭтоГруппа() = 1 Тогда
           // текущий элемент - группа

           ИнфСтрока =  ТекущийЭлемент().ПолноеНаименование();
       Иначе
           
           ТекЭлем = ТекущийЭлемент();
           
           ИнфСтрока = СокрЛП(ТекЭлем.ПолнНаименование) +
                       ?(ПустоеЗначение(ТекЭлем.Артикул) = 0, "  Артикул: " + СокрЛП(ТекЭлем.Артикул), "") +
                       ?(ПустоеЗначение(ТекЭлем.Комментарий) = 0, "  Комментарий: " + СокрЛП(ТекЭлем.Комментарий),    "");
           
       КонецЕсли;

   КонецЕсли;
//    Неделя1=ТекущаяДата()-7;

   //неделя1=Дата(неделя1);

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

тэ = ТекущийЭлемент();
   |Период с (текущаядата()-7) по (ТекущаяДата());
   |Количество = Документ.ОтчетККМ.Количество;
   |Товар = Документ.ОтчетККМ.Номенклатура.ТекущийЭлемент;
   |Условие(Товар = тэ);
   |"//}}ЗАПРОС

   ;
   
   
   Запрос = СоздатьОбъект("Запрос");
   Запрос.Выполнить(ТекстЗапроса);
   Количество=Запрос.Количество;
       
   
   Возврат Количество;
   
КонецФункции // СформироватьПродажиЗаПериод()
7 Vigor06
 
28.07.11
10:30
Блин,я пудак....Спасибо большое))все отлично работает))
8 filh
 
28.07.11
10:33
(7) только для групп условие подправь