Внешниеобработки создать ошибка

Ошибка при вызове ВнешниеОбработки.Подключить(АдресХранилища) Хочу к 1С:розница подключить обработку заполнения табличных частей с управляемой формой. Код модуля обработки: Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт АдресХранилища = «»; Результат = ПоместитьФайл(АдресХранилища, Путь, , Ложь); ИмяОбработки = ВнешниеОбработки.Подключить(АдресХранилища, , Ложь); ПараметрыФормы = Новый Структура(«Основание», Объект.Ссылка); ОткрытьФорму(«ВнешняяОбработка.» + ИмяОбработки + «.Форма.Форма», ПараметрыФормы); : Ошибка при вызове метода контекста […]

Содержание

  1. Ошибка при вызове ВнешниеОбработки.Подключить(АдресХранилища)
  2. Ошибка подключения внешних метаданных по причине файл не обнаружен
  3. Ошибка подключения внешних метаданных по причине ошибка доступа к файлу
  4. Ошибка доступа к файлу 1C решение
  5. Ошибка доступа к файлу 1C 8.3
  6. Причины возникновения
  7. Способы решения
  8. Ошибка при совместном доступе в 1C
  9. Дополнительный способ
  10. 1С 8.3 нарушение прав доступа
  11. Ошибка «нарушение прав доступа» при открытие внешней обработки

Ошибка при вызове ВнешниеОбработки.Подключить(АдресХранилища)

Хочу к 1С:розница подключить обработку заполнения табличных частей с управляемой формой.
Код модуля обработки:

Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт

АдресХранилища = «»;
Результат = ПоместитьФайл(АдресХранилища, Путь, , Ложь);
ИмяОбработки = ВнешниеОбработки.Подключить(АдресХранилища, , Ложь);

ПараметрыФормы = Новый Структура(«Основание», Объект.Ссылка);
ОткрытьФорму(«ВнешняяОбработка.» + ИмяОбработки + «.Форма.Форма», ПараметрыФормы);

<ВнешняяОбработка.ПомощникОформленияСкладскихАктов.МодульОбъекта(9)>: Ошибка при вызове метода контекста (Подключить)
по причине:
Ошибка подключения внешних метаданных
по причине:
Неправильный путь к файлу ‘e1cib/tempstorage/90a7a250-3bf4-4387-a091-e707482d4dda’

В чем может быть проблема?

Если это Сервер, то какого?
ОткрытьФорму(

Если это Клиент, то откуда
ВнешниеОбработки.

Это модуль объекта внешней обработки заполнения таб. частей.

Такой вызов обработки проходит без проблем:

А мне надо открыть форму внешней (текущей) обработки, а не обработки загруженной в ИБ.

(8)
Ты пишешь бред и пытаешься еще и нас им думать заставить?

Источник

Добрый день.
Пытаюсь из бухгалтерии предприятия (3.0.67.67) выгрузить данные с помощью обработки, которая шла в комплекте с erp (Enterprise20_2_4_6_230_DataUload_BP3)
Вот здесь описана инструкция как пользоваться обработкой: https://its.1c.ru/db/erp24doc#bookmark:MigrationFromAcc:MigrationFromAcc

На первом шаге выбираю каталог, нажимаю далее.
После этого вываливается ошибка:
ошибка подключения внешних метаданных по причине файл не обнаружен «D:Enterprise20_2_4_6_230_DataUload_BP3.epf»
Моя обработка, которую я запускаю, как раз и находится в корне диска D.

Возможно кто-то сталкивался с подобной проблемой?

(6) Каталог есть. Я же из него запускаю обработку.
А когда ее помещаю в корень, уже пишет не про каталог, а про файл.

Помещаю в этот же каталог другую обработку самописную — работает.
Более того, эта обработка же открывается, форма основная появляется, а эта ошибка уже вываливается в процессе ее работы.

(7) как рабочий каталог называете?

D: . или С:мой путь . слеши нигде не забыли?

(10) Выбираю папку на диске С на рабочем столе. Та же ошибка.

Вот полный текст ошибки:

Ошибка подключения внешних метаданных
по причине:

В общем, разобрался в проблеме.
В процессе выполнения обработки создается фоновое задание. И фоновое задание исполняется только на сервере. Соответственно, сервер ищет обработку по этому адресу не на моем локальном компьютере, а на самом сервере.
Поместил саму обработку на сервер, все заработало.

hhhh — с самого начала подсказывали мне правильно, а я Вас не понял. Спасибо.

Источник

Описание ошибки:
Ошибка возникает при попытке использования штатного механизма расшифровки для внешних отчетов, подключенных в базе типовой конфигурации 1С: Управление торговлей 8, ред. 10.3 в справочник «Внешние отчеты и обработки».

Ошибка при вызове метода контекста (Создать)
НовыйОтчет = ВнешниеОтчеты.Создать(ОтчетОбъект.ИспользуемоеИмяФайла);
по причине:
Ошибка подключения внешних метаданных
по причине:
Файл не обнаружен ‘C:Users AppDataLocalTempv8_F572_57.tmp’

При открытии файла внешнего отчета отдельно через меню «Файл» — «Открыть» и попытке расшифровки — работа механизма расшифровки не нарушается возникновением какой-либо похожей ошибки.

Обращение за помощью к мировой паутине дало прямую подсказку в виде конкретных ответов на поисковый запрос:

Через нее был совершен переход в другое обсуждение по теме форума forum.mista.ru:

Получается, что при попытке расшифровки в отчете, который хранится в справочнике «Вешние отчеты и обработки», в коде происходит удаление временного файла-обработки прежде, чем закончится выполнение кода, отвечающего за расшифровку отчета.

Как не печально, но приходится констатировать тот факт, что для типовых решений придется их поставить на частичную поддержку, чтобы закомментировать участок кода, который отвечает за преждевременное удаление файла внешней обработки.

Для конфигурации 1С: Управление торговлей 8, ред. 10.3 пример такого места в коде — это модуль «Формы списка» справочника «ВнешниеОбработки», процедура «СправочникСписокВыбор», комментируем исполняемую строку кода:

Нажатие на изображении увеличит его

Источник

Ошибка доступа к файлу 1C решение

В этой статье мы расскажем об ошибке доступа к файлу 1с. Как решить возникшую проблему, что это за баг и еще немного об этом.

Ошибка доступа к файлу 1C 8.3

«1С: Предприятие» — система программ для автоматизации, улучшения и упрощения деятельности различных сфер компании, начиная от бухгалтерии и заканчивая учетом. 1С: возможности при правильной настройке безграничны . Для предпринимателя — нужно найти хороших программистов.

Нет ни одной программы в современном мире, как бы хороша она не была без ошибок и проблем. Такое случается и с нашим приложением. В ряде случаев виноват в этом криворукий программист. Многие проблемы вы не сможете решить без его участия, но некоторые, вам подсилу и самому.

Причины возникновения

Случается, что люди, которые используют данную прогу сталкиваются с проблемой при запуске программы.

Способы решения

По наименованию явившегося бага поймем что происходит с системой — нет прав для доступа к файлу. Такое случается если юзер создает копию базы и подключает ее. Также ошибка бывает в результате попытки открыть файл по сетевому доступу.

Первостепенное что мы делаем в таком случае — проверяем доступ к файлу. Правая кнопка мыши по файлу -> проверяем стоит ли галочка на «Общий доступ».

Ошибка при совместном доступе в 1C

Взгляните на права пользователя под которым вы зашли в систему виндоус. У вас должны быть права и на чтение файлов и на запись.

Когда данные к которым нужно получить доступ (база) находится на удаленном (локальном) персональном компьютере — смотрим закладку «Безопасность». В безопасности вы должны убедиться что у пользователя нет запрета на запись.

Предупреждения о проблемах вылазят когда возмущается брандмауэр. Это касается сетевых объектов. Антивирусные программы препятствуют нормальной работе.

Открываем брандмауэр и антивирус и ищем в списке блокируемых программ 1С. Удаляем из списка.

Почистите кеш, ошибки также возникают из-за кеша.

Большой шанс появления ошибки, когда два синонимичных приложения запускаются вместе. К примеру, ЗУП и Бухгалтерия. Если запустить по очереди, проблема исчезнет

Дополнительный способ

Ничего не помогло — воспользуйтесь следующими методами:

Путь к имени файла должен быть допустимым в каталоге отчетов: щелкните вкладку «Вывод». Перейдите на вкладку «Параметры вывода». В поле Имя файла убедитесь, что путь действителен.

Сколько дискового пространства доступно для файла: Откройте Windows Explorer. Выберите Локальный диск (буква диска:), на котором хранится отчет. Щелкните правой кнопкой мыши на локальном диске (буква диска:) и нажмите Свойства. Откроется окно свойств. Проверьте доступное свободное пространство на этом локальном диске.

Убедитесь, что у пользователя есть разрешения на доступ к папке IO_Data: Откройте проводник Windows. Щелкните правой кнопкой мыши основную папку выберите «Свойства».

Перейдите на вкладку «Безопасность». Убедитесь, что у пользователя есть полные права на эту папку и все подпапки. Если вы не можете проверить права доступа, обратитесь к администратору.

Источник

1С 8.3 нарушение прав доступа

В большинстве случаев организации используются типовые конфигурации 1С. Как правило все они находятся на поддержки, и мало кто решается внести изменения в типовую конфигурацию тем самым потеря эту самую поддержку от разработчиков. Поэтому умные программисты 1С все свои доработки оформляют в виде внешних обработок и отчетов. Так же на просторах интернета можно найти очень много полезных обработок. Которые распространяются бесплатно и позволяют произвести какие либо манипуляции с базой. Но очень часто при попытки их открыть пользователь видит ошибку «Нарушение прав доступа!». Решить данную проблему достаточно просто.

Я уже написал серию статей в которых рассказывал как можно решить самые распространенные ошибки появляющиеся во время работы с 1С рекомендую их прочитать.

Ошибка «нарушение прав доступа» при открытие внешней обработки

Разберем данную ошибку на примере 1С 8.3 Бухгалтерия. Вы пытаетесь открыть внешнею обработку.

В результате видите ошибку «Нарушение прав доступа!».

Если нажать на кнопку «Подробнее» вы видите следующий текст.

Ошибка загрузки документ по причине:

Ошибка подключения внешних метаданных

Отсутствуют права на интерактивную загрузку внешних обработок по причине:

Нарушение прав доступа!

Кстати если у вас нет кнопки Подробнее выше есть статья в которой я рассказывал к её включить.

Все достаточно просто, у пользователя который пытается открыть внешнею обработку нет прав. Что бы их дать заходим в раздел «Администрирование» далее выбираем «Настройки пользователей и прав».

Дальше выбираем пункт «Пользователи».

В открывшемся окне ищем пользователя, и переходим в раздел «Права доступа». В открывшемся окне жмем «Включить в группу».

И выбираем из списка группу «Открытие внешних отчетов и обработок».

После чего обязательно перезаходим в 1С и пробуем открыть. Как вы наверно заметили даже Администраторы не могу открывать внешние обработки. Включать в эту группу нужно только самых опытных пользователей, так запуская какую либо внешнею обработку, особенно скаченную из интернета, можно повредить бузу данных, будьте с этим очень аккуратны.

Источник

Программное открытие внешней обработки осуществляется с помощью объекта глобального контекста ВнешниеОбработки, который имеет тип ВнешниеОбработкиМенеджер. Для каждого режима работы платформы 1С (режим обычного приложения и режим управляемого приложения) используются различные методы объекта для работы с внешними обработками.

Запуск внешней обработки в режиме обычного приложения

В обычном приложении необходимо использовать метод Создать() объекта ВнешниеОбработки, в который передается полное имя файла внешней обработки. Метод возвращает объект типа ВнешняяОбработка, этот объект и есть открываемая внешняя обработка. Если требуется открыть форму внешней обработки, то у полученного объекта вызываем метод ПолучитьФорму(), который вернет основную форму, а затем вызываем метод Открыть() для её открытия.


ПолноеИмяФайла = ""; // Полное имя файла внешней обработки.
Обработка = ВнешниеОбработки.Создать(ПолноеИмяФайла);
Обработка.ПолучитьФорму().Открыть();

Во внешних обработках основной формой всегда должна быть обычная, а управляемая дополнительной, иначе не будет работать метод ПолучитьФорму() в режиме обычном приложения.

Запуск внешней обработки в режиме управляемого приложения

В режиме управляемых форм появляется разделение алгоритма по контексту выполнения. На клиенте получаем двоичные данные по полному имени файла внешней обработки. Передаем полученные двоичные данные на сервер и помещаем их во временное хранилище. Далее необходимо вызвать метод Подключить() объекта ВнешниеОбработки, в который передается адрес на временное хранилище. Метод возвращает имя подключенной внешней обработки. Возвращаем имя внешней обработки на клиент, формируем строковый путь к форме обработки и с помощью метода ОткрытьФорму() открываем форму внешней обработки.


&НаСервере
Функция ПолучитьИмяВнешнейОбработки(ДвоичныеДанные)
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Возврат ВнешниеОбработки.Подключить(АдресВоВременномХранилище );
КонецФункции

&НаКлиенте
ПолноеИмяФайла = ""; // Полное имя файла внешней обработки.
ДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
ИмяВнешнейОбработки = ПолучитьИмяВнешнейОбработки(ДанныеФайла);
ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");

Безопасный режим для внешних обработок

Методы Создать() и Подключить() объекта ВнешниеОбработки имеют входящий параметр БезопасныйРежим — признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
Безопасный режим работы предназначен для защиты системы от выполнения на сервере «ненадежного» программного кода. Потенциальную опасность представляют внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить().
В безопасном режиме накладываются следующие ограничения:

  • привилегированный режим отменяется, если он был установлен;
  • попытки перехода в привилегированный режим игнорируются;
  • запрещены операции с COM-объектами;
  • запрещена загрузка и подключение внешних компонентов;
  • запрещен доступ к файловой системе (кроме временных файлов);
  • запрещен доступ к Интернету.

Обработки, открытые интерактивно, выполняются не в безопасном режиме, поэтому рекомендуется реализация механизма открытия внешних обработок в безопасном режиме, а так же на уровне прав запретить пользователю интерактивное открытие внешних обработок.
Для запрета интерактивного открытия обработок, во всех ролях, назначенных пользователю, необходимо снять право «Интерактивное открытие внешних обработок» (см. рисунок 1).

Рисунок 1. Права интерактивного открытия внешних обработок/отчетов

Право «Интерактивное открытие внешних обработок» никак не влияет на объект ВнешниеОбработки.

Программное открытие внешних отчетов, аналогично внешним обработкам, только следует использовать объект глобального контекста ВнешниеОтчеты, который имеет тип ВнешниеОтчетыМенеджер.

Доброе всем время суток. В типовом УТ добавил своё регламентное заданий. При переходе на 8.2 задание перестало выполняться. Определил что не выполняется ВнешниеОтчеты.Создать(ИмяФайла). Если выполняю этот код на клиенте, то всё ок. Куда капать?

ВнешниеОтчетыМенеджер (ExternalReportsManager) Создать (Create) Вариант синтаксиса: По имени файла Синтаксис: Создать(<ПолноеИмяФайла>, <БезопасныйРежим>) Параметры: Тип: Строка. Полное имя файла внешнего отчета. Тип: Булево. Признак создания внешнего отчета в безопасном режиме. Если параметр не указан, внешний отчет будет работать в безопасном режиме. Значение по умолчанию: Истина Вариант синтаксиса: По имени отчета Синтаксис: Создать(<Имя>) Параметры: Тип: Строка. Имя внешнего отчета, полученное после подключения. Описание варианта метода: Предварительно обработка должна быть подключена методом Подключить. Возвращаемое значение: Тип: ВнешнийОтчет. Описание: Создает объект внешнего отчета. Доступность: Сервер, толстый клиент, внешнее соединение.

на сервере выполнется и на 8.1 работало правда в файловой версии

у юзера от которого крутится агент 1С нет права на файл отчета есть? файл записывается?

да записываетс и создаётся файл. Я его потом открываю из предпрития и открываетс отчёт.

ВнешнийОтчет = ВнешниеОбработки.Создать(ИмяФайла); и отработало, правда дальше не видит методы отчёта.

не работает, когда положил в хранилище обработку вместо отчёта, то уже работало ВнешниеОтчеты.Создать(ИмяФайла), а ВнешниеОбработки.Создать(ИмяФайла) — не работало. Но далее метады отчёта не работают.

Попрообуй через Подключить

Пока прихожу к выводу что методы ВнешниеОтчеты.Создать(ИмяФайла) ВнешниеОбработки.Создать(ИмяФайла) не работают в фоновом задании. Кто может объяснить почему?

У юзера сервера 8.2 прав не хватает?

Че так трудно записать текст ОписаниеОшибки в Попытка/ Исключение в Журнал регистрации?

Описание: Выполняет подключение внешнего отчета по указанному пути. В качестве пути может использоваться только путь к данным в конфигурации и базе данных. что в пути указать если отчёт храниться в «Справочники.ВнешниеОбработки». я так понимаю аддрес на жёстком диске не подойдёт.

а в чём причина что метод не отрабатывает в фоновом задане, а тот же код повешеный на кноп в обработке срабатывает?

Описание=’Ошибка при вызове метода контекста (Создать)’ ИмяМодуля=’ОбщийМодуль.ГусДенМодульРегламентныхЗаданий.Модуль’ НомерСтроки=22 ИсходнаяСтрока=’        ВнешнийОтчет = ВнешниеОбработки.Создать(ИмяФайла);’

Запрещенные процедуры в модуле обработки

Скинь ее мне, либо запусти под Тонким килиентом, он тебе сразу скажет

писал же в что файл обработки записывается на жёсткий диск и открывается. причём тут права??

и чего там в модуле объекта есть?

да как вариант сча проверю куда кидать

У автора — работала в 8.1 — файловом, в котором точно Сервера нет. Инфа 146%

Счаст 8.2 — где всякие богомерзкие Управляемые режимы и клиент-серверы.

{ВнешнийОтчет.ОтчетПоДвижениюИПрайс.МодульОбъекта(1430,12)}: Тип не определен (НастройкаПериода) НП = Новый <<?>>НастройкаПериода; (Проверка: Сервер)

настройка периода на сервере — это мощно

Там сырой непереписанный под сервак Отчет.

Да я уже понял, сп буду переделывать. А может подскажете как его лучше тестить чтобы выдавало ошибки подобно

Файл-Открыть. В Тонком клиенте.

Спасибо. Всё получилось проблема действительно была в

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

1

Подключение и открытие внешней обработки

03.12.2022, 14:06. Показов 1134. Ответов 22

Метки нет (Все метки)


Всем привет!

Возникла такая проблема!
Есть ряд обработок и внешних печатных, которые периодически дорабатываются и изменяются (обусловлено спицификой производства). База у нас сетевая и чтобы внести данные в рабочую базу из тестовой, приходится всех выгонять, блокировать и вносить изменения.
Я попытался подгружать обработки через справочник ВнешнихОбработок, добавить в справочник получилось, а вот как вызвать открытие формы этой обработки при нажатии, к примеру, ссылки с рабочего стола — не знаю как!

Нашел код который по идее подгружает с диска Обработку во Хранилище, а затем через Сервер ее запускает, так при нажатии на кнопку выдается ошибка.
Сам код представлен ниже:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// *********** Модули открытия внешних ОБРАБОТОК ***********************
 
// Этап 3. Подключение внешней обработки из временного хранилища
Функция ПодключитьВнешнююОбработкуНаСервере(АдресХранилища)
 
    Возврат ВнешниеОбработки.Подключить(АдресХранилища);
 
КонецФункции
 
Процедура ПоместитьФайлВХранилищеЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
 
    // Этап2. Передача адреса временного хранилища на сервер для подключения обработки
    ИмяВнешнейОбработки = ПодключитьВнешнююОбработкуНаСервере(Адрес);
    // Этап 4. Откроем форму подключенной внешней обработки
    ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");
 
КонецПроцедуры
 
Процедура ОбработкиНажатие(Элемент)
    
    ТекССылка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("СклейкаNew");
    
    // Создание описания оповещения. В указанную процедуру будет передано управление 
    // после помещения файла во временное хранилище
    Оповещение = Новый ОписаниеОповещения("ПоместитьФайлВХранилищеЗавершение", ЭтотОбъект);
    
    // Этап 1. Помещение обработки во временное хранилище
    НачатьПомещениеФайла(Оповещение, , "\192.168.1.6eDCGPablicДиз1С обработки1С_АбсолютОбработкиСклейкаNEW.epf", Ложь);
    
    
КонецПроцедуры

А ошибка выглядит так:

1C
1
2
3
4
{Обработка.РабочийСтол.Форма.Форма.Форма(899)}: Ошибка при вызове конструктора (ОписаниеОповещения)
    Оповещение = Новый ОписаниеОповещения("ПоместитьФайлВХранилищеЗавершение", ЭтотОбъект);
по причине:
Не найден экспортируемый метод: ПоместитьФайлВХранилищеЗавершение

Может кто подскажет как решить данную проблему!
А то очень нужно, а я уже больше месяца не могу найти решение!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



364 / 169 / 73

Регистрация: 04.03.2020

Сообщений: 649

03.12.2022, 14:23

2

Укажите процедурам, где &НаСервере, а где &НаКлиенте



0



432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

03.12.2022, 16:06

 [ТС]

3

данный код написан в модуле рабочего стола, а там кажется общие формы
и если я прописываю НаКлиенте и НаСервере, ругается на:

1C
1
2
{Обработка.РабочийСтол.Форма.Форма.Форма(889,24)}: Процедура или функция с указанным именем не определена (ПодключитьВнешнююОбработкуНаСервере)
    ИмяВнешнейОбработки = <<?>>ПодключитьВнешнююОбработкуНаСервере(Адрес);



0



260 / 216 / 94

Регистрация: 07.04.2011

Сообщений: 1,334

04.12.2022, 10:08

4

Посмотрите тут.Возможно решение есть подходящее.Поковыряться надо
Открывается общая форма обработок,а при нажатии открывается конкретная внешняя обработка.



0



1123 / 675 / 197

Регистрация: 22.04.2013

Сообщений: 5,094

Записей в блоге: 1

04.12.2022, 11:16

5

внешние обработки встраиваются и доступны через меню дополнительно — доп обработки в том разделе, где укажешь.
зачем вы велосипеды предлагаете?
пишешь 3 функции стандартных . пишешь обработчик. всё. обработка готова к употреблению.



0



432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

05.12.2022, 10:17

 [ТС]

6

Я загрузил ВнешОбр в справочник ВнешнихОбработок, получил данные обработки из Хранилища данных.
Только вот теперь нужно открыть саму форму и передать этой форме параметр ССылкаНаОбъект.
Но вот в этом и загвозка, не получается
Вот код команды:

1C
1
2
3
4
5
6
    ТекССылка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("СклейкаNew");
    Данные = ТекССылка.ХранилищеВнешнейОбработки.Получить();
    ИмяФайла = ПолучитьИмяВременногоФайла("epf");
    Данные.Записать(ИмяФайла);
    Обработка  = ВнешниеОбработки.Создать(ИмяФайла);
    Форма      = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);

Реквизит Обработка перечень реквизитов получает, а вот Форма не открывается.

Может кто подскажет, как это правильно сделать? Очень нужно!



0



1123 / 675 / 197

Регистрация: 22.04.2013

Сообщений: 5,094

Записей в блоге: 1

05.12.2022, 12:30

7

а открыть форму с помощью открытьформу не пробовали?



0



0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

05.12.2022, 12:58

 [ТС]

8

Проблема может еще заключаться в том что приложение обычное, а обработки управляемые
Из-за этого может не запускаться обработка?

Добавлено через 17 минут
через ОткрытьФорму, она открывается нормально, мне нужно чтобы она открывалась либо с диска как файл *.epf,
либо из справочника внешних обработок.
Производство большое и работает 24/7 и постоянно выгонять народ из сетевой базы не вариант.
Нужно чтобы изменения внес, в файл сохранил и автоматически подгрузилась обработка с изменениями.



0



1123 / 675 / 197

Регистрация: 22.04.2013

Сообщений: 5,094

Записей в блоге: 1

05.12.2022, 13:45

9

Цитата
Сообщение от 432286
Посмотреть сообщение

приложение обычное, а обработки управляемые

так формы должны быть обычные

администрирование — дополнительные отчеты и обработки
добавить из файла
встраиваете и оно работает. не надо никого никуда выгонять.

Миниатюры

Подключение и открытие внешней обработки
 



0



432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

05.12.2022, 13:47

 [ТС]

10

Это какой-то трешь!!!
ПОМОГИТЕ пожалуйста, ничего не получается. Не могу понять!
Вроде обработку из справочника получает. Пробовал и обычную и управляемую форму делать.
Результат не открывает форму обработки

1C
1
2
3
4
5
6
7
8
9
10
11
&НаКлиенте
Процедура ПриОткрытии(Отказ)
 
    ТекССылка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("СклейкаNew");
    Данные = ТекССылка.ХранилищеВнешнейОбработки.Получить();
    ИмяФайла = ПолучитьИмяВременногоФайла("epf");
    Данные.Записать(ИмяФайла);
    Обработка  = ВнешниеОбработки.Создать(ИмяФайла);
    Форма = ВнешниеОбработки.ПолучитьФорму(Обработка,"ПланеркаПечатьОб",,);
 
КонецПроцедуры

Обработка имеет значение — ВнешняяОбработкаОбъект.Склейка
Пишет:

1C
1
2
3
4
5
6
{Обработка.ОткрытьОбработку.Форма.ОткрытьОбработку.Форма(34)}: Ошибка при вызове метода контекста (ПолучитьФорму)
    Форма = ВнешниеОбработки.ПолучитьФорму(Обработка,"ПланеркаПечатьОб",,);  
по причине:
Ошибка подключения внешних метаданных
по причине:
Файл не обнаружен 'ВнешняяОбработкаОбъект.Склейка'. 2(0x00000002): Не удается найти указанный файл.

Пытаюсь загрузить форму с сетевого диска, то же не получается

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&НаКлиенте
Процедура ПриОткрытии(Отказ)   
    
    //Помещаем обработку во временном хранилище
    АдресХранилища = "";
    Результат = ПоместитьФайл(АдресХранилища, "\192.168.1.6eDCGPablicДиз1С обработки1С_АбсолютОбработкиПланеркаПечатьОб.epf", , Ложь);
    ИмяОбработки = ПодключитьОбработку(АдресХранилища);
    
    //Форма = ВнешниеОбработки.ПолучитьФорму(ИмяОбработки,"ПланеркаПечатьОб",,);
 
    ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");
 
    
    Сообщить("!");
    
КонецПроцедуры

Пишет ошибку:

1C
1
2
3
4
{Обработка.ОткрытьОбработку.Форма.ОткрытьОбработку.Форма(43)}: Ошибка при вызове метода контекста (ОткрытьФорму)
    ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");
по причине:
Получение управляемой формы внешней обработки/отчета для обычного режима работы приложения не поддерживается

Пожалуйста, ПОМОГИТЕ! Уже не знаю как что, но очень нужно добить!
Уже не важно Управляемые или Обычные формы



0



Bit_Man

476 / 390 / 111

Регистрация: 24.04.2012

Сообщений: 1,619

Записей в блоге: 3

05.12.2022, 19:01

11

Лучший ответ Сообщение было отмечено 432286 как решение

Решение

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Ссылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("", Истина);
 
ИмяОбработки = ПолучитьИмяВременногоФайла();
ХранилищеОбработки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ХранилищеОбработки");
ДвоичныеДанные = ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяОбработки);
 
Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид");
Если Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет
    Или Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда
    Менеджер = ВнешниеОтчеты;
Иначе
    Менеджер = ВнешниеОбработки;
КонецЕсли;
 
ВнешняяОбработка = Менеджер.Создать(ИмяОбработки);
ФормаОбработки = ВнешняяОбработка.ПолучитьФорму("Форма");
Если ФормаОбработки <> Неопределено Тогда
    ФормаОбработки.Открыть();
КонецЕсли;

Добавлено через 3 минуты
Это под толстого клиента



1



432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

06.12.2022, 00:56

 [ТС]

12

У меня толстый клиент, но при отладки выдает ошибку

1C
1
2
3
4
5
{ОбщийМодуль.ОбщегоНазначения.Модуль(2597)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(3, 2)}: Поле не найдено "ХранилищеОбработки"
<<?>>ХранилищеОбработки КАК ХранилищеОбработки

Добавлено через 21 минуту
В итоге после небольшой реконструкции кода, успех был достигнут.
УФ не открывает, а вот обычные формы идут на ура, Придется переделывать УФ на Обычные (((((

Итоговый код выглядит так:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Ссылка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("ПланеркаПечать", Истина);
 
    ИмяОбработки = ПолучитьИмяВременногоФайла();
    ДвоичныеДанные = Ссылка.ХранилищеВнешнейОбработки.Получить();
    ДвоичныеДанные.Записать(ИмяОбработки);
     
    Вид = Ссылка.ВидОбработки;
    Если Вид = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет
      Тогда
        Менеджер = ВнешниеОтчеты;
    Иначе
        Менеджер = ВнешниеОбработки;
    КонецЕсли;
     
    ВнешняяОбработка = Менеджер.Создать(ИмяОбработки);
    ФормаОбработки = ВнешняяОбработка.ПолучитьФорму("ПланеркаПечать");
    Если ФормаОбработки <> Неопределено Тогда
        ФормаОбработки.Открыть();
    КонецЕсли;

Добавлено через 1 час 56 минут
А можно таким же способом вызвать внешнюю печатную форму, если она так же внесена в справочник ВнешниеОбработки?
Если да, то как это можно осуществить, подскажите пожалуйста!?



0



476 / 390 / 111

Регистрация: 24.04.2012

Сообщений: 1,619

Записей в блоге: 3

06.12.2022, 09:56

13

Цитата
Сообщение от 432286
Посмотреть сообщение

УФ не открывает, а вот обычные формы идут на ура, Придется переделывать УФ на Обычные (((((

Так как у тебя конфа на обычных формах (толстый клиент) при установке флага «Использовать УФ» (точно не помню как называется) в конфигурации можно использовать УФ.
Но это не распространяется на элементы справочника «ДополнительныеОтчетыИОбработки».
Т.е. если у тебя доп. обработка на УФ то она не откроется и будет ошибка —

Цитата
Сообщение от 432286
Посмотреть сообщение

Получение управляемой формы внешней обработки/отчета для обычного режима работы приложения не поддерживается

Попробуй использовать расширение и в него добавлять свои обработки. Может всё норм будет (сам не пробовал, поэтому не знаю).

Цитата
Сообщение от 432286
Посмотреть сообщение

А можно таким же способом вызвать внешнюю печатную форму, если она так же внесена в справочник ВнешниеОбработки?

Общих модулей нет «ДополнительныеОтчетыИОбработки…» ? Там всё написано



0



Dethmontt

Модератор

Эксперт 1С

3698 / 2898 / 569

Регистрация: 10.03.2011

Сообщений: 11,411

Записей в блоге: 1

12.12.2022, 13:01

14

Лучший ответ Сообщение было отмечено 432286 как решение

Решение

Цитата
Сообщение от 432286
Посмотреть сообщение

А можно таким же способом вызвать внешнюю печатную форму, если она так же внесена в справочник ВнешниеОбработки?
Если да, то как это можно осуществить, подскажите пожалуйста!?

вместо формы вызываешь функцию печати

1C
1
2
3
ВнешняяОбработка = Менеджер.Создать(ИмяОбработки);
ВнешняяОбработка.СсылкаНаОбъект = СсылкаНаОбъект;
ВнешняяОбработка.Печать();



1



432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

18.12.2022, 16:59

 [ТС]

15

Всем доброго времени суток!

С внешней обработкой получилось, код написанный ранее работает на ура.
Но появилась вот какая проблема:
У меня на этой обработке есть Табличная Часть, которая заполняется запросом при открытии (всю супер), потом эти данные выводятся на печатную форму. Макет этой формы так же находится в этой обработке.
При запуске обработке и вызове печатной формы система выдает ошибку

1C
1
2
{ВнешняяОбработка.ПланеркаПечать.Форма.ПланеркаПечать.Форма(255)}: Поле объекта не обнаружено (ПланеркаПечать)
    Макет = Обработки.ПланеркаПечать.ПолучитьМакет("Роланд");

Подскажите пожалуйста, как вызвать печатную форму из подключаемой внешней обработке?

P.S. Хотя я догадываюсь как! Сделать эту печатную форму внешней печатной формой и вызывать ее из обработке как внешнюю П.Ф с передачей параметров по принципу кода:

1C
1
2
3
ВнешняяОбработка = Менеджер.Создать(ИмяОбработки);
ВнешняяОбработка.СсылкаНаОбъект = СсылкаНаОбъект;
ВнешняяОбработка.Печать();

Тогда как передать таблицу с данными с формы, через параметр и Структуру?



0



delphi_Int

null

52 / 48 / 11

Регистрация: 06.11.2012

Сообщений: 349

19.12.2022, 14:40

16

Цитата
Сообщение от 432286
Посмотреть сообщение

ВнешняяОбработка.Печать()

когда ты будешь тут (в процедуре Печать()), то это будет МО и там будет доступно

1C
1
ПолучитьМакет("Роланд");

Добавлено через 14 минут

Цитата
Сообщение от 432286
Посмотреть сообщение

Тогда как передать таблицу с данными с формы, через параметр и Структуру?

1C
1
2
3
4
5
6
ВнешняяОбработка = Менеджер.Создать(ИмяОбработки);
ВнешняяОбработка.СсылкаНаОбъект = СсылкаНаОбъект;
Если СтруктураФормы <> Неопределено Тогда
      Обработка.Структура = СтруктураФормы;
КонецЕсли;
ВнешняяОбработка.Печать();

в МО внешней обработке в самом верху

1C
1
Перем Структура Экспорт;

и все будет в ажуре



0



0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

19.12.2022, 15:09

 [ТС]

17

То есть все таки через внешнюю печатную форму и структуру с данным на передачу?

Блин!! Ладно буду пробовать, но боюсь у меня на такое практики маловато будет! ((((



0



null

52 / 48 / 11

Регистрация: 06.11.2012

Сообщений: 349

19.12.2022, 15:35

18

Цитата
Сообщение от 432286
Посмотреть сообщение

То есть все таки через внешнюю печатную форму и структуру с данным на передачу?

не совсем. Через модуль объекта внешней обработки. Туда ты передаешь структуру



0



432286

0 / 0 / 0

Регистрация: 30.09.2013

Сообщений: 112

19.12.2022, 16:35

 [ТС]

19

сделал функцию в МО но теперь модуль формы ее не видит совсем

1C
1
2
3
4
5
6
7
8
9
10
11
12
Функция РоландПечать() Экспорт 
    
        // 
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
    Макет =  ПолучитьМакет("Роланд");
        .........
    
    Возврат ТабДок;
    
КонецФункции

Процедура вызова функции печать на форме:

1C
1
2
3
4
5
6
Процедура КомПанельПечатьРоланд(Кнопка)
    
    ТабДок = РоландПечать(
    ТабДок.Показать();
    
КонецПроцедуры



0



null

52 / 48 / 11

Регистрация: 06.11.2012

Сообщений: 349

19.12.2022, 16:48

20

А еже ли так…

Миниатюры

Подключение и открытие внешней обработки
 



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

19.12.2022, 16:48

20

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Внешне правильное рассуждение содержащее какую то неумышленную логическую ошибку это
  • Внести замечания лексическая ошибка
  • Внести замечания какая ошибка
  • Внесение удобрений на поля способствует повышению урожая паронимы ошибка
  • Внематочная беременность как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии