7.7 Запрос

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем sashadeo, 16 фев 2011.

  1. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Добрый день!
    Я попытался сделать отчет суть которого Посмотреть вложение 6499
    Выбирается период, Далее выбирается Документ План.(Как показано на форме)

    Часть Запроса

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

    Сам отчет

    Не подскажите что не так у меня в запросе???

    Вложения:

  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А какой должен быть результат?
    Давайте конкретно 1-2 позиции
  3. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Т.е отчет все правильно считеат, кроме первой колонки(плана), в колонке план почему то выводятся нули(хотя документ заранее заполнен).
    Т.е суть отчета такова... берется документ план(выбирается на форме)
    Далее
    выводиться колонка с продажами, Далее От колонки план вычитаются продажи и выводятся в колонке разница...
    Вот так выглядит сам документ План Посмотреть вложение 6502
    А в Отчете в место этих цифр Нули выдает...

    Вложения:

    • План.jpg
      План.jpg
      Размер файла:
      108 КБ
      Просмотров:
      27
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Мне кажется вот здесь собака порылась:
    Код:
    |Количество = Документ.РеализацияТоваров.Количество;
    |Сумма = Документ.РеализацияТоваров.Сумма;
    |ТМЦ = Документ.РеализацияТоваров.ТМЦ, Документ.План.ТМЦ;
    
    
    ТМЦ то из плана вы получили, а вот количество - нет.
    Потом пытаетесь его вывести в ТЗ1,2,3.... Конечно же там баранка
  5. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Код:
    |СуммПл = Документ.План.Сумма;      //Т.е как я понимаю, этими      
    |КолПл = Документ.План.Количество;  //строчками Кличество и сумму я 
    //не получаю???
    
    
    Не подскажите или не на толкнете где надо прописать???
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Это же ваш запрос в процедуре Выборка
  7. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Немножечко не могу вас понять...
    Я подумал что вы в выборке имели ввиду...
    Не подскажите где я должен получить

    В отчете у меня используются 2 процедуры, выборка и сформировать....
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Используя процедуру Выборка вы заполняете вашу ТЗ1 в из которой пытаетесь получить количество плана. Но при этом количество из плана не берете! Я вам на это указал взяв ваш кусок кода. Добавьте как вы сами писали КолПл СумПл и все у вас получится)))))
  9. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Если я вас правильно понял то вы имеете ввиду такой код?
    Код:
    |Количество = Документ.РеализацияТоваров.Количество, Документ.План.Количество;
    |Сумма = Документ.РеализацияТоваров.Сумма, Документ.План.Сумма;
    |ТМЦ = Документ.РеализацияТоваров.ТМЦ, Документ.План.ТМЦ;
    
    
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Извините ради бога - не глянул чуть выше в код.
    Как вы хотите - нельзя. Т.к. суммирование пойдет не верно.
    Если визуально глянуть
    Код:
    ТЗ.ВыбратьСтроку()
    
    
    
    Что покажет?
  11. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    Если я вас правильно понимаю то
    Код:
    Пока Запрос.Группировка(1) = 1 Цикл
    Тзшка.НоваяСтрока();
    Тзшка.Продукт=Запрос.ТМЦ;
    Тзшка.Колво=Запрос.КоличествоСумма;
    Тзшка.Сумма=Запрос.СуммаСумма;
    Тзшка.КолПл=Запрос.КолПл;
    Тзшка.СуммПл=Запрос.СуммПл; 
    Сообщить(Тзшка.ВыбратьСтроку());
    
    
    Выводит нули, если Сообщить(Тзшка.Продукт или Тзшка.Колво или Тзшка.Сумма) То все показывает как есть а если Сообщить(Тзшка.КолПл или Тзшка.СуммПл) то нули...
    P.S
    Это мне надо извиняться за такое количество вопросов!)
  12. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    А может это быть из за того что Документ План он вообще не проводиться?(я отключил проведение этого документа)
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не из-за документа это точно.... Хотя я бы добавил условие на помету удаления в запрос.

    Нет возможности протестировать ваш отчет в реальных условиях... У вас есть TreamViewer?
  14. TopicStarter Overlay
    sashadeo
    Offline

    sashadeo Опытный в 1С

    Регистрация:
    29 дек 2010
    Сообщения:
    379
    Симпатии:
    0
    Баллы:
    26
    К сожалению нет...(( пока еще не дошел до этого...с 1с маленько закончу и за сеть возьмусь...

    Выдал Посмотреть вложение 6514

    Вложения:

  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Скинул в личку

Поделиться этой страницей