Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 21:34
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Проблема с отчетом  (Прочитано 3616 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sashadeo

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

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;       

Пока Запрос.Группировка(1) = 1 Цикл
      Тзшка.НоваяСтрока();
      Тзшка.Продукт=Запрос.ТМЦ;
      Тзшка.Колво=Запрос.КоличествоСумма;
      Тзшка.Сумма=Запрос.СуммаСумма;

 Конеццикла;   
КонецПроцедуры


Выполняется запрос, по условию, условие выбирается через поле ввода(например В поле ВПрод выбирается Хлеб400гр(это элемент, выбирается из справочника), затем записывается в тзшку ) с этим все нормально все работает
(Есть иерархический спраочник Номенклатура))
Готоваяпродукция:
                          -хлебная продукция
                                                       -хлеб400гр
                                                       -хлеб3оогр
                                                       -батон
                          -булочная продукция

                          -пряничная
Хотелось бы что бы когда выбирал группу то в Тзшку записывал не хлебная продукция а все элементы группы хлебная продукция...
Кто подскажет как можно реализовать...??? помогите новичку!!!))



Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
//например после:
|Контрагент = Документ.РеализацияПродукции.ТекущийДокумент.Контрагент, Документ.ВозвратПродукции.ТекущийДокумент.Контрагент;
//сделай
|КонтрГруп =  Документ.РеализацияПродукции.ТекущийДокумент.Контрагент.Родитель, Документ.ВозвратПродукции.ТекущийДокумент.Контрагент.Родитель;
// потом в условиях добавь
ИначеЕсли ВГруп.Выбран()=1 Тогда
      ТекстЗапроса = ТекстЗапроса + "Условие (КонтрГруп=ВГруп);"   ;
      Выбор=Выбор+" "+ВГруп;
// вообщето запрос написан через ленинград, и можно все укоротить
// но так тоже работать будет
// Вопрос: а почему "ИначеЕсли"? - исключаешь условия получается?

Оффлайн sashadeo

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-12-29
  • Сайт: 
  • Профессия: Программист 7.7
Отчет работает так выберается 6 периодов затем в поле ввода я выбираю Агента(Поле ввода где выбираю Агента называется ВАгент) либо Маршрут(Поле ввода где выбираю Маршрут называется ВМаршрут) Либо водителя(также)
Поле того как я например выбрал Маршрут(маршрут доставки) Ниже в поле выбираю продукцию Поле называется (ВПрод) Так вот если я в поле продукция выберу не еэлемент(Например хлеб 500гр) а группу(например Хлебные изделия) Он мне в итоге выведит только название группы Т.к в Тзшку записывается только название группы а мне надо что бы при выборе группы происходил перебор элементов этой группы и все эти элементы записались в Тзшку а оттуда они уже попадут на печать

Оффлайн DenPlus

  • ***
  • Сообщений: 106
  • РЕПУТАЦИЯ: 64
  • КПД: 60%
  • Регистрация: 2010-10-27
  • Компания: www.cosmocat.ru
Если на форме выбрана группа, то условие в запросе должно выглядеть таким образом:

ТекстЗапроса = ТекстЗапроса + "Условие (Агент В ВАгент)";

где Агент это имя переменной запроса, ВАгент это имя реквизита на форме.

В результат запроса попадут данные по элементам справочника находящихся в группе выбранной на форме.

Конструкция Группировка Агент Без Групп позволяет включить в запрос данные без групп (только элементы).

Оффлайн sashadeo

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-12-29
  • Сайт: 
  • Профессия: Программист 7.7
А как эти данные записать в Тзшку потому что они от туда будут браться...

Оффлайн sashadeo

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-12-29
  • Сайт: 
  • Профессия: Программист 7.7
Пока Запрос.Группировка(1) = 1 Цикл
      Тзшка.НоваяСтрока();
      Тзшка.Продукт=Запрос.ТМЦ;
      Тзшка.Колво=Запрос.КоличествоСумма;
      Тзшка.Сумма=Запрос.СуммаСумма

Что мне надо выбрать вместо Пока Запрос.Группировка(1) = 1 Цикл что бы записались все элементы

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
извиняюсь, у тебя не контрагент.родитель нужен а ТМЦ, ну там
так же но сдругими реквизитами накидай.

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
надо сделать либо как в (2, только с .тмц и .тмцгр) либо как в (4).
для выгрузки в  ТЗ легче использовать Запрос.Выгрузить

Оффлайн sashadeo

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-12-29
  • Сайт: 
  • Профессия: Программист 7.7
Можете прописать как это выглядит буду очень благодарен!!!(выгрузка запроса в Тзшку)

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
пример есть здесь:
http://forum-1c.ru/index.php?topic=5874.0


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
179 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 326
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal