Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Июн 2021, 17:13
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
МультиВход
 
collapse

Автор Тема: Двоичные данные обработки  (Прочитано 4601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Oldman06

  • ***
  • Регистрация: 2010-10-21
  • Сообщений: 104
  • РЕПУТАЦИЯ: 11
  • КПД: 11%
Приветствую. Подскажите пожалуйста, как во внешней обработке получить двоичные данные этой самой обработки? Если она открыта из файла, то можно воспользоваться свойством "ИспользуемоеИмяФайла", а если она сама создана из двоичных данных?
Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанныеОбработки);
ОбъектОбработки = ВнешниеОбработки.Подключить(Адрес, , Ложь, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());


Оффлайн Oldman06

  • ***
  • Регистрация: 2010-10-21
  • Сообщений: 104
  • РЕПУТАЦИЯ: 11
  • КПД: 11%
При создании обработки из двоичных данных в реквизите "ИспользуемоеИмяФайла" содержится значение типа "e1cib\tempstorage\....". Похоже на адрес во временном хранилище но из него не получается ничего получить.

Оффлайн wise

  • *****
  • Регистрация: 2013-03-21
  • Сообщений: 1067
  • РЕПУТАЦИЯ: 155
  • КПД: 15%
  • Кто сгорел, того не подожжешь
  • Профессия: Ученик 1С
(0) Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанныеОбработки, UIN);

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

Оффлайн Oldman06

  • ***
  • Регистрация: 2010-10-21
  • Сообщений: 104
  • РЕПУТАЦИЯ: 11
  • КПД: 11%
(0) Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанныеОбработки, UIN);

и получай до конца сеанса.
Это замечательно. Но вопрос в том, как из САМОЙ обработки получить ее двоичные данные, когда она уже загружена, причем не важно, из файла на диске или из двоичных данных.

Оффлайн wise

  • *****
  • Регистрация: 2013-03-21
  • Сообщений: 1067
  • РЕПУТАЦИЯ: 155
  • КПД: 15%
  • Кто сгорел, того не подожжешь
  • Профессия: Ученик 1С
(3) что значит "получить"..?
как их читать? или изменять..?
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн Oldman06

  • ***
  • Регистрация: 2010-10-21
  • Сообщений: 104
  • РЕПУТАЦИЯ: 11
  • КПД: 11%
(3) что значит "получить"..?
как их читать? или изменять..?
Например, грубо говоря, я открываю внешнюю обработку, открывается в ней форма с кнопкой "Установить", по которой эта обработка подключается к базе. Вот пример кода из обработки.
&НаКлиенте
Процедура УстановитьОбработкуЛабораторногоИсследования()
ИмяФайлаОбработчика = ПолучитьИмяФайлаОбработки();
Если ПодключитьРасширениеРаботыСФайлами() Тогда
ПомещенныеФайлы = Новый Массив;
Если ПоместитьФайлы(, ПомещенныеФайлы, ИмяФайлаОбработчика, Ложь, ЭтаФорма.УникальныйИдентификатор) Тогда
АдресВременногоХранилища = ПомещенныеФайлы[0].Хранение;
Если Не УстановитьОбработкуЛабораторногоИсследованияНаСервере(АдресВременногоХранилища) Тогда
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияПредупрежденияОбОшибке", ЭтаФорма);

ПоказатьПредупреждение(Оповещение, "Ошибка при регистрации обработчика!", 0, "Ошибка");

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

&НаСервере
Функция ПолучитьИмяФайлаОбработки()
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
Возврат ОбъектОбработки.ИспользуемоеИмяФайла;
КонецФункции
И это работает, если обработка открыта из файла на диске - в свойстве "ИспользуемоеИмяФайла" путь к файлу. А что делать если обработка создана из двоичных данных, не важно откуда полученных? Как в этом случае получить ее двоичные данные? В свойстве объекта обработки "ИспользуемоеИмяФайла" ссылка на что?

Оффлайн alex0402

  • *****
  • Регистрация: 2010-09-10
  • Сообщений: 2000
  • РЕПУТАЦИЯ: 358
  • КПД: 18%
  • Профессия: Программист 1С
А что делать если обработка создана из двоичных данных, не важно откуда полученных?
сохранить на диск и потом подключать, создавать обработку.
Спасибо за Сказать спасибо

Оффлайн Oldman06

  • ***
  • Регистрация: 2010-10-21
  • Сообщений: 104
  • РЕПУТАЦИЯ: 11
  • КПД: 11%
А что делать если обработка создана из двоичных данных, не важно откуда полученных?
сохранить на диск и потом подключать, создавать обработку.

Это не подходит. Я объясню что мне нужно. Я хочу использовать фоновые задания в этой обработке. Но процедура для фонового задания должна находиться в общем модуле. А мне нужно чтобы исполнялась процедура объекта этой обработки. Поэтому я хочу в общем модуле сделать процедуру фонового задания в которую через параметры "как-то" передам ссылку на нужную мне процедуру. Объект обработки я передать не могу - он не сериализуется, поэтому я думал передать ссылку на двоичные данные обработки и там уже создать объект обработки и вызвать выполнение экспортной процедуры его модуля объекта. Может есть другой способ это осуществить?

Оффлайн temrmal

  • ***
  • Регистрация: 2011-11-10
  • Сообщений: 174
  • РЕПУТАЦИЯ: 22
  • КПД: 13%
А что делать если обработка создана из двоичных данных, не важно откуда полученных?
сохранить на диск и потом подключать, создавать обработку.

Это не подходит. Я объясню что мне нужно. Я хочу использовать фоновые задания в этой обработке. Но процедура для фонового задания должна находиться в общем модуле. А мне нужно чтобы исполнялась процедура объекта этой обработки. Поэтому я хочу в общем модуле сделать процедуру фонового задания в которую через параметры "как-то" передам ссылку на нужную мне процедуру. Объект обработки я передать не могу - он не сериализуется, поэтому я думал передать ссылку на двоичные данные обработки и там уже создать объект обработки и вызвать выполнение экспортной процедуры его модуля объекта. Может есть другой способ это осуществить?

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Последние вакансии

* Том 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
69 Сообщений
LexaK
67 Сообщений
antoneus antoneus
32 Сообщений
Ивашка
28 Сообщений
neek666
25 Сообщений
KATERINA 861
19 Сообщений
SSC
15 Сообщений
alexandr_ll
13 Сообщений
Алексей_1985_06
12 Сообщений
pouyo
8 Сообщений

* Кто онлайн

  • Точка Гостей: 574
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Инструменты

* Дополнительно

Поиск