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

Автор Тема: Отчет СКД с параметрами из ТЧ  (Прочитано 292 раз)

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

Оффлайн Artjomrgv

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 9
  • КПД: 10%
  • Регистрация: 2014-02-25
  • Сайт: 
  • Профессия: Консультант 1С
Добрый вечер, коллеги. Есть документ, в документе есть кнопка "История платежей", хочу сделать чтобы при нажатии кнопки "история платежей" формировался отчет СКД, а параметр договор должен передаваться из текущей строки табличной части. Может у кого есть готовый пример, буду очень благодарен.

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн LexaK

  • *****
  • Сообщений: 1036
  • РЕПУТАЦИЯ: 272
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
была такая примерная задача, при нахождении на какой-то строке в ТЧ, сформировать отчет СКД с параметрами из этой строки.
Вот пример, адаптируйте его под свою задачу
Примечание используется в БП30, есть процедуры из общих модулей по настройке отчета.
(это просто кусок кода из реальной обработки)
&НаКлиенте
Процедура КомандаРасшифровка(Команда)
//Отчет по одному Контрагент - Договор

лкТекСтрока = Элементы.тзДанные.ТекущиеДанные;
Если лкТекСтрока = Неопределено Тогда
Возврат;
КонецЕсли;

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

СформироватьОтчетНаСервере("ОсновнаяСхемаКомпоновкиДанных", ПараметрыОтчета, ПараметрыОтбора);
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.Отчет;
//лкТаб.Показать();

КонецПроцедуры

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

УстановитьПривилегированныйРежим(Истина);

лкОтчет = РеквизитФормыВЗначение("Объект");

лкСКД = лкОтчет.ПолучитьМакет(лкИмяСКД);
лкВариант = лкСкд.ВариантыНастроек.Основной;
лкНастройки = лкВариант.Настройки;

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

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

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

// Помещаем в переменную данные о расшифровке данных.
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

// Формируем макет, с помощью компоновщика макета.
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

// Передаем в макет компоновки схему, настройки и данные расшифровки.
МакетКомпоновки = КомпоновщикМакета.Выполнить(лкСКД, лкВариант.Настройки, ДанныеРасшифровки);

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

тдОтчет.Очистить();

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

АдресДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, УникальныйИдентификатор);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

УстановитьПривилегированныйРежим(Ложь);

КонецПроцедуры

Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Artjomrgv

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 9
  • КПД: 10%
  • Регистрация: 2014-02-25
  • Сайт: 
  • Профессия: Консультант 1С
Спасибо.


Теги: 1С 8.3 
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

MuI_I_Ika MuI_I_Ika
77 Сообщений
cska-fanat-kz cska-fanat-kz
67 Сообщений
Kironten
42 Сообщений
alex0402
42 Сообщений
alexandr_ll
34 Сообщений
LexaK
33 Сообщений
Андрей1966
26 Сообщений
djkeysi
24 Сообщений
sertak sertak
22 Сообщений
BuhRust
20 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal