Вызов отчета по кнопке, передача параметров из процедуры

1. dragen 18.01.18 12:11 Сейчас в теме
Здравствуйте, при активизации строки проходит проверка Контакта на оригинальность, соответственно вызывается экспортная процедура(т.к. во многих документах нужно реализовать). На выходе в процедуре имеем индикаторы(числовые) и соответственно данные что совпало(Имя,тел,ДР и тд) .

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

Сравниваем мы уже записанный справочник.КонтактныеЛица(Иванов И.И.) со всеми возможными Ивановыми в Справочник.КонтактныеЛица (если в 2 словах).

Может знает кто, Можно на кнопке 2 картинки отобразить? Или только картинку и рядом кнопку с картинкой?

В 1С недавно, прошу понять и простить, если что не так :)
По теме из базы знаний
Найденные решения
5. VZyryanov 19.01.18 11:21 Сейчас в теме
(3)
Отчеты...Создать() на клиенте не работает. Уточнил.
&НаСервереБезКонтекста
Функция СКДНастройки(Отчет)
	О=Отчеты[Отчет].Создать();
	Возврат О.КомпоновщикНастроек.Настройки;
КонецФункции

&НаСервереБезКонтекста
Функция СКДПользовательскиеНастройки(Отчет)
	О=Отчеты[Отчет].Создать();
	Возврат О.КомпоновщикНастроек.ПользовательскиеНастройки;
КонецФункции

&НаСервереБезКонтекста
Функция СКДФиксированныеНастройки(Отчет)
	О=Отчеты[Отчет].Создать();
	Возврат О.КомпоновщикНастроек.ФиксированныеНастройки;
КонецФункции


&НаКлиенте
Процедура СКДНастройкиУстановитьПараметр(Настройки,Параметр,Значение,Использовать=Истина) Экспорт
	Если ТипЗнч(Настройки)=Тип("НастройкиКомпоновкиДанных") Тогда
		Элементы=Настройки.ПараметрыДанных.Элементы;
	Иначе
		Элементы=Настройки.Элементы;
	КонецЕсли;
	Для каждого Пар Из Элементы Цикл
		Если ""+Пар.Параметр=Параметр Тогда
			Пар.Использование=Использовать;
			Пар.Значение=Значение;
			Возврат;
		КонецЕсли;
	КонецЦикла;		
КонецПроцедуры


&НаКлиенте
Процедура СКДОтчетОткрыть(ИмяОтчета, ПараметрыОтчета)

	Настройки=СКДНастройки("ИмяОтчета");
	ПользовательскиеНастройки=СКДПользовательскиеНастройки("ИмяОтчета");
	ФиксированныеНастройки=СКДФиксированныеНастройки("ИмяОтчета");
	
	Для каждого Параметр Из ПараметрыОтчета Цикл
		СКДНастройкиУстановитьПараметр(Настройки,Параметр.Ключ,Параметр.Значение);
		СКДНастройкиУстановитьПараметр(ПользовательскиеНастройки,Параметр.Ключ,Параметр.Значение);
		СКДНастройкиУстановитьПараметр(ФиксированныеНастройки,Параметр.Ключ,Параметр.Значение);
	КонецЦикла; 

	ПараметрыФормы=Новый Структура("СформироватьПриОткрытии,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки",
		Истина,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки);
	Уникальность=ТекущаяДата();
	ОткрытьФорму("Отчет."+ИмяОтчета+".Форма",ПараметрыФормы,,Уникальность,,,,РежимОткрытияОкнаФормы.Независимый);

КонецПроцедуры
Показать
10. dragen 01.02.18 14:28 Сейчас в теме
(9) Спасибо большое, мне помогли, но в итоге разобрался.

В модуле формы отчета выполняю запрос и передаю в отчет.

Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДР", ДР);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ио", СокрИО);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", КонтактноеЛицо);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("почта", Почта);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("рабТел", РабТел);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("тел", Тел);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Фам", Фам);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. user623969_dusa 19.01.18 11:02 Сейчас в теме
(1) картинка на кнопке может быть одна но никто не мешает ее на рисовать так что будет как будто их две, а уже в коде менять при разных условиях
2. Sanya2049 39 19.01.18 08:57 Сейчас в теме
Зачем такие сложности напиши отдельную обработку и пусть она выполняет эти процедуры если они экспортные если нет просто повтори их
3. VZyryanov 19.01.18 10:52 Сейчас в теме
&НаКлиенте
Процедура СКДНастройкиУстановитьПараметр(Настройки,Параметр,Значение,Использовать=Истина) Экспорт
	Если ТипЗнч(Настройки)=Тип("НастройкиКомпоновкиДанных") Тогда
		Элементы=Настройки.ПараметрыДанных.Элементы;
	Иначе
		Элементы=Настройки.Элементы;
	КонецЕсли;
	Для каждого Пар Из Элементы Цикл
		Если ""+Пар.Параметр=Параметр Тогда
			Пар.Использование=Использовать;
			Пар.Значение=Значение;
			Возврат;
		КонецЕсли;
	КонецЦикла;		
КонецПроцедуры


&НаКлиенте
Процедура СКДОтчетОткрыть(ИмяОтчета, ПараметрыОтчета) Экспорт	

	Отчет=Отчеты["ИмяОтчета"].Создать();
	Настройки=Отчет.КомпоновщикНастроек.Настройки;
	ПользовательскиеНастройки=Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
	ФиксированныеНастройки=Отчет.КомпоновщикНастроек.ФиксированныеНастройки;
	
	Для каждого Параметр Из ПараметрыОтчета Цикл
		СКДНастройкиУстановитьПараметр(Настройки,Параметр.Ключ,Параметр.Значение);
		СКДНастройкиУстановитьПараметр(ПользовательскиеНастройки,Параметр.Ключ,Параметр.Значение);
		СКДНастройкиУстановитьПараметр(ФиксированныеНастройки,Параметр.Ключ,Параметр.Значение);
	КонецЦикла 

	ПараметрыФормы=Новый Структура("СформироватьПриОткрытии,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки",
		Истина,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки);
	Уникальность=ТекущаяДата();
	ОткрытьФорму("Отчет."+ИмяОтчета+".Форма",ПараметрыФормы,,Уникальность,,,,РежимОткрытияОкнаФормы.Независимый);

КонецПроцедуры
Показать
5. VZyryanov 19.01.18 11:21 Сейчас в теме
(3)
Отчеты...Создать() на клиенте не работает. Уточнил.
&НаСервереБезКонтекста
Функция СКДНастройки(Отчет)
	О=Отчеты[Отчет].Создать();
	Возврат О.КомпоновщикНастроек.Настройки;
КонецФункции

&НаСервереБезКонтекста
Функция СКДПользовательскиеНастройки(Отчет)
	О=Отчеты[Отчет].Создать();
	Возврат О.КомпоновщикНастроек.ПользовательскиеНастройки;
КонецФункции

&НаСервереБезКонтекста
Функция СКДФиксированныеНастройки(Отчет)
	О=Отчеты[Отчет].Создать();
	Возврат О.КомпоновщикНастроек.ФиксированныеНастройки;
КонецФункции


&НаКлиенте
Процедура СКДНастройкиУстановитьПараметр(Настройки,Параметр,Значение,Использовать=Истина) Экспорт
	Если ТипЗнч(Настройки)=Тип("НастройкиКомпоновкиДанных") Тогда
		Элементы=Настройки.ПараметрыДанных.Элементы;
	Иначе
		Элементы=Настройки.Элементы;
	КонецЕсли;
	Для каждого Пар Из Элементы Цикл
		Если ""+Пар.Параметр=Параметр Тогда
			Пар.Использование=Использовать;
			Пар.Значение=Значение;
			Возврат;
		КонецЕсли;
	КонецЦикла;		
КонецПроцедуры


&НаКлиенте
Процедура СКДОтчетОткрыть(ИмяОтчета, ПараметрыОтчета)

	Настройки=СКДНастройки("ИмяОтчета");
	ПользовательскиеНастройки=СКДПользовательскиеНастройки("ИмяОтчета");
	ФиксированныеНастройки=СКДФиксированныеНастройки("ИмяОтчета");
	
	Для каждого Параметр Из ПараметрыОтчета Цикл
		СКДНастройкиУстановитьПараметр(Настройки,Параметр.Ключ,Параметр.Значение);
		СКДНастройкиУстановитьПараметр(ПользовательскиеНастройки,Параметр.Ключ,Параметр.Значение);
		СКДНастройкиУстановитьПараметр(ФиксированныеНастройки,Параметр.Ключ,Параметр.Значение);
	КонецЦикла; 

	ПараметрыФормы=Новый Структура("СформироватьПриОткрытии,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки",
		Истина,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки);
	Уникальность=ТекущаяДата();
	ОткрытьФорму("Отчет."+ИмяОтчета+".Форма",ПараметрыФормы,,Уникальность,,,,РежимОткрытияОкнаФормы.Независимый);

КонецПроцедуры
Показать
6. antz 19.01.18 11:25 Сейчас в теме
(5)
Отчеты...Создать() на клиенте не работает. Уточнил.


Можно и не создавать отчет, а создать форму, у которой есть реквизит "Отчет", из него вытащить настройки, потом открыть форму.
7. dragen 26.01.18 13:00 Сейчас в теме
(5) Спасибо, но я все равно не очень понимаю.
Сейчас немного переигралось.
В общем нужно из документа передать параметр Код(код справочника) в реквизит отчета.
После использовать его в модуле объекта отчета. в экспортной процедуре, чтобы не дублировать процедуру в документ.

Тут будет проходить проверка.
По окончанию этой проверки будут получены данные(др,Фамилия, И.О. и тд.) по которым есть совпадения.



Так мне объяснил архитектор, но я застрял на этом параметре.
8. dragen 26.01.18 13:38 Сейчас в теме
(7) Тупанул.

Мне не нужен реквизит. Так как просто передаю его в процедуру.

Но все равно не очень понятно как передать данные в скд.
9. VZyryanov 26.01.18 15:12 Сейчас в теме
(8) Что за процедура? Что за отчет (типовой, самописный)?
Если отчет СКД без своей формы отчета, то используется общая форма ФормаОтчета. При открытии формы программно можно в нее передать параметры (например, "код справочника"). Эти параметры обрабатываются в событии ПриСозданииНаСервере. Если форма отчета своя, то нужно самому в ней написать нужный код. Если своей формы нет, то смотрите, что делается в указанном событии в общей форме.
Предложенный мной код должен работать для отчета без своей формы отчета. Если Вы его воспроизвели и он не работает, то в каком месте?
10. dragen 01.02.18 14:28 Сейчас в теме
(9) Спасибо большое, мне помогли, но в итоге разобрался.

В модуле формы отчета выполняю запрос и передаю в отчет.

Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДР", ДР);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ио", СокрИО);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", КонтактноеЛицо);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("почта", Почта);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("рабТел", РабТел);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("тел", Тел);
	Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Фам", Фам);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот