Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 21:26

Нужна помощь в формировке внешнего отчета

Автор Malum, 09 окт 2018, 21:09

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

Malum

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

Golickoff

Передать значение реквизита можно через параметры. Если в конфигурации чего-то не видно, значит этого там нет, или отсутствуют соответствующие права.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

bony_ann

Malum, для добавления внешнего отчета необходимо добавить в Модуль объекта следующий код, заменив название внешнего отчета на своё. Далее в режиме предприятия в подсистеме НСИ и администрирование -> Администрирование -> Печатные формы, отчеты и обработки, установить галочку, если не стоит напротив "Дополнительные отчеты и обработки" и далее все понятно что и куда. Функция СведенияОВнешнейОбработке() Экспорт
// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
ПараметрыРегистрации = Новый Структура; 

// Объявим еще одну переменную, которая нам потребуется ниже
МассивНазначений = Новый Массив;

// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
// Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
//РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет"); //расширение erf
//РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");  //расширение epf

ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Наименование", "Название внешнего отчета");

// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
 
// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Отчет 'Название внешнего отчета'");


// Создадим таблицу команд (подробнее смотрим ниже)

ТаблицаКоманд = ПолучитьТаблицуКоманд();

ДобавитьКоманду(ТаблицаКоманд, "Название внешнего отчета", "НазваниеВнешнегоОтчета",
"ОткрытиеФормы", //Использование. Варианты: "ОткрытиеФормы", "ВызовКлиентскогоМетода", "ВызовСерверногоМетода"
Ложь,//Показывать оповещение. Варианты Истина, Ложь
"");//Модификатор

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);


Возврат ПараметрыРегистрации;


КонецФункции

Функция ПолучитьТаблицуКоманд()

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

Возврат Команды;

КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

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

Malum

Цитата: Golickoff от 10 окт 2018, 02:14
Передать значение реквизита можно через параметры. Если в конфигурации чего-то не видно, значит этого там нет, или отсутствуют соответствующие права.
в параметр реквизита поставил Справочник.Организации.
Как увидеть этот параметр в компановщике запроса?

alex0402

Цитата: Malum от 11 окт 2018, 16:46в параметр реквизита поставил Справочник.Организации.
Как увидеть этот параметр в компановщике запроса?

Нужно делать наоборот в запросе писать
Где
    Организация = &Организация.

и тогда этот параметр появится в параметрах СКД.
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 11 окт 2018, 17:36
Цитата: Malum от 11 окт 2018, 16:46в параметр реквизита поставил Справочник.Организации.
Как увидеть этот параметр в компановщике запроса?

Нужно делать наоборот в запросе писать
Где
    Организация = &Организация.

и тогда этот параметр появится в параметрах СКД.
Я запрос составляю с помощью СКД во внешнем отчете. Создал там форму, в которую добавил Реквизит1 с типом СправочникСсылка.Организации. Вот. Мне надо как то сделать так. Чтобы я смог этот Реквизит1 передать в СКД, для составления запроса.

alex0402

Цитата: Malum от 11 окт 2018, 17:38Чтобы я смог этот Реквизит1 передать в СКД, для составления запроса.

запрос динамический что-ли? составляется во время выполнения отчета? тогда
В процедуре ПриКомпоновкеРезультата КомпоновшикНастроек.Настройки.ПараметрыДанных
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 11 окт 2018, 17:42
Цитата: Malum от 11 окт 2018, 17:38Чтобы я смог этот Реквизит1 передать в СКД, для составления запроса.

запрос динамический что-ли? составляется во время выполнения отчета? тогда
В процедуре ПриКомпоновкеРезультата КомпоновшикНастроек.Настройки.ПараметрыДанных
Да, в запросе есть динамическое поле, в котором пользователь выбирает организацию. А так же должны быть два поля, начальная дата и конечная дата. Их мне тоже надо как-то ввязать, чтобы отобрать документы в заданном промежутке времени.

alex0402

Если все же запрос не динамический (скорее всего судя по вопросам), то сначала составляется запрос, а СКД сама вычислит параметры.
Спасибо за Сказать спасибо

Malum

Цитата: alex0402 от 11 окт 2018, 17:45
Если все же запрос не динамический (скорее всего судя по вопросам), то сначала составляется запрос, а СКД сама вычислит параметры.
Я не могу получить значение Реквизита, который находится на форме отчета. Его нет в СКД.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск