Вызов отчета по кнопке, передача параметров из процедуры
Здравствуйте, при активизации строки проходит проверка Контакта на оригинальность, соответственно вызывается экспортная процедура(т.к. во многих документах нужно реализовать). На выходе в процедуре имеем индикаторы(числовые) и соответственно данные что совпало(Имя,тел,ДР и тд) .
Не могу понять как сделать, чтобы при нажатии на кнопку на форме передались эти данные и вызвался отчет.
То есть нужно создать отчет в дереве и к нему обращаться или программно кодом писать отчет?
Сравниваем мы уже записанный справочник.КонтактныеЛица(Иванов И.И.) со всеми возможными Ивановыми в Справочник.КонтактныеЛица (если в 2 словах).
Может знает кто, Можно на кнопке 2 картинки отобразить? Или только картинку и рядом кнопку с картинкой?
В 1С недавно, прошу понять и простить, если что не так :)
Не могу понять как сделать, чтобы при нажатии на кнопку на форме передались эти данные и вызвался отчет.
То есть нужно создать отчет в дереве и к нему обращаться или программно кодом писать отчет?
Сравниваем мы уже записанный справочник.КонтактныеЛица(Иванов И.И.) со всеми возможными Ивановыми в Справочник.КонтактныеЛица (если в 2 словах).
Может знает кто, Можно на кнопке 2 картинки отобразить? Или только картинку и рядом кнопку с картинкой?
В 1С недавно, прошу понять и простить, если что не так :)
По теме из базы знаний
- Передача параметров/значений во внешнюю печатную форму для конфигураций на БСП (1С:Предприятие 8.2/8.3)
- Создание внешней печатной формы под УП с возможностью передачи параметров (для конфигураций на БСП)
- Создание мульти-базовых отчетов. Все, что вы хотели об этом знать
- Как программно открыть внешний отчет из "Дополнительных отчетов и обработок" и передать параметры (при помощи БСП)
- Формирование внешнего отчета в фоне
Найденные решения
(3)
Отчеты...Создать() на клиенте не работает. Уточнил.
Отчеты...Создать() на клиенте не работает. Уточнил.
&НаСервереБезКонтекста
Функция СКДНастройки(Отчет)
О=Отчеты[Отчет].Создать();
Возврат О.КомпоновщикНастроек.Настройки;
КонецФункции
&НаСервереБезКонтекста
Функция СКДПользовательскиеНастройки(Отчет)
О=Отчеты[Отчет].Создать();
Возврат О.КомпоновщикНастроек.ПользовательскиеНастройки;
КонецФункции
&НаСервереБезКонтекста
Функция СКДФиксированныеНастройки(Отчет)
О=Отчеты[Отчет].Создать();
Возврат О.КомпоновщикНастроек.ФиксированныеНастройки;
КонецФункции
&НаКлиенте
Процедура СКДНастройкиУстановитьПараметр(Настройки,Параметр,Значение,Использовать=Истина) Экспорт
Если ТипЗнч(Настройки)=Тип("НастройкиКомпоновкиДанных") Тогда
Элементы=Настройки.ПараметрыДанных.Элементы;
Иначе
Элементы=Настройки.Элементы;
КонецЕсли;
Для каждого Пар Из Элементы Цикл
Если ""+Пар.Параметр=Параметр Тогда
Пар.Использование=Использовать;
Пар.Значение=Значение;
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СКДОтчетОткрыть(ИмяОтчета, ПараметрыОтчета)
Настройки=СКДНастройки("ИмяОтчета");
ПользовательскиеНастройки=СКДПользовательскиеНастройки("ИмяОтчета");
ФиксированныеНастройки=СКДФиксированныеНастройки("ИмяОтчета");
Для каждого Параметр Из ПараметрыОтчета Цикл
СКДНастройкиУстановитьПараметр(Настройки,Параметр.Ключ,Параметр.Значение);
СКДНастройкиУстановитьПараметр(ПользовательскиеНастройки,Параметр.Ключ,Параметр.Значение);
СКДНастройкиУстановитьПараметр(ФиксированныеНастройки,Параметр.Ключ,Параметр.Значение);
КонецЦикла;
ПараметрыФормы=Новый Структура("СформироватьПриОткрытии,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки",
Истина,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки);
Уникальность=ТекущаяДата();
ОткрытьФорму("Отчет."+ИмяОтчета+".Форма",ПараметрыФормы,,Уникальность,,,,РежимОткрытияОкнаФормы.Независимый);
КонецПроцедуры
Показать
(9) Спасибо большое, мне помогли, но в итоге разобрался.
В модуле формы отчета выполняю запрос и передаю в отчет.
В модуле формы отчета выполняю запрос и передаю в отчет.
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДР", ДР);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ио", СокрИО);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", КонтактноеЛицо);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("почта", Почта);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("рабТел", РабТел);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("тел", Тел);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Фам", Фам);
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаКлиенте
Процедура СКДНастройкиУстановитьПараметр(Настройки,Параметр,Значение,Использовать=Истина) Экспорт
Если ТипЗнч(Настройки)=Тип("НастройкиКомпоновкиДанных") Тогда
Элементы=Настройки.ПараметрыДанных.Элементы;
Иначе
Элементы=Настройки.Элементы;
КонецЕсли;
Для каждого Пар Из Элементы Цикл
Если ""+Пар.Параметр=Параметр Тогда
Пар.Использование=Использовать;
Пар.Значение=Значение;
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СКДОтчетОткрыть(ИмяОтчета, ПараметрыОтчета) Экспорт
Отчет=Отчеты["ИмяОтчета"].Создать();
Настройки=Отчет.КомпоновщикНастроек.Настройки;
ПользовательскиеНастройки=Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
ФиксированныеНастройки=Отчет.КомпоновщикНастроек.ФиксированныеНастройки;
Для каждого Параметр Из ПараметрыОтчета Цикл
СКДНастройкиУстановитьПараметр(Настройки,Параметр.Ключ,Параметр.Значение);
СКДНастройкиУстановитьПараметр(ПользовательскиеНастройки,Параметр.Ключ,Параметр.Значение);
СКДНастройкиУстановитьПараметр(ФиксированныеНастройки,Параметр.Ключ,Параметр.Значение);
КонецЦикла
ПараметрыФормы=Новый Структура("СформироватьПриОткрытии,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки",
Истина,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки);
Уникальность=ТекущаяДата();
ОткрытьФорму("Отчет."+ИмяОтчета+".Форма",ПараметрыФормы,,Уникальность,,,,РежимОткрытияОкнаФормы.Независимый);
КонецПроцедуры
Показать
(3)
Отчеты...Создать() на клиенте не работает. Уточнил.
Отчеты...Создать() на клиенте не работает. Уточнил.
&НаСервереБезКонтекста
Функция СКДНастройки(Отчет)
О=Отчеты[Отчет].Создать();
Возврат О.КомпоновщикНастроек.Настройки;
КонецФункции
&НаСервереБезКонтекста
Функция СКДПользовательскиеНастройки(Отчет)
О=Отчеты[Отчет].Создать();
Возврат О.КомпоновщикНастроек.ПользовательскиеНастройки;
КонецФункции
&НаСервереБезКонтекста
Функция СКДФиксированныеНастройки(Отчет)
О=Отчеты[Отчет].Создать();
Возврат О.КомпоновщикНастроек.ФиксированныеНастройки;
КонецФункции
&НаКлиенте
Процедура СКДНастройкиУстановитьПараметр(Настройки,Параметр,Значение,Использовать=Истина) Экспорт
Если ТипЗнч(Настройки)=Тип("НастройкиКомпоновкиДанных") Тогда
Элементы=Настройки.ПараметрыДанных.Элементы;
Иначе
Элементы=Настройки.Элементы;
КонецЕсли;
Для каждого Пар Из Элементы Цикл
Если ""+Пар.Параметр=Параметр Тогда
Пар.Использование=Использовать;
Пар.Значение=Значение;
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СКДОтчетОткрыть(ИмяОтчета, ПараметрыОтчета)
Настройки=СКДНастройки("ИмяОтчета");
ПользовательскиеНастройки=СКДПользовательскиеНастройки("ИмяОтчета");
ФиксированныеНастройки=СКДФиксированныеНастройки("ИмяОтчета");
Для каждого Параметр Из ПараметрыОтчета Цикл
СКДНастройкиУстановитьПараметр(Настройки,Параметр.Ключ,Параметр.Значение);
СКДНастройкиУстановитьПараметр(ПользовательскиеНастройки,Параметр.Ключ,Параметр.Значение);
СКДНастройкиУстановитьПараметр(ФиксированныеНастройки,Параметр.Ключ,Параметр.Значение);
КонецЦикла;
ПараметрыФормы=Новый Структура("СформироватьПриОткрытии,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки",
Истина,ФиксированныеНастройки,ПользовательскиеНастройки,Настройки);
Уникальность=ТекущаяДата();
ОткрытьФорму("Отчет."+ИмяОтчета+".Форма",ПараметрыФормы,,Уникальность,,,,РежимОткрытияОкнаФормы.Независимый);
КонецПроцедуры
Показать
(5) Спасибо, но я все равно не очень понимаю.
Сейчас немного переигралось.
В общем нужно из документа передать параметр Код(код справочника) в реквизит отчета.
После использовать его в модуле объекта отчета. в экспортной процедуре, чтобы не дублировать процедуру в документ.
Тут будет проходить проверка.
По окончанию этой проверки будут получены данные(др,Фамилия, И.О. и тд.) по которым есть совпадения.
Так мне объяснил архитектор, но я застрял на этом параметре.
Сейчас немного переигралось.
В общем нужно из документа передать параметр Код(код справочника) в реквизит отчета.
После использовать его в модуле объекта отчета. в экспортной процедуре, чтобы не дублировать процедуру в документ.
Тут будет проходить проверка.
По окончанию этой проверки будут получены данные(др,Фамилия, И.О. и тд.) по которым есть совпадения.
Так мне объяснил архитектор, но я застрял на этом параметре.
(8) Что за процедура? Что за отчет (типовой, самописный)?
Если отчет СКД без своей формы отчета, то используется общая форма ФормаОтчета. При открытии формы программно можно в нее передать параметры (например, "код справочника"). Эти параметры обрабатываются в событии ПриСозданииНаСервере. Если форма отчета своя, то нужно самому в ней написать нужный код. Если своей формы нет, то смотрите, что делается в указанном событии в общей форме.
Предложенный мной код должен работать для отчета без своей формы отчета. Если Вы его воспроизвели и он не работает, то в каком месте?
Если отчет СКД без своей формы отчета, то используется общая форма ФормаОтчета. При открытии формы программно можно в нее передать параметры (например, "код справочника"). Эти параметры обрабатываются в событии ПриСозданииНаСервере. Если форма отчета своя, то нужно самому в ней написать нужный код. Если своей формы нет, то смотрите, что делается в указанном событии в общей форме.
Предложенный мной код должен работать для отчета без своей формы отчета. Если Вы его воспроизвели и он не работает, то в каком месте?
(9) Спасибо большое, мне помогли, но в итоге разобрался.
В модуле формы отчета выполняю запрос и передаю в отчет.
В модуле формы отчета выполняю запрос и передаю в отчет.
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДР", ДР);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ио", СокрИО);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", КонтактноеЛицо);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("почта", Почта);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("рабТел", РабТел);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("тел", Тел);
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Фам", Фам);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот