1с внешний отчет не работает в тонком клиенте
В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- Передать файл внешней обработки на сервер
- Подключить внешнюю обработку
- Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.
При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера - может пригодиться.
Жизненный пример
Форма с деревом значений, в котором перечислены обработки из каталога на сервере:
При двойном щелчке по названию файла - происходит его программное открытие:
(1) Да, в модуле менеджера отчета в составе конфигурации есть вот такой код:
(2+) Как это может влиять на формирование отчета в составе конфигурации, или формирование отчета как внешний?
нашел в инете:
|
Все дело в тексте запроса, он программно изменяется при открытии встроенного отчета. При открытии внешнего отчета событие по изменению текста не срабатывает.
Решение подойдет только для внутреннего отчета.
В модуле "ЗарплатаКадрыОтчетыБазовый", в конце процедуры "НастроитьВариантыОтчетов" и добавить новый отчет в список.
|
Подскажете?
(6) так бывает, когда ты Ливингстар, ответ тебе уже дали
Подскажите как описать внешний отчет в модуле менеджера, текст которого приведен в (2) ?
(12) не понятно что делать что бы работал внешний отчет!
Я скопировал отчет ОтчетыПоСотрудникам в составе конфигурации. Назвал его ОтчетыПоСотрудникамНовый.
Добавил вот это.
Мда!
Никто не знает почему сохраненный отчет как внешний не показывает данные в ЗУП 3.1.2.183.
Или почему у созданной копии отчетов теряются варианты настроек .
(14) Наверное нужно сперва понять как регистрируется внешний отчет в БСП. Куча примеров в интернете
Те строчки из (13) тебе врятли нужны, это регистрация варианта встроенного отчета.
(17) Понял.
Но дело не в добавлении отчета в состав конфигурации как внешнего.
А в формировании внешнего отчета. Он не выдает данные.
(17) Я так сделал, как в (13) но отчет открывается без вариантов отчета вообще (((
У меня задача. Сохранить отчет ОтчетыПоСотрудникам как внешний, и использовать его. Что бы он выводит данные. Пока он не формируется.
Зачем мне его регистрировать в БСП? Он же внешний, я его не добавляю во внешние отчеты и обработки.
Давай начнем с того что как ты хочешь выбирать с каким макетом надо работать?
(21) Я никому не выношу мозг.
Я сделал копию отчета ОтчетыПоСотрудникам внешним
и хочу что бы им работали как копией, что то изменив в ней.
Все макеты и нужно использовать что в типовом отчете.
(23) Ну то есть хотите сказать что, что бы сохранить
отчет на диск ОтчетыПоСотрудникам, изменив его несколько
и использовать как дубль отдельно в ЗуП 3.1.2.183 это
совсем не просто.
Там нужно прямо много много менять типовой код?
Вроде задача то элементарная?
Это можно сделать или нет, тогда такой вопрос?
Или сверх новые технологии 1с сейчас для такой простейшей операции, заставляют очень долго и долго разбираться и трудиться. Что бы сделать такую мелочь?
Хочется по факту разговора. Не лишних рассуждений!
Я не знаю как сделать, то что в (0) по этому спросил на форуме в надежде что кто то подскажет, кто знает. Задача элементарная!
(26) Новые технологии подразумевают знание БСП
в твоем случае это "БСП Варианты отчетов".
Либо делай 4 отдельных внешних отчета и пихай в каждый по одному макету.
(28) Нужно одним отчетом его использовать, как копию измененного типового.
(31) если ты не хочешь его подключать к БСП как внешний отчет, а использовать просто как открываемый файлик . то тогда и пиши весь этот гемор в своем отчете, инициализацию макетов выбор макета и тд и тп.
Еще раз спрашиваю, как 1с должна догадаться какой макет тебе надо скомпоновать и вывести?
(32) На форме отчета есть настройка, варианты отчета. Это и определяет какой макет будет сформирован и с какими данными.
(32) Я хочу сделать как угодно.
Важно что бы это было правильно.
И что бы отчет работал как копия, типового.
Которую можно было бы видо изменить.
Пока я не вижу цели и пути, что и как правильно делать!
(32) Подключение отчета к БСП, это вы имеете ввиду подключение его во внешние отчеты и обработки?
С добавлением соответсвующего кода для этого в модуль объекта?
(34) разницу между макетами и вариантами настроек СКД понимашь?
(37) вижу 8 вариантов отчета СКД и 4 макета
в типовом отчете ОтчетыПоСотрудникам
(38) Ну зачем мне подключение отчета как внешнего во внешние отчеты и обработки? Что мне это даст, если он не формируется?
(41)
Я добавил нужный код в модуль объекта отчета и встроил его во внешние отчеты и обработки. Но он как не выводил жанные так и не выводит.
Вы по сути ничего не сказали.
Может нужно какой регистр сведений заполнить или справочник?
Подскажите пожалуйста.
(43) Нет где? В копии отчета что я сделал в составе конфигурации?
Там нет да.
А во внешнем отчете что я добавил во внешние отчеты и обработки они есть, только он не выводит данные.
в ЗУПе все отчеты получают данные из пару супер-запросов, которые подставляются в схему при инициализации отчета. Запросы где-то в общих модулях лежат, на сколько я помню. Если к ним не обратиться, то получишь пустой отчет.
(46) Но отчет же типовой. Как он может к ним не обратиться?
(47) ну отладчик включи уже и посмотри, как он может к ним не обратиться. Плохо код перенес значит
(48) я вообще ничего не переносил, сделал копию типового отчета и все
никто ничего не знает, вокруг да около каждый бегает
(50) Из-за того что ты не знаешь как работает типовая конфа на БСП, не знаешь как работает БСП, ты не понимаешь как работает СКД, не знаешь как работает отладчик, предполагаю что и не знаешь как правильно сохранять отчеты и обработки в файлы, не хочешь читать что тебе тут уже разжевали, все бегают вокруг да около.
Ждешь что тебе пришлют готовый отчет? ты наверное слез с типовой УТ 10.3 и решил что в новых конфигурациях прокатят те же грабли.
Кроме кучи восклицательных знаков и "Отчет не работает" от тебя никакой информации.
Совет: закрой пофигуратор и вызови специалиста.
У меня один внешний другой встроенный во внешние отчеты и обработки.
(51) вся информация у меня изложена
повторюсь, вы бегаете вокруг да около, по делу ничего
поддержка форума, наводящими советами.
(53) Отчет ОтчетыПоСотрудникам
все внятно расписано в ветке что нужно, ну нет ответа и нет, сам найду его.
я один встроил в конфигурацию, прописал его как в (13)
второй сохранен на диск как внешний, при его открытии есть виды вариантов отчета но от не показывает данные, не формирует их
В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- Передать файл внешней обработки на сервер
- Подключить внешнюю обработку
- Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.
При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера - может пригодиться.
Жизненный пример
Форма с деревом значений, в котором перечислены обработки из каталога на сервере:
При двойном щелчке по названию файла - происходит его программное открытие:
В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.
Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
- Передать файл внешней обработки на сервер
- Подключить внешнюю обработку
- Открыть форму внешней обработки
Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.
В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.
При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.
Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.
Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки.
При работе с внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.
Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.
Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
У объекта ВнешняяОбработкаОбъект, есть свойство ИспользуемоеИмяФайла, доступное в контексте сервера - может пригодиться.
Жизненный пример
Форма с деревом значений, в котором перечислены обработки из каталога на сервере:
При двойном щелчке по названию файла - происходит его программное открытие:
Читайте также: