1. user1008893 04.02.19 14:05 Сейчас в теме

Расшифровка по ячейке

Делаю обработку,которая выводит контрагентов,кол-во заказов . В следующем поле,при нажатии на него должна выходить форма в котором есть все заказы этого контрагента. Подскажите пожалуйста,как это реализовать?
Процедура ДействияФормыСформировать(Кнопка)	
	ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
ПостроительОтчетаОтчет.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И ЗаказПокупателя.ДатаИсполнения <= &ДатаИсполнения
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|
	|УПОРЯДОЧИТЬ ПО
	|	Контрагент
	|ИТОГИ ПО
	|	Контрагент,
	|	ЗаказПокупателя
	|АВТОУПОРЯДОЧИВАНИЕ";
ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);

табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
табДок.Очистить();
табДок.ТолькоПросмотр=Истина;
 ПостроительОтчетаОтчет.Выполнить();
МойМакет=ПолучитьМакет("Макет");
побл=МойМакет.ПолучитьОбласть("Заголовок");
ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
табДок.Вывести(побл);
ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
табДок.Вывести(ОбластьШапка);
областьЗаказ=МойМакет.ПолучитьОбласть("ЗаказыПокупателя");
ОблТаб = МойМакет.ПолучитьОбласть("Таблица|Контрагент");


табДок.НачатьАвтогруппировкуСтрок();
пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;	
Пока пВыб.Следующий() Цикл
ОблТаб.Параметры.Заполнить(пВыб);		   
табДок.Вывести(ОблТаб,пВыб.Уровень());
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();


ТекущийПериод  = НачалоДня(ТекущаяДата());
ГоризонтПланирования = КонецМесяца(ТекущаяДата());
_Период     = НачалоМесяца(ТекущийПериод);
_КонПериод  = КонецДня(ГоризонтПланирования);
Пока _Период <= _КонПериод Цикл
	Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
		областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				 табДок.Присоединить(областьЗаказ);
	ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказ);
	Иначе 
		областьЗаказ.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
		 табДок.Присоединить(областьЗаказ);
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	КонецЦикла;	
	
	
	
КонецПроцедуры
Показать


на форме расшифровки
Процедура ЗаполнитьТЧПодробнымиДанными() Экспорт 
	
	Запрос= Новый Запрос;	
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК Документ,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон";
	
	_ТекстУсловий = "ИСТИНА";
			
	Запрос.УстановитьПараметр("ДатаНач",               	ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон",               	КонецДня(ДатаКон));


	
	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ = ТЧ.Добавить();
		СтрокаТЧ.Документ  = СтрокаТаблЗаказы.Документ;
		КонецЦикла;	
	 КонецПроцедуры
Показать
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Ответы
Избранное Подписка Сортировка: Древо
103. dhurricane 11.02.19 14:18 Сейчас в теме
104. user1008893 11.02.19 14:23 Сейчас в теме
(103)Ну вот мы получили все данные. Нажимаем на выбрать заказ,там у нас расшифровка.
Как теперь вывести все данные на печатную форму?
105. dhurricane 11.02.19 14:36 Сейчас в теме
106. user1008893 11.02.19 14:42 Сейчас в теме
(105)Я создала макет для печати и хочу туда вывести дату,Контрагента и его заказы. Т.е. получить заказы из расшифровки
107. dhurricane 11.02.19 14:45 Сейчас в теме
(106) А зачем вообще нужна была форма расшифровки, если нужно выводить заказы? Почему бы их сразу не получить и не вывести в основную печатную форму?
108. user1008893 11.02.19 14:50 Сейчас в теме
(107)потому что,можно удалить их из списка или добавить
109. dhurricane 11.02.19 14:52 Сейчас в теме
(108) Позвольте узнать, для чего? Несколько необычный функционал для печатной формы. Почему, скажем, не документ? Неужели не планируется сохранять результаты?
110. user1008893 11.02.19 14:57 Сейчас в теме
(109)иногда отгрузки раньше иногда позже,они просто печатают себе план и работают по нему
111. dhurricane 11.02.19 15:12 Сейчас в теме
(110) Ну я вижу такое решение:
1. Добавить в основную форму невидимую таблицу с колонками: Контрагент, СчетчикПериода, Заказ.
2. При формировании основной печатной формы перед выводом ячейки периода искать в таблице заказы по контрагенту и счетчику периода. Если заказы найдены, выводить их. Если нет - выводить прежнюю надпись "Выбрать заказ".
3. В форме расшифровки при нажатии на ОК добавлять в добавленную таблицу основной формы строки с выбранными заказами по контрагенту и периоду, для которых открыта форма расшифровки.
4. После закрытия формы расшифровки переформировывать основную печатную форму.
112. user1008893 11.02.19 16:15 Сейчас в теме
113. user1008893 11.02.19 16:46 Сейчас в теме
(111)а нельзя на основной форме по нажатию на кнопку печать,получать значения из тч(форма расшифровка) по каждому контрагенту и дате и выводить их в макет?
114. dhurricane 11.02.19 17:59 Сейчас в теме
(113) Можно было все заказы получить в основном запросе. Я не знаю, почему Вы не стали так делать сразу. Единственная загвоздка в том, что раз пользователи могут корректировать списки заказов, значит нужно где-то хранить и учитывать при печати.
115. user1008893 12.02.19 08:15 Сейчас в теме
(114)наверно,не стала так делать потому что не знала,что так можно.
116. user1008893 12.02.19 11:31 Сейчас в теме
(114)может у вас есть пример? буду пытаться что нибудь сделать
117. dhurricane 12.02.19 11:57 Сейчас в теме
(116) У Вас же основной запрос и запрос расшифровки мало чем отличаются. Выводите сразу все заказы из основной выборки.
118. user1008893 12.02.19 12:01 Сейчас в теме
(117)т.е Расшифровки не будет теперь?
119. dhurricane 12.02.19 12:03 Сейчас в теме
(118) Пусть остается, но без возможности пока редактировать список. Как решите задачу вывода заказов в печатную форму, можно будет вернуться и к редактированию списка.
120. user1008893 12.02.19 12:15 Сейчас в теме
(117)как это сделать,можно пример?
121. dhurricane 12.02.19 12:20 Сейчас в теме +2 $m
(120) Извините меня, пожалуйста, но я уже потерял всякий интерес к решению Вашей задачи. Попробуйте создать новую тему с ссылкой на текущую и описанием уже достигнутых результатов. В таком случае более вероятно, что другие участники форма подключаться и помогут Вам. Сюда уже вряд ли кто зайдет и напишет. :)
122. user1008893 12.02.19 12:29 Сейчас в теме
86. user1008893 08.02.19 15:40 Сейчас в теме
(84)Все равно ведь все в разных циклах получилось
98. acanta 47 10.02.19 12:50 Сейчас в теме
Если данные в расшифровке не требуются во всех подробностях, можно заполнить список значений или таблицу значений и вывести диалог выбора строки средствами платформы
Выполнять расчеты в открываемой форме, если за период с момента начала работы с планировщиком данные изменились, тоже тяжелая операция, в которой нет смысла.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата от 160 000 руб. до 180 000 руб.
Полный день

Ведущий программист / Руководитель проектов 1С
Москва
зарплата от 190 000 руб. до 190 000 руб.
Полный день

Программист 1С ЗУП
Уфа
зарплата от 60 000 руб. до 90 000 руб.
Полный день

Программист 1С
Москва
зарплата от 140 000 руб. до 140 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день