|
1c БУХ 3.0 Как добавить внешний отчет? (глобальный) | ☑ | ||
---|---|---|---|---|
0
evorle145
10.01.14
✎
15:29
|
Сделал копию отчета: оборотно-сальдовая ведомость по счеу. Добавил в модуль функции регистрации:
Функция СведенияОВнешнейОбработке() Экспорт // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные ПараметрыРегистрации = Новый Структура; // Объявим еще одну переменную, которая нам потребуется ниже МассивНазначений = Новый Массив; // Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать. // Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет"); // Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ // Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе, // которые поддерживают механизм ВПФ //МассивНазначений.Добавить("Документ.ОперацияБух"); //ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); // Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок ПараметрыРегистрации.Вставить("Наименование", "ОборотноСальдоваяВедомостьПоСчету со Временем"); // Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим) ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); // Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("Информация", "ОборотноСальдоваяВедомостьПоСчету со Временем"); // Создадим таблицу команд (подробнее смотрим ниже) ТаблицаКоманд = Получить Таблицу Команд(); // Добавим команду в таблицу ДобавитьКоманду(ТаблицаКоманд, "ОборотноСальдоваяВедомостьПоСчету со Временем", "ОборотноСальдоваяВедомостьПоСчету со Временем", "ВызовСерверногоМетода", Истина, "ПечатьMXL"); // Сохраним таблицу команд в параметры регистрации обработки ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); //Теперь вернем системе наши параметры Возврат ПараметрыРегистрации; КонецФункции Функция Получить Таблицу Команд() // Создадим пустую таблицу команд и колонки в ней Команды = Новый ТаблицаЗначений; // Как будет выглядеть описание печатной формы для пользователя Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); // Тут задается, как должна вызваться команда обработки // Возможные варианты: // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); // Для печатной формы должен содержать строку ПечатьMXL Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") // Добавляем команду в таблицу команд по переданному описанию. // Параметры и их значения можно посмотреть в функции НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Зарегистрировал, указал раздел размещения: администрирование, указал всех пользователей для быстрого доступа... Но отчет в администрировании не появился! вообще нигде не появился! Подскажите, что может быть не так... |
|||
1
vqwy
10.01.14
✎
15:29
|
еще один
|
|||
2
vqwy
10.01.14
✎
15:31
|
см v8: Подключение внешнего отчета и т.п.
|
|||
3
evorle145
10.01.14
✎
15:32
|
(2) там к сожалению нет ответа
|
|||
4
vqwy
10.01.14
✎
15:34
|
(3) ответ есть у Поручика.
|
|||
5
evorle145
10.01.14
✎
16:03
|
(4), ясно.
|
|||
6
evorle145
10.01.14
✎
16:51
|
ну вообщем-то проблему решил...
|
|||
7
Trainee
10.01.14
✎
17:10
|
(4) Кривой копипаст есть у Поручика)
|
|||
8
vqwy
10.01.14
✎
18:02
|
(6), (7) очень интересуюсь, как решили проблему
|
|||
9
vqwy
10.01.14
✎
18:02
|
(7) откуда копипаст??? поделитесь
|
|||
10
evorle145
13.01.14
✎
09:29
|
(8), Поручику заплатили =)
|
|||
11
Поpyчик-4
13.01.14
✎
09:54
|
||||
12
evorle145
13.01.14
✎
10:18
|
(11), спасибо! но это уже получилось... Отчет появился, но вот с запуском пока не все ясно...
при подключении указывается команда: ДобавитьКоманду(ТаблицаКоманд, "Оборотно-сальдовая ведомость по счету со временем", "Оборотно123", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL"); где если писать ВызовКлиентскогоМетода или ОткрытиеФормы , то выдает ошибку Объект метаданных не найден по полному имени: "ВнешнийОтчет.ОборотноСальдоваяВедомостьПоСчету" при попытке ФормаОбработки = ПолучитьФорму("ВнешнийОтчет."+ ИмяОбработки +".Форма", ПараметрыОбработки, ВладелецФормы); если писать ВызовСерверногоМетода, то выдает ошибку {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(1760)}: Метод объекта не обнаружен (ВыполнитьКоманду) |
|||
13
Поpyчик-4
13.01.14
✎
10:24
|
(12) 500 рублей. Готовый шаблон отчета получите сразу же.
|
|||
14
Поpyчик-4
13.01.14
✎
10:29
|
Вот он, внешний отчет в БП 3.0, открытый из дополнительных отчетов
http://savepic.su/4050017.png |
|||
15
evorle145
13.01.14
✎
10:31
|
(13), спасибо, но время у меня еще есть, пока сам буду пытаться разобраться.
|
|||
16
evorle145
13.01.14
✎
13:05
|
Получилось=) Использовал способ "ОткрытиеФормы" и некоторые процедуры пришлось перетащить из общего модуля в обработку, чтобы не было ошибки на ФормаОбработки = ПолучитьФорму("ВнешнийОтчет."+ ИмяОбработки +".Форма", ПараметрыОбработки, ВладелецФормы);
Решение, наверное, не самое правильное, но работает=) |
|||
17
Поpyчик-4
13.01.14
✎
16:07
|
(16) Правильное решение кроется в нормальной организации вызываемых процедур, а 1сэсники с селезнёвки как всегда сделали через joppy или не подумали, что отчёт может быть внешним.
|
|||
18
fmrlex
13.01.14
✎
16:10
|
(17) Мне кажется они подумали.
И сделали выбор в пользу тонкого и вэб-клиента + безопасности. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |