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

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

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


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


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


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


	
	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ = ТЧ.Добавить();
		СтрокаТЧ.Документ  = СтрокаТаблЗаказы.Документ;
		КонецЦикла;	
	 КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 04.02.19 14:58 Сейчас в теме
"В следующем поле" Вы имеете ввиду, что должна быть некоторая колонка с гиперссылкой, по нажатию на которую должна открыться форма расшифровки? Если так, то самый простой способ такой:
1) В макет строки добавляете ячейку с текстом "Показать заказы", устанавливаете в свойствах ячейки флажок "Гиперссылка", параметр расшифровки - "Контрагент" (должен заполняться ссылкой). Оформляете ячейку (цвет, шрифт) как гиперссылку.
2) Добавляете обработчик события "ОбработкаРасшифровки" для табличного документа. В нем открываете форму расшифровки, передавая ссылку на контрагента:
&НаКлиенте
Процедура ДокументРезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
		
	Если ТипЗнч(Расшифровка) = Тип("СправочникСсылка.Контрагенты") Тогда
		СтандартнаяОбработка = Ложь;
		ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка2.Форма.Расшифровка", Новый Структура("Контрагент",Расшифровка));
	КонецЕсли;
	
КонецПроцедуры
Показать

3) В форме расшифровке используете переданный параметр - ссылку на контрагента. Подставляете его в запрос и получаете только нужные заказы.

В приложении простенький пример.
Прикрепленные файлы:
ВнешняяОбработка2.epf
Artem1995amyr; leks88; user1008893; +3 Ответить
3. user1008893 04.02.19 15:22 Сейчас в теме
(2)спасибо,за пример,но у меня что то не срабатывает(
4. dhurricane 04.02.19 15:25 Сейчас в теме
5. user1008893 04.02.19 15:49 Сейчас в теме
(4)на нажатие по гиперссылке,событие обработки расшифровки прописала
6. user1008893 04.02.19 15:50 Сейчас в теме
(4)если нажать на контрагента,то выходит форма
7. dhurricane 04.02.19 16:11 Сейчас в теме
(6) Т.е. расшифровка работает по двойному клику на контрагента, но не работает по нажатию на гиперссылку?
8. user1008893 04.02.19 16:16 Сейчас в теме
9. dhurricane 04.02.19 16:19 Сейчас в теме
(8) Значит у Вас не заполняется параметр расшифровки для ячейки с гиперссылкой. К слову, а Вам подходит такой вариант, что расшифровка распространяется и на ячейку с контрагентом? Или Вам таки нужно разделить расшифровку: контрагента - открывать, а по гиперссылке показывать список документов?
10. user1008893 04.02.19 16:21 Сейчас в теме
(9)нужно разделить,так как это что то типо плана. На каждый день выбирается документ заказа.
11. user1008893 04.02.19 16:24 Сейчас в теме
(9)Вот так выглядит
Прикрепленные файлы:
12. dhurricane 04.02.19 17:15 Сейчас в теме
(11) Ну тогда, во-первых, используйте в качестве параметра расшифровки для ячейки с гиперссылкой другое имя. Например, "ЗаказыРасшифровка". Во-вторых, заполняйте его не ссылкой на контрагента, а чем-нибудь отличным, но содержащим ссылку:
ОбластьМакета.Параметры.ЗаказыРасшифровка = Новый ФиксированнаяСтруктура("Контрагент", Выборка.Контрагент);

Ну и в-третьих, в обработке расшифровки измените проверку:
Если ТипЗнч(Расшифровка) = Тип("ФиксированнаяСтруктура") Тогда
   СтандартнаяОбработка = Ложь;
   ОткрытьФорму("ИмяФормыРасшифровки", Новый Структура("Контрагент", Расшифровка.Контрагент));
КонецЕсли;
13. user1008893 04.02.19 17:44 Сейчас в теме
(12)хорошо,завтра попробую
14. user1008893 05.02.19 09:14 Сейчас в теме
(12)
Процедура ДействияФормыСформировать(Кнопка)
	
	ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
ПостроительОтчетаОтчет.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И ЗаказПокупателя.ДатаИсполнения <= &ДатаИсполнения
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|
	|УПОРЯДОЧИТЬ ПО
	|	Контрагент
	|ИТОГИ ПО
	|	Контрагент,
	|	ЗаказПокупателя
	|АВТОУПОРЯДОЧИВАНИЕ";
ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
табДок.Очистить();
табДок.ТолькоПросмотр=Истина;
 ПостроительОтчетаОтчет.Выполнить();
МойМакет=ПолучитьМакет("Макет");
побл=МойМакет.ПолучитьОбласть("Заголовок");
ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
табДок.Вывести(побл);
ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
табДок.Вывести(ОбластьШапка);
областьЗаказ=МойМакет.ПолучитьОбласть("ЗаказыПокупателя");
ОблТаб = МойМакет.ПолучитьОбласть("Таблица|Контрагент");


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

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	
	Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
		СтандартнаяОбработка=Ложь;
		ОткрытьФорму("Обработка.ПланировщикОтгрузок.РасшифровкаПотребностей",Новый Структура("Контрагент",Расшифровка.Контрагент));
		КонецЕсли;
	
КонецПроцедуры
Показать
-модуль формы
вот так,но ошибка ЗаказРасшифровка- не может найти
Прикрепленные файлы:
15. dhurricane 05.02.19 09:22 Сейчас в теме
(14) Что-то я теряюсь в Вашем коде. Во-первых, почему вы параметр "ОблТаб.Параметры.ЗаказРасшифровка" заполняете вне цикла обхода выборки и вообще после вывода области "ОблТаб" в табличный документ? Во-вторых, где у Вас должна быть гиперссылка? Рядом с контрагентом, в периодах или после них?
16. user1008893 05.02.19 16:45 Сейчас в теме
(15) Так все я разобралась,только теперь в открытой форме,должны появляться все заказы контрагента.
17. dhurricane 05.02.19 18:59 Сейчас в теме
(16) У Вас там запрос по заказам за период. Отберите их по контрагенту, переданному в параметрах формы, и дело в шляпе. :)
18. user1008893 06.02.19 08:19 Сейчас в теме
(17)мне надо и по периоду и по контрагенту. В форме нет параметра контрагента.
19. dhurricane 06.02.19 08:23 Сейчас в теме
(18) Как нету? Мы же его передаем при открытии формы расшифровки. Его нет в контекстной подсказке, когда Вы пишете код, но во время исполнения программы он точно будет.

И если Вам так будет проще ориентироваться, можете добавить параметр "Контрагент" в форму. Так Вы точно будете знать, что он есть.
20. user1008893 06.02.19 08:30 Сейчас в теме
(19)Форма Расшифровка
Процедура ПриОткрытии()Экспорт 

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

	
	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ = ТЧ.Добавить();
		СтрокаТЧ.Документ  = СтрокаТаблЗаказы.ЗаказПокупателя;
		КонецЦикла;	

КонецПроцедуры
Показать
22. dhurricane 06.02.19 08:36 Сейчас в теме
(20) Не понял. Эта информация зачем? :)
23. user1008893 06.02.19 08:41 Сейчас в теме
(22)просто как заполняю заказы
24. dhurricane 06.02.19 08:52 Сейчас в теме
(23) Ну вот. Раскомментируйте отбор по периоду и контрагенту. Контрагента для запроса берете из параметров формы: "Параметры.Контрагент".

Только получать параметр надо в обработчике "ПриСозданииНаСервере", не "ПриОткрытии", т.к. до открытия этот параметр не "доживает". Ну либо добавить таки параметр в форму и сделать его ключевым.

Плюс передать в форму расшифровки не только контрагента, но и период. Об этом я ранее не писал, т.к. не знал всех условий Вашей задачи.
Пример заполнения расшифровки:
СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Контрагент", Выборка.Контраген);
СтруктураРасшифровки.Вставить("ДатаНач", Выборка.Период);
СтруктураРасшифровки.Вставить("ДатаКон", КонецДня(Выборка.Период));

ОбластьМакета.Параметры.ЗаказыРасшифровка = Новый ФиксированнаяСтруктура(СтруктураРасшифровки);

Пример расшифровки:
Если ТипЗнч(Расшифровка) = Тип("ФиксированнаяСтруктура") Тогда
   СтандартнаяОбработка = Ложь;
   ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
   ОткрытьФорму("ИмяФормыРасшифровки", ПараметрыФормыРасшифровки);
КонецЕсли;
user1008893; +1 Ответить
25. user1008893 06.02.19 09:04 Сейчас в теме
(24)

Ошибка Преобразование значения к типу Дата не может быть выполненоСтруктураРасшифровки.Вставить("ДатаКон", КонецДня(пВыб.ДатаИсполнения));

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

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

Пока пВыб.Следующий() Цикл
областьЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);

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

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
 	Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
		СтандартнаяОбработка=Ложь;
		 ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
		ОткрытьФорму("Обработка.ПланировщикОтгрузок.Форма.РасшифровкаПотребностей",ПараметрыФормыРасшифровки);
		КонецЕсли;
	
КонецПроцедуры
Показать
26. dhurricane 06.02.19 09:08 Сейчас в теме
(25) Зачем Вы вынесли формирование структуры расшифровки за цикл? Данные же берутся из выборки.
P.S. Небольшая просьба. Пожалуйста, оформляйте текст модуля в своих сообщениях как код, а то разбирать становится трудно.
27. user1008893 06.02.19 09:12 Сейчас в теме
(26)Занесла внутрь и все равно такая же ошибка. Оформить как код не дает,я нажимаю эту кнопку и и все табло исчезает. Глюк
28. dhurricane 06.02.19 09:13 Сейчас в теме
(27) Посмотрите отладчиком, что у Вас там за значение попадает. NULL, Неопределено?
29. user1008893 06.02.19 09:19 Сейчас в теме
(28)типа нет,просто не может преобразовать.
Вот так нельзя написать?
СтруктураРасшифровки.Вставить("ДатаНач", пВыб.ДатаИсполнения);
СтруктураРасшифровки.Вставить("ДатаКон", КонецДня(ДатаИсполнения));

Просто при втором проходе цикла,датаНач null,почему то
30. dhurricane 06.02.19 09:25 Сейчас в теме
(29) Ну Вам ведь виднее, какие параметры для каждой ячейки передавать. :) Я не разбирал Ваш исходный код полностью, т.к. он неудобно представлен. Если это будет корректная дата в расшифровки данной ячейки, то используйте такой код.
32. user1008893 07.02.19 16:09 Сейчас в теме
(30)оставила,пока что так. Попробую сначала по контрагенту отсортировать. Хочу получить контрагента по строчку на которой мы стоим. Вот Как правильно передать,контрагента в расшифровку? подскажите пожалуйста..
Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	  табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
	
	_НомерСтроки = Формат(табДок.ТекущаяОбласть.Верх, "ЧРГ=; ЧГ=");
	_ОбластьКонтр = табДок.Область("R"+ _НомерСтроки + "C1:R" + _НомерСтроки + "C5");
			_Контрагент 	= _ОбластьКонтр.Расшифровка;
	Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
		СтандартнаяОбработка=Ложь;
		 ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
		ОткрытьФорму("Обработка.ПланировщикОтгрузок.Форма.РасшифровкаПотребностей",ПараметрыФормыРасшифровки);
	КонецЕсли;
КонецПроцедуры
Показать
33. dhurricane 07.02.19 23:07 Сейчас в теме
(32) Не-не, это все лишнее. Все то, что я Вам ранее написал - этого достаточно. Не надо дополнительно пытаться извлечь контрагента из расшифровки.

Смотрите еще раз. В ячейках Вашего макета есть свойство "Параметр". Оно используется для отображения данных в табличном документе. Например, в одной из ячеек у Вас в свойстве "Параметр" стоит значение "Контрагент". Значит всякий раз, когда мы будем присваивать параметру "Контрагент" этой области ссылку на контрагента, в табличном документе будет отображено наименование контрагента которое и видит пользователь. Аналогично и с периодом. У Вас это код:
областьЗаказ.Параметры.СчетчикМесяца = ...

Дополнительно в ячейках есть еще одно свойство с параметром. Это "Параметр расшифровки". Его тоже можно заполнять, также как и обычный параметр. Но параметр расшифровки не используется для отображения в табличном документе. Он хранит в ячейке значение, которое обрабатывается при двойном клике. По умолчанию обработка простая: открыть значение параметра. Например, если в ячейке макета есть параметр "СчетчикМесяца" и параметр расшифровки "ТекстМесяца", то при таком заполнении параметров:
областьЗаказ.Параметры.СчетчикМесяца = "Январь";
областьЗаказ.Параметры.ТекстМесяца = "Привет";

мы в табличном документе увидим текст "Январь", а при двойном клике по "Январю" получим сообщение "Привет". Если же "ТекстМесяца" был какой-нибудь ссылкой, то открылся бы объект по этой ссылке.

Ну и вернемся к Вашей задаче. Мы заполнили параметр расшифровки "ЗаказыРасшифровка" фиксированной структурой, где есть поле с ссылкой на контрагента и две даты. Теперь в обработчике "ПолеТабличногоДокумента1ОбработкаРасшифровки" мы проверяем переменную "Расшифровка". Это как раз то значение, которое мы записали в параметр расшифровки. Только непонятно, какой ячейки это расшифровка. Поэтому проверяем ее тип: только для нужных нам ячеек с нестандартной расшифровкой мы заполнили ее параметр как фиксированную структуру. Т.о. если переменная "Расшифровка" есть фиксированная структура, то там точно есть поле "Контрагент" со ссылкой на нашего контрагента. А также две даты периода.

При открытии формы расшифровки нам надо передать в форму параметры открытия формы. Это должна быть структура. Без лишних мучений мы преобразовываем фиксированную структуру "Расшифровка" в структуру параметров открытия - "ПараметрыФормыРасшифровки". И эта структура точно будет содержать поле "Контрагент" со ссылкой на нашего контрагента.
user1008893; +1 Ответить
34. user1008893 08.02.19 08:27 Сейчас в теме
(33)так,понятно. А можно как то заказы,которые мы получаем по контрагенту раскидывать автоматически по дате исполнения,но при том если пользователь захочет перенести на другой день,то он это сможет сделать?
35. dhurricane 08.02.19 08:31 Сейчас в теме
(34) Извините, не понял задачи.
36. user1008893 08.02.19 08:43 Сейчас в теме
(35)Ну у нас план отгрузок на месяц,по дням. Можно ли брать день месяца для сортировки?
37. dhurricane 08.02.19 08:46 Сейчас в теме
(36) Для сортировки чего? :)
38. user1008893 08.02.19 08:47 Сейчас в теме
(37)для сортировки заказов
39. dhurricane 08.02.19 08:51 Сейчас в теме
(38) Подождите. День месяца ведь не является реквизитом документа. И вовсе не зависит от документа. Возможно под "сортировкой" Вы имеете ввиду "отбор"? В расшифровке?
40. user1008893 08.02.19 08:52 Сейчас в теме
41. dhurricane 08.02.19 08:57 Сейчас в теме
(40) Можно. В параметр расшифровки помимо контрагента нужно добавить еще одно поле с датой, например "ДеньМесяца". Тогда его можно будет использовать в форме расшифровки.
42. user1008893 08.02.19 09:00 Сейчас в теме
(41)У меня сейчас вот так.
Прикрепленные файлы:
43. dhurricane 08.02.19 09:04 Сейчас в теме
(42) Там, где вы в макете строки заполняете параметр расшифровки структурой с полем "Контрагент", вставьте еще одно поле с датой.
44. user1008893 08.02.19 09:05 Сейчас в теме
(43)нет,так не пойдет.Макет только такой надо использовать
46. dhurricane 08.02.19 09:44 Сейчас в теме
(44) Да Вы не поняли. Сам макет не надо править, нужно поправить код. Там, где Вы создаете фиксированную структуру и вставляете в нее контрагента, вставьте и дату.
47. user1008893 08.02.19 09:55 Сейчас в теме
(46)
Пока пВыб.Следующий() Цикл
	СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца", ДатаИсполнения);
//СтруктураРасшифровки.Вставить("ДатаКон", КонецДня(ДатаИсполнения));
областьЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);

Так?
48. dhurricane 08.02.19 09:57 Сейчас в теме
(47) Да, если "ДатаИсполнения" - это дата, которая указывается в колонках табличного документа.
49. user1008893 08.02.19 10:01 Сейчас в теме
(48)нет,это у меня заполняется вот здесь


(48)
ТекущийПериод  = НачалоДня(ТекущаяДата());
ГоризонтПланирования = КонецМесяца(ТекущаяДата());
_Период     = НачалоМесяца(ТекущийПериод);
_КонПериод  = КонецДня(ГоризонтПланирования);
Пока _Период <= _КонПериод Цикл
	Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
		областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				 табДок.Присоединить(областьЗаказ);
	ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказ);
	Иначе 
		областьЗаказ.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
		 табДок.Присоединить(областьЗаказ);
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	КонецЦикла;	
	
Показать
50. dhurricane 08.02.19 10:23 Сейчас в теме
(49) Не понимаю немного, как у Вас работает отчет тогда, если Вы сначала выводите контрагентов, а потом периоды. Табличный документ не "разъезжается"? Вы пробовали сформировать его для данных, где более одного контрагента?
51. user1008893 08.02.19 10:27 Сейчас в теме
(50)нормально все выводит
Прикрепленные файлы:
52. dhurricane 08.02.19 10:36 Сейчас в теме
(51) А код можно глянуть? Или он не изменился по отношению к тому, что Вы присылали мне ранее?
53. user1008893 08.02.19 10:40 Сейчас в теме
(52)
Процедура ДействияФормыСформировать(Кнопка)
	
	ПостроительОтчетаОтчет = Новый ПостроительОтчета; 
ПостроительОтчетаОтчет.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	|	И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаИсполнения И &ГоризонтПланирования
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|
	|УПОРЯДОЧИТЬ ПО
	|	Контрагент
	|ИТОГИ ПО
	|	Контрагент,
	|	ЗаказПокупателя
	|АВТОУПОРЯДОЧИВАНИЕ";
ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
табДок.Очистить();
табДок.ТолькоПросмотр=Истина;
 ПостроительОтчетаОтчет.Выполнить();
МойМакет=ПолучитьМакет("Макет");
побл=МойМакет.ПолучитьОбласть("Заголовок");
ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
табДок.Вывести(побл);
ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
табДок.Вывести(ОбластьШапка);
областьЗаказ=МойМакет.ПолучитьОбласть("ЗаказыПокупателя");
ОблТаб = МойМакет.ПолучитьОбласть("Таблица|Контрагент");
ОбластьСрокиТаб=МойМакет.ПолучитьОбласть("Таблица");
табДок.НачатьАвтогруппировкуСтрок();
пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;	


Пока пВыб.Следующий() Цикл
	СтруктураРасшифровки = Новый Структура;
СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
СтруктураРасшифровки.Вставить("СчетчикМесяца", );
//СтруктураРасшифровки.Вставить("ДатаКон", КонецДня(ДатаИсполнения));
областьЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);


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

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Экспорт 
	//  табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
	//
	//_НомерСтроки = Формат(табДок.ТекущаяОбласть.Верх, "ЧРГ=; ЧГ=");
	//_ОбластьКонтр = табДок.Область("R"+ _НомерСтроки + "C1:R" + _НомерСтроки + "C5");
	//		_Контрагент 	= _ОбластьКонтр.Расшифровка;
	Если ТипЗнч(Расшифровка)=Тип("ФиксированнаяСтруктура") Тогда
		СтандартнаяОбработка=Ложь;
		 ПараметрыФормыРасшифровки = Новый Структура(Расшифровка);
		ОткрытьФорму("Обработка.ПланировщикОтгрузок.Форма.РасшифровкаПотребностей",ПараметрыФормыРасшифровки);
	КонецЕсли;
КонецПроцедуры
Показать


чуть чуть поменяла
54. dhurricane 08.02.19 11:08 Сейчас в теме
(53) Эх, понятно теперь, почему мы с Вами никак понять друг друга не можем. :) У Вас, видно, обычные формы да еще и построитель отчета... А в них я не силен. У меня на управляемых Ваш код выглядит иначе (см. рис.)

Я-то думал Вы иначе данные выводите:
1. вывод шапки контрагента, присоединение шапок для всех периодов;
2. вывод контрагента 1, присоединение ячеек периодов с надписью "Выбрать заказ";
3. вывод контрагента 2, присоединение ячеек периодов с той же надписью;
4. и т.д. до конца всех контрагентов.
Прикрепленные файлы:
user1008893; +1 Ответить
56. user1008893 08.02.19 11:26 Сейчас в теме
(54)у меня тоже так же ведь,просто я выделила ячейки и это не правильно...
58. dhurricane 08.02.19 12:02 Сейчас в теме
(56) Т.е. Вы нарисовали границы сами прежде, чем отправить мне пример? :)
59. user1008893 08.02.19 12:13 Сейчас в теме
(58)нет,я давно так сделала
60. dhurricane 08.02.19 12:25 Сейчас в теме
(59) А как дальше? Я не совсем понимаю уже, что делает этот отчет. Текст "Выбрать заказ" должен быть не в каждой ячейке таблицы, а только в верхней строке?
61. user1008893 08.02.19 12:27 Сейчас в теме
62. dhurricane 08.02.19 12:29 Сейчас в теме
(61) Вы не знаете, как это сделать?
63. user1008893 08.02.19 12:32 Сейчас в теме
(62)у меня получилось только так

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

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


Пока пВыб.Следующий() Цикл
//	СтруктураРасшифровки = Новый Структура;
//СтруктураРасшифровки.Вставить("Контрагент", пВыб.Контрагент);
//СтруктураРасшифровки.Вставить("СчетчикМесяца",СчетчикМесяца );

//областьЗаказ.Параметры.ЗаказРасшифровка= Новый ФиксированнаяСтруктура(СтруктураРасшифровки);


ОбластьСрокиТаб.Параметры.Заполнить(пВыб);
табДок.Вывести(ОбластьСрокиТаб,пВыб.Уровень());
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
 	  
Показать
Прикрепленные файлы:
64. dhurricane 08.02.19 12:37 Сейчас в теме
(63) Вам нужно сначала решить эту проблему. И тогда проблема с параметрами расшифровки уйдет сама собой. Взгляните еще раз на сообщение (54). Вам нужно сделать именно так: после каждого вывода контрагента идет вывод периодов. А у Вас сейчас сначала все строчки контрагентов, а потом все колонки периодов.
user1008893; +1 Ответить
65. user1008893 08.02.19 12:39 Сейчас в теме
(64)я же сделала в (63),только так получается....
66. dhurricane 08.02.19 12:41 Сейчас в теме
(65) Ну нет же. У Вас там 2 независимых цикла: по периодам и по контрагентам. А цикл по периодам должен быть вложен в цикл по контрагентам.
user1008893; +1 Ответить
67. user1008893 08.02.19 13:10 Сейчас в теме
(66)
Пока пВыб.Следующий() Цикл 
	ОбластьСрокиТаб.Параметры.Заполнить(пВыб);


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


КонецЦикла;
Показать

фигня получается...
68. dhurricane 08.02.19 13:14 Сейчас в теме
(67) Ну конечно. Нужно сначала выводить контрагента, а потом уже присоединять периоды. А у Вас наоборот.
69. user1008893 08.02.19 13:20 Сейчас в теме
(68)
Пока пВыб.Следующий() Цикл 
	ОбластьСрокиТаб.Параметры.Заполнить(пВыб);
ТекущийПериод  = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период     = НачалоМесяца(ТекущийПериод);
_КонПериод  = КонецДня(Горизонт);
Пока _Период <= _КонПериод Цикл
	Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
		областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				 табДок.Вывести(ОбластьСрокиТаб,пВыб.Уровень()); 
				 табДок.Присоединить(областьЗаказ);
				
	ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Вывести(ОбластьСрокиТаб,пВыб.Уровень());
табДок.Присоединить(областьЗаказ);
					Иначе 
		областьЗаказ.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
		 	 табДок.Вывести(ОбластьСрокиТаб,пВыб.Уровень());
			 табДок.Присоединить(областьЗаказ);
	
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	      КонецЦикла;	


КонецЦикла;
Показать

еще хуже
70. dhurricane 08.02.19 13:25 Сейчас в теме
(69) Вы здесь выводите контрагента вместе с периодом. А нужно сначала контрагента, а потом цикл по периодам.
71. user1008893 08.02.19 13:28 Сейчас в теме
(70)
Пока пВыб.Следующий() Цикл 
	ОбластьСрокиТаб.Параметры.Заполнить(пВыб);
	  табДок.Вывести(ОбластьСрокиТаб,пВыб.Уровень()); 
	  
	  ТекущийПериод  = НачалоДня(ТекущаяДата());
Горизонт = КонецМесяца(ГоризонтПланирования);
_Период     = НачалоМесяца(ТекущийПериод);
_КонПериод  = КонецДня(Горизонт);
Пока _Период <= _КонПериод Цикл
	Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
		областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				 табДок.Присоединить(областьЗаказ);
	ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				                табДок.Присоединить(областьЗаказ);
					Иначе 
		областьЗаказ.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			 табДок.Присоединить(областьЗаказ);
	
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	      КонецЦикла;	


КонецЦикла;
Показать

так?,но так тоже не правильно выводится
72. dhurricane 08.02.19 13:38 Сейчас в теме
(71) Полагаю из-за неправильных макетов областей. Должны использоваться такие области:
облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
user1008893; +1 Ответить
73. user1008893 08.02.19 13:50 Сейчас в теме
(72)Ок,сделала так,но теперь область Шапка|ЗаказПокупателя,потеряли
74. dhurricane 08.02.19 14:03 Сейчас в теме
(73) Шапке нужен аналогичный финт. Т.е. сначала вывести область макета на пересечении шапки и контрагента, затем цикл по всем периодам с присоединением области макета на пересечении шапки и заказа.
75. user1008893 08.02.19 14:14 Сейчас в теме
(74)
областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
	табДок.НачатьАвтогруппировкуСтрок();
	пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;	
	
	Пока пВыб.Следующий() Цикл 
		 
		облКонтрагент.Параметры.Заполнить(пВыб);
		табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		
		Пока _Период <= _КонПериод Цикл
			Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				 табДок.Присоединить(областьЗаказШапка);
				табДок.Присоединить(облЗаказ);
			ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказШапка);
				табДок.Присоединить(облЗаказ);
			Иначе 
				областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказШапка);
				табДок.Присоединить(облЗаказ);
				
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;	
		
		
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
Показать

Выводится ,ни где шапка а к таблице присоединяется
76. dhurricane 08.02.19 14:26 Сейчас в теме
(75) Давайте начнем новую ветку, а то уже читать неудобно - колонка узкая. :) Скопируйте, пожалуйста, свой код еще разок в новое сообщение без ответа.
55. dhurricane 08.02.19 11:18 Сейчас в теме
(53) Если остановиться отладчиком при выполнении следующей строки:
табДок.Присоединить(областьЗаказ);

какие можно увидеть параметры для "областьЗаказ"?
57. user1008893 08.02.19 11:29 Сейчас в теме
(55)Счетчик месяца и заказ расшифровка
45. user1008893 08.02.19 09:06 Сейчас в теме
(43)нельзя взять параметр Счетчик месяца?
21. user1008893 06.02.19 08:35 Сейчас в теме
(19)Надо на каждую строчку контрагента свои заказы,за период. И расшифровку надо по каждой строчке контрагента.
Прикрепленные файлы:
31. user1088693 06.02.19 12:46 Сейчас в теме
(21) Если у Вас есть фиксированный макет, то тогда можете сделать так:

В цикле когда обходите результат запроса, Вам нужно на каждую ячейку строки присваивать расшифровку:

ОбластьСтрокиТаб = Макет.ПолучитьОбласть("Таблица");
ОбластьСтрокиТаб.Область("R1C1").Расшифровка = Новый Структура("Номенклатура, Колонка, Подразделение", СтрокаРезультатаЗапроса.Номенклатура, "СреднийРасход", Заказчик);

В процедуре обработчика события "ОбработкаРасшифровки" для поля табличного документа Вам нужно прочитать эту расшифровку и выполняете ту команду по открытию ваших форм, отчетов и т.д.:

Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда
Если ТипЗнч(Расшифровка.Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда
СтандартнаяОбработка = Ложь;
Если Расшифровка.Колонка="СреднийРасход" Тогда
Отчет = Отчеты.ОстаткиТоваровНаСкладах.Создать();
Форма = Отчет.ПолучитьФорму("Форма");
Форма.Открыть();
КонецЕсли;
КонецЕсли;
КонецЕсли;
77. user1008893 08.02.19 14:28 Сейчас в теме
областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
    табДок.НачатьАвтогруппировкуСтрок();
    пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;    
    
    Пока пВыб.Следующий() Цикл 
         
        облКонтрагент.Параметры.Заполнить(пВыб);
        табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
        ТекущийПериод  = НачалоДня(ТекущаяДата());
        Горизонт = КонецМесяца(ГоризонтПланирования);
        _Период     = НачалоМесяца(ТекущийПериод);
        _КонПериод  = КонецДня(Горизонт);
        
        Пока _Период <= _КонПериод Цикл
            Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                 табДок.Присоединить(областьЗаказШапка);
                табДок.Присоединить(облЗаказ);
            ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день                
                областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(областьЗаказШапка);
                табДок.Присоединить(облЗаказ);
            Иначе 
                областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
                табДок.Присоединить(областьЗаказШапка);
                табДок.Присоединить(облЗаказ);
                
            КонецЕсли;         
            _Период  = КонецДня(_Период) + 1;
        КонецЦикла;    
        
        
    КонецЦикла;
    табДок.ЗакончитьАвтогруппировкуСтрок();
Показать
78. dhurricane 08.02.19 14:34 Сейчас в теме
(77) Не, не. Шапка же должна выводиться до обхода выборки.
79. user1008893 08.02.19 14:40 Сейчас в теме
(78)у меня же в шапке СчетчикМесяца,он не должен быть пустым
80. dhurricane 08.02.19 14:45 Сейчас в теме
(79) Так выборка тут не нужна же. Более того, счетчик месяца только в шапке и заполняется, в строках с контрагентом он и не нужен. Обход дат и присоединение нужно, а вот заполнение параметра счетчика - нет.
81. user1008893 08.02.19 14:48 Сейчас в теме
(80)так?
областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
	табДок.Присоединить(областьЗаказШапка);
	
	облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
	облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
	табДок.НачатьАвтогруппировкуСтрок();
	пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;	
	
	Пока пВыб.Следующий() Цикл 
		
		облКонтрагент.Параметры.Заполнить(пВыб);
		табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
		ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);
		
		Пока _Период <= _КонПериод Цикл
			Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказШапка);
				табДок.Присоединить(облЗаказ);
			ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказШапка);
				табДок.Присоединить(облЗаказ);
			Иначе 
				областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
				табДок.Присоединить(областьЗаказШапка);
				табДок.Присоединить(облЗаказ);
				
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;	
		
		
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
Показать
82. dhurricane 08.02.19 15:17 Сейчас в теме
(81) Ну нет же. :D

Смотрите. Давайте забудем все строчки, касающиеся вывода шапки в Вашем коде. Обратите внимание еще раз на то, как вы выводите строки таблицы: сначала вывод контрагента, затем вывод периодов в цикле. И это тело цикла обхода выборки, которое повторяется много-много раз.

С шапкой Вам нужно провернуть все то же самое, но только вне цикла, т.к. она выводится один раз. Фактически Вам нужна копия всего того, что внутри цикла выборки, но только до самого цикла. И с другими макетами областей: если внутри цикла выборки это строки таблицы, то вне цикла - это строка шапки. В остальном все то же.

И еще разок.
//-------- шапка ------------//
Вывод контрагента (надписи из шапки)
Цикл присоединений ячеек периодов (счетчики месяца в шапке)
//----------таблица---------//
Обход выборки:
Вывод контрагента (контрагент из выборки)
Цикл присоединений ячеек периодов (просто надписи "Выбрать заказ")
Конец выборки
user1008893; +1 Ответить
83. user1008893 08.02.19 15:27 Сейчас в теме
(82)
областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
	//табДок.Присоединить(областьЗаказШапка);
	
	ТекущийПериод  = НачалоДня(ТекущаяДата());
		Горизонт = КонецМесяца(ГоризонтПланирования);
		_Период     = НачалоМесяца(ТекущийПериод);
		_КонПериод  = КонецДня(Горизонт);

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

Так?
84. dhurricane 08.02.19 15:36 Сейчас в теме
(83) Почти. Попробуйте выполнить этот код. У Вас должна шапка съехать.
85. user1008893 08.02.19 15:38 Сейчас в теме
(84)ничего не съехало,все заполняется просто Выбрать заказ нет этой надписи
87. dhurricane 08.02.19 15:58 Сейчас в теме
(85) Эм... Вы не весь код мне представили? Например вижу получение макета "Шапка|ЗаказыПокупателя", но не вижу "Шапка|Контрагент". А макет правили? Покажите макет и текущий результат, пожалуйста.
88. user1008893 08.02.19 16:00 Сейчас в теме
(87)
ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
	ПостроительОтчетаОтчет.Параметры.Вставить("ГоризонтПланирования",ГоризонтПланирования);
	ПостроительОтчетаОтчет.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.Расшифровка;
	табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
	табДок.Очистить();
	табДок.ТолькоПросмотр=Истина;
	ПостроительОтчетаОтчет.Выполнить();
	МойМакет=ПолучитьМакет("Макет");
	побл=МойМакет.ПолучитьОбласть("Заголовок");
	ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
	табДок.Вывести(побл);
	ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент"); 
	табДок.Вывести(ОбластьШапка);
	областьЗаказШапка=МойМакет.ПолучитьОбласть("Шапка|ЗаказыПокупателя");
		
	ТекущийПериод  = НачалоДня(ТекущаяДата());
	Горизонт = КонецМесяца(ГоризонтПланирования);
	_Период     = НачалоМесяца(ТекущийПериод);
	_КонПериод  = КонецДня(Горизонт);
	
	Пока _Период <= _КонПериод Цикл
		Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
			областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
			
		ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
			областьЗаказШапка.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
		Иначе 
			областьЗаказШапка.Параметры.СчетчикМесяца  = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
			табДок.Присоединить(областьЗаказШапка);
			
			
		КонецЕсли; 		
		_Период  = КонецДня(_Период) + 1;
	КонецЦикла;		
	
	облКонтрагент=МойМакет.ПолучитьОбласть("Таблица|Контрагент");
	облЗаказ=МойМакет.ПолучитьОбласть("Таблица|ЗаказыПокупателя");
	табДок.НачатьАвтогруппировкуСтрок();
	пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;	
	
	Пока пВыб.Следующий() Цикл 
		
		облКонтрагент.Параметры.Заполнить(пВыб);
		табДок.Вывести(облКонтрагент,пВыб.Уровень()); 
		
		Пока _Период <= _КонПериод Цикл
			Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда       // прошлый день
				табДок.Вывести(облЗаказ);
			ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда  // текущий день				
				табДок.Вывести(облЗаказ);
			Иначе 
				табДок.Вывести(облЗаказ);
			КонецЕсли; 		
			_Период  = КонецДня(_Период) + 1;
		КонецЦикла;	
		
	КонецЦикла;
	табДок.ЗакончитьАвтогруппировкуСтрок();
Показать

Макет не правила
Прикрепленные файлы:
89. dhurricane 08.02.19 16:06 Сейчас в теме
(88) Так Вы зачем во вложенном цикле вдруг стали выводить, а не присоединять области заказа? Было же правильно еще на предыдущем шаге. Области контрагента - выводить, области заказов - присоединять.
user1008893; +1 Ответить
90. user1008893 08.02.19 16:08 Сейчас в теме
(89)да без разницы,все равно итог один и тот же
91. dhurricane 08.02.19 16:10 Сейчас в теме
(90) Переменную "_Период" в цикле выборки нужно заново инициализировать.
user1008893; +1 Ответить
92. user1008893 08.02.19 16:13 Сейчас в теме
(91)ооо,наконец-то получилось))) Теперь расшифровку надо сделать.(
93. dhurricane 08.02.19 16:14 Сейчас в теме
(92) Ура!

Еще немного осталось. Фиксированную структуру создавайте и заполняйте во вложенном цикле, и дело сделано.
94. user1008893 08.02.19 16:25 Сейчас в теме
(93)а как получить значения на форме расшифровки?

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

Запрос.УстановитьПараметр("Контрагент",Контрагент);

	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ = ТЧ.Добавить();
		СтрокаТЧ.Документ  = СтрокаТаблЗаказы.ЗаказПокупателя;
		КонецЦикла;	

КонецПроцедуры
Показать

Так не работает.
95. dhurricane 08.02.19 17:56 Сейчас в теме
96. user1008893 08.02.19 18:17 Сейчас в теме
97. dhurricane 08.02.19 18:25 Сейчас в теме
(96) Я с ними никогда не работал. Гугл по первой ссылке предлагает следующий подход:
1. Добавить на форму расшифровки реквизиты "Контрагент", "ДатаНач" и "ДатаКон".
2. В обработчике расшифровки открывать форму так:
ФормаРасшифровки = ПолучитьФорму("ИмяФормыРасшифровки");
ФормаРасшифровки.Контрагент = Расшифровка.Контрагент;
ФормаРасшифровки.ДатаНач= Расшифровка.ДатаНач;
ФормаРасшифровки.ДатаКон= Расшифровка.ДатаКон;
ФормаРасшифровки.Открыть();
user1008893; +1 Ответить
99. user1008893 11.02.19 09:20 Сейчас в теме
(97)Так,все получилось,но Счетчик месяца неправильно берет данные. Когда я нажимаю,на дату 1.02.2019,то он на форму расшифровки берет дату 28.02,а если нажать на дату 2.02,то он берет 1.02 и т.д. Что не так то?
А кстати Выделенная строчка не расшифровывается,на ней просто + появляется, а на других лупа
100. dhurricane 11.02.19 09:24 Сейчас в теме
(99) Полагаю, Вы на каждой новой итерации цикла заполняете параметр расшифровки старыми данными, из прошлой итерации. Проверьте код обхода выборки.
user1008893; +1 Ответить
101. user1008893 11.02.19 09:59 Сейчас в теме
(100)так,все поправила,структура расшифровки не в том месте заполнялась.
102. user1008893 11.02.19 14:11 Сейчас в теме
(100) а как теперь распечатать все вместе с расшифровкой?
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

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

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

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