![]() |
|
Подскажите код открытия внешнего отчета | ☑ | ||
---|---|---|---|---|
0
Быдло замкадное
11.08.20
✎
10:48
|
Привет.
Есть у кого в меню интерфейса кнопка которая не открывает встроенный отчет в конфигурацию а выполняет программный код по открытию отчета из справочника внешних отчетов??? Надо для обычных форм. Было в одной базе у меня, сейчас найти не могу а писать заново лень.. |
|||
1
ДенисЧ
11.08.20
✎
10:50
|
Берём справочник внешних отчётов и обработок, открываем его форму списка... Смотрим событие Выбор... И наслаждаемся...
|
|||
2
Быдло замкадное
11.08.20
✎
10:53
|
(1) спасибо за наводку) почти готовое решение
|
|||
3
fisher
11.08.20
✎
10:53
|
Помню только, что там кажись через навигационную ссылку на реквизит с хранилищем. Когда-то для меня стало открытием, что так можно.
|
|||
4
ДенисЧ
11.08.20
✎
10:55
|
(3) В ОФ навигационная ссылка? Отсыпешь?
|
|||
5
ДенисЧ
11.08.20
✎
10:55
|
(2) Почему "почти"?
Находишь элемент справочника нужный. А дальше уже готовый код. Хотя и самому написать там 5-10 строчек... |
|||
6
fisher
11.08.20
✎
11:09
|
(4) Я про ОФ пропиздоглазил.
|
|||
7
Быдло замкадное
11.08.20
✎
11:11
|
&НаКлиенте
Процедура ОткрытьОтчетАнализКонтрагента() Экспорт ОткрытьВнешнююОбработкуОтчет("000000242"); КонецПроцедуры &НаКлиенте Процедура ОткрытьВнешнююОбработкуОтчет(КодОбработкиОтчета) ВыбраннаяСтрока = Справочники.ВнешниеОбработки.НайтиПоКоду(КодОбработкиОтчета); ЭтоОбработка = ?(ВыбраннаяСтрока.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка, Истина, Ложь); ЭтоОтчет = ?(ВыбраннаяСтрока.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, Истина, Ложь); Если НЕ (ЭтоОбработка ИЛИ ЭтоОтчет) Тогда Возврат; КонецЕсли; Попытка ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = ВыбраннаяСтрока.ХранилищеВнешнейОбработки.Получить(); ДвоичныеДанные.Записать(ИмяФайла); Если ЭтоОбработка Тогда Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); Иначе Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла); КонецЕсли; Если Не Форма = Неопределено Тогда Форма.Открыть(); Иначе Если ЭтоОбработка Тогда ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла); Иначе ВнешнийОтчет = ВнешниеОтчеты.Создать(ИмяФайла); Форма = ВнешнийОтчет.ПолучитьФорму(); Если Форма <> Неопределено Тогда Форма.Открыть(); КонецЕсли; КонецЕсли; КонецЕсли; Исключение Если ЭтоОбработка Тогда Предупреждение("Выбранный файл не является внешней обработкой. |Либо, данная обработка не предназначена для |запуска в этой конфигурации."); Иначе Предупреждение("Выбранный файл не является внешним отчетом. |Либо, данный отчет не предназначена для |запуска в этой конфигурации."); КонецЕсли; КонецПопытки; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |