1с внешний отчет не открывается
В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- Передать файл внешней обработки на сервер
- Подключить внешнюю обработку
- Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.
При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера - может пригодиться.
Жизненный пример
Форма с деревом значений, в котором перечислены обработки из каталога на сервере:
При двойном щелчке по названию файла - происходит его программное открытие:
(1) ppotap, Возможно, при открытии отчета выполняется какой-то обработчик, в котором идет обращение к какому-то объекту. Можно посмотреть в журнале регистрации на что конкретно ругается.
1. Попытаться открыть отчет под другим пользователем, на другом компе, в другой базе и т.д. Делать выводы.
2. Предъявить этот отчет общественности - желающие проделать п.1 или поковырять отчет найдутся.
3. Ждать еще участников "Битвы экстрасенсов", кроме (2).
(4) Aleksey_3, Пытался проанализировать Журнал регистрации. Ничего внятного не нашел.
Событие: Ошибка выполнения
Комментарий: Нарушение прав доступа!
Больше никакой информации.
Просто откройте отчет в режимеконфигуратора и гляньте к каким объектам он обращается. Далее проверьте есть права на данные объекты у пользователя, под котрым вы запускаете отчет. И тогда возможно все станет ясно, либо запускать под другим набором прав либо добавить прав текущему пользоветелю.
(7) SaschaL, Открывал в конфигураторе. Отчет на СКД.
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = Организации.Ссылка
И ХозрасчетныйОстаткиИОбороты.Субконто2 = Организации.Ссылка
И ХозрасчетныйОстаткиИОбороты.Субконто3 = Организации.Ссылка
И ХозрасчетныйОстаткиИОбороты.Организация = Организации.Ссылка
Вроде обычный бухгалтерский регистр.
у тебя отчет всегда будет пустой. вместо этого в параметры виртуальной таблицы и в секцию ГДЕ (для спр.Организация, с которым ты соединяешься) нужно передать Организацию доступную пользователю - сейчас у тебя запрос пытается получить данные по всем организациям, в т.ч. и не доступным бухгалтеру.
Пользователю назначен Профиль доступа Бухгалтер. А у этой группы доступа нет права интерактивного открытия внешних отчетов. И не пойму как этой группе доступа добавить эти права. галочка почему-то не активна.
(10) ppotap, Была похожая проблема. времени разбираться как изменить стандартный профиль не было (предполагаю, что базовый профиль по их задумке не меняется), поэтому как вариант 2 решения проблемы: 1)в режиме 1С:Предприятие - Администрирование - Профили групп доступа. Выбираем профиль Бухгалтер жмем "создать по подобию" - назовем примерно Бухгалтер_МОЙ и далее можем там добавить нужное нам право "интерактивное открытие внешних отчетов и обработок", установив галочку. Сохранить. Назначить наш профиль требуемым юзерам (пункт Пользователи - права доступа). 2) В режиме Конфигуратор - требуемому юзеру пункт меню Пользователи - вкладка Прочие включить это право. Все заработает . Удачи.
(10) ppotap, профиль прав предопределенный поэтому и не дает изменить, создайте собственный профиль и дайте нужные права
(10) Лучше пользователю добавить дополнительный профиль "Открытие внешних отчетов и обработок", и не ковырять стандартные профили.
Попробуйте использовать право Только для чтения, плюс при открытии самой обработки - Право на открытие внешних отчетов и обработок.
Конфигурация Бухгалтерия предприятия, редакция 3.0 (3.0.41.56)
Стандартные профили групп доступа "Бухгалтер" и "Главный бухгалтер" при использовании подключенной внешней дополнительной обработки получали ошибку "Нарушение прав доступа".
Создал новый профиль группы доступа - назвал "Внешние обработки" и установил в нем всего одну роль "Базовые права внешнего пользователя".
Подключил профиль к пользователям с правами "Бухгалтер" и "Главный бухгалтер" - ошибки исчезли.
Конфигурация Бухгалтерия предприятия, редакция 3.0 (3.0.42.33), Платформа 8.3.6.2332. Похожая ситуация "Открывает внешний отчёт только если добавить пользователя в группу Полные права или Администратор". Чтение Журнала регистрации плодов не дало.
Событие: Ошибка выполнения
Комментарий: Нарушение прав доступа!
Больше никакой информации. (Как у автора поста)
Решил проблему изменением прав доступа в конфигураторе для роли "ИспользованиеДополнителныхОтчетовИОбработок" право на получение_. "ПараметраСеанса.КомментарийЗамераВремени" -->> Пользователю должна быть доступна соответствующая роль. После внесения данного изменения отчет открывается как через Файл-Открыть, так и через регистрацию отчета в БД как внешнего дополнительного отчета.
Добрый день.Помогите пожалуйста с достаточно простой ситуацией - создала внешний отчет на СКД.Через файл -открыть отчет нормально открывается и работает.А вот через сервис - доп.внешние отчеты - открываться не хочет(но зарегистрировался без вопросов).
Была точно такая же проблема.
Решение: не была определена ФОРМА отчета. При интерактивном открытии она создается "на лету". При программном - должна быть и все тут.
user637233_parensdaga; Natoriys; Ирка; user974746; AloneWolf; ytkfpm; mihapat; Dan1c28; namazi74; + 9 – Ответить
в 8.2 в настоящий момент в толстом клиенте невозможно открыть управляемую форму внешней обработки.
Можно открыть управляемую форму обработки включенной в конфигурацию.
IvanSusanin пишет:
в 8.2 в настоящий момент в толстом клиенте невозможно открыть управляемую форму внешней обработки.
Можно открыть управляемую форму обработки включенной в конфигурацию.
Начала разбираться с этой проблемой,выяснила пока, что на этапе открытия программа сохраняет этот отчет в некоторый внешний файл(*.tmp) в профиле пользователя(виндового) и потом к этому файлу обращается при открытии.Так вот,почему -то на этапе сохранения не формируется данный файл и программа пытается обратиться к несуществующему файлу.
"Корень зла" в тексте процедуры СправочникСписокВыбор формы списка справочника ВнешниеОбработки, что, собственно Вы уже и определили сами, и отсутствие в Вашем отчете формы отчета.Приведите текст этой процедуры с соответствие с текстом аналогичной процедуры из конфигурации УПП. Если Вам "трогать" Вашу конфигурацию по какой-либо причине нельзя, тогда создайте форму отчета в Вашем отчете (прямо через конструктор форм с установленным флажком "Использовать СКД"). Второй способ менее предпочтилен, т.к. в случае если при отработке расшифровки отчета будет вызываться сам отчет,то будет "сваливание".
обр=Справочники.ВнешниеОбработки.НайтиПоКоду("С00000031");
//проверка на найденность
ЭтоОтчет = ?(обр.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, Истина, Ложь);
Если ЭтоОбработка Тогда
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = обр.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
Если Не Форма = Неопределено Тогда
Форма.Открыть();
Иначе
ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла);
КонецЕсли;
КонецЕсли;
Была точно такая же проблема.
Решение: не была определена ФОРМА отчета. При интерактивном открытии она создается "на лету". При программном - должна быть и все тут.
user637233_parensdaga; Natoriys; Ирка; user974746; AloneWolf; ytkfpm; mihapat; Dan1c28; namazi74; + 9 – Ответить
В конфигурации ЗУП 3.1.2.183 нужно сделать внешним отчет
ОтчетыПоСотрудникам, для того что бы несколько видоизменить его
и продолжить использовать и его и типовой отчет в типовом виде.
Делаю его внешним через конфигуратор, но он не выводит данные
которые выводит отчет встроенный в конфигурацию. От чего это так?
Почему он не выводит данные сохраненный внешней копией?
(0) Скорей всего в модуле менеджера отчета конфигурации выполняются какие-то действия с отчетом. Во внешнем отчете модуля менеджера нет, надо все переносить в модуль объекта с соответствующими поправками кода
(1) Да, в модуле менеджера отчета в составе конфигурации есть вот такой код:
(2+) Как это может влиять на формирование отчета в составе конфигурации, или формирование отчета как внешний?
нашел в инете:
|
Все дело в тексте запроса, он программно изменяется при открытии встроенного отчета. При открытии внешнего отчета событие по изменению текста не срабатывает.
Решение подойдет только для внутреннего отчета.
В модуле "ЗарплатаКадрыОтчетыБазовый", в конце процедуры "НастроитьВариантыОтчетов" и добавить новый отчет в список.
|
(12) не понятно что делать что бы работал внешний отчет!
Я скопировал отчет ОтчетыПоСотрудникам в составе конфигурации. Назвал его ОтчетыПоСотрудникамНовый.
Добавил вот это.
Как к копии отчета ОтчетыПоСотрудникам, названному ОтчетыПоСотрудникамНовый вернуть варианты отчетов?
Мда!
Никто не знает почему сохраненный отчет как внешний не показывает данные в ЗУП 3.1.2.183.
Или почему у созданной копии отчетов теряются варианты настроек .
(17) Понял.
Но дело не в добавлении отчета в состав конфигурации как внешнего.
А в формировании внешнего отчета. Он не выдает данные.
(17) Я так сделал, как в (13) но отчет открывается без вариантов отчета вообще (((
У меня задача. Сохранить отчет ОтчетыПоСотрудникам как внешний, и использовать его. Что бы он выводит данные. Пока он не формируется.
Зачем мне его регистрировать в БСП? Он же внешний, я его не добавляю во внешние отчеты и обработки.
(19) Отчет имеет 4 макета! Что ты мозг выносишь людям.
Давай начнем с того что как ты хочешь выбирать с каким макетом надо работать?
(21) Я никому не выношу мозг.
Я сделал копию отчета ОтчетыПоСотрудникам внешним
и хочу что бы им работали как копией, что то изменив в ней.
Все макеты и нужно использовать что в типовом отчете.
(23) Ну то есть хотите сказать что, что бы сохранить
отчет на диск ОтчетыПоСотрудникам, изменив его несколько
и использовать как дубль отдельно в ЗуП 3.1.2.183 это
совсем не просто.
Там нужно прямо много много менять типовой код?
Вроде задача то элементарная?
Это можно сделать или нет, тогда такой вопрос?
Или сверх новые технологии 1с сейчас для такой простейшей операции, заставляют очень долго и долго разбираться и трудиться. Что бы сделать такую мелочь?
Я не знаю как сделать, то что в (0) по этому спросил на форуме в надежде что кто то подскажет, кто знает. Задача элементарная!
(26) Новые технологии подразумевают знание БСП
в твоем случае это "БСП Варианты отчетов".
Либо делай 4 отдельных внешних отчета и пихай в каждый по одному макету.
(31) если ты не хочешь его подключать к БСП как внешний отчет, а использовать просто как открываемый файлик . то тогда и пиши весь этот гемор в своем отчете, инициализацию макетов выбор макета и тд и тп.
(32) На форме отчета есть настройка, варианты отчета. Это и определяет какой макет будет сформирован и с какими данными.
(32) Я хочу сделать как угодно.
Важно что бы это было правильно.
И что бы отчет работал как копия, типового.
Которую можно было бы видо изменить.
Пока я не вижу цели и пути, что и как правильно делать!
(32) Подключение отчета к БСП, это вы имеете ввиду подключение его во внешние отчеты и обработки?
С добавлением соответсвующего кода для этого в модуль объекта?
(38) Ну зачем мне подключение отчета как внешнего во внешние отчеты и обработки? Что мне это даст, если он не формируется?
(41)
Я добавил нужный код в модуль объекта отчета и встроил его во внешние отчеты и обработки. Но он как не выводил жанные так и не выводит.
Вы по сути ничего не сказали.
(43) Нет где? В копии отчета что я сделал в составе конфигурации?
Там нет да.
А во внешнем отчете что я добавил во внешние отчеты и обработки они есть, только он не выводит данные.
в ЗУПе все отчеты получают данные из пару супер-запросов, которые подставляются в схему при инициализации отчета. Запросы где-то в общих модулях лежат, на сколько я помню. Если к ним не обратиться, то получишь пустой отчет.
(50) Из-за того что ты не знаешь как работает типовая конфа на БСП, не знаешь как работает БСП, ты не понимаешь как работает СКД, не знаешь как работает отладчик, предполагаю что и не знаешь как правильно сохранять отчеты и обработки в файлы, не хочешь читать что тебе тут уже разжевали, все бегают вокруг да около.
Ждешь что тебе пришлют готовый отчет? ты наверное слез с типовой УТ 10.3 и решил что в новых конфигурациях прокатят те же грабли.
Кроме кучи восклицательных знаков и "Отчет не работает" от тебя никакой информации.
Совет: закрой пофигуратор и вызови специалиста.
(51) вся информация у меня изложена
повторюсь, вы бегаете вокруг да около, по делу ничего
поддержка форума, наводящими советами.
(53) Отчет ОтчетыПоСотрудникам
все внятно расписано в ветке что нужно, ну нет ответа и нет, сам найду его.
я один встроил в конфигурацию, прописал его как в (13)
второй сохранен на диск как внешний, при его открытии есть виды вариантов отчета но от не показывает данные, не формирует их
В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- Передать файл внешней обработки на сервер
- Подключить внешнюю обработку
- Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.
При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера - может пригодиться.
Жизненный пример
Форма с деревом значений, в котором перечислены обработки из каталога на сервере:
При двойном щелчке по названию файла - происходит его программное открытие:
Читайте также: