Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как открыть внешнюю обработку в тонком клиенте?          
Рейтинг 5 V
Vofka Подменю пользователя
сообщение 26.03.15, 16:37
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Есть у клиента конфа на управляемых формах, которая начинала свой жизненный путь с одной типовой Украинской конфы на обычных формах. Как известно (или не известно smile.gif ) во всех типовых конфигурациях ещё с давних времен есть справочник ВнешниеОбработки, в которые добавляют отчеты, обработки, печатные формы и обработки для заполнения табличных частей. В моём случае возникла потребность во внешних отчетах и обработках в тонком клиенте.

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

Сделал управляемую форму списка, модуль которой содержит такой код:

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
        
    СтандартнаяОбработка = Ложь;
    ВидОбработки = ПолучитьВидОбработки(ВыбраннаяСтрока);
    Если НЕ (ВидОбработки = "Отчет" ИЛИ ВидОбработки = "Обработка") Тогда
        Возврат;
    КонецЕсли;
    
    ИмяОбработки = ПодключитьВнешнююОбработку(ВыбраннаяСтрока, Ложь);
    Если НЕ ЗначениеЗаполнено(ИмяОбработки) Тогда
        Возврат;
    КонецЕсли;
    
    Если ВидОбработки = "Обработка" Тогда
        ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");
    Иначе
        ОткрытьФорму("ВнешнийОтчет."+ ИмяОбработки +".Форма");
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Функция ПодключитьВнешнююОбработку(ВнешняяОбработка, БезопасныйРежим) Экспорт
    
    УстановитьПривилегированныйРежим(Истина);
    
    ДвоичныеДанныеОбработки = ВнешняяОбработка.ПолучитьОбъект().ХранилищеВнешнейОбработки.Получить();
    АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанныеОбработки);
    
    Если ВнешняяОбработка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет Тогда
        Возврат ВнешниеОтчеты.Подключить(АдресВоВременномХранилище,, БезопасныйРежим);
    ИначеЕсли ВнешняяОбработка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка Тогда
        Возврат ВнешниеОбработки.Подключить(АдресВоВременномХранилище,, БезопасныйРежим);
    Иначе
        Сообщить(НСтр("ru = 'Открыть можно только отчет или обработку'; uk = 'Відкрити можна лише звіт або обробку'"));
        Возврат "";
    КонецЕсли;
    
КонецФункции

&НаСервере
Функция ПолучитьВидОбработки(ВнешняяОбработка)
    
    Если ВнешняяОбработка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет Тогда
        Возврат "Отчет";
    ИначеЕсли ВнешняяОбработка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка Тогда
        Возврат "Обработка"
    Иначе
        Возврат "";
    КонецЕсли;
    
КонецФункции


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

ВнешниеОбработки.Подключить(АдресВоВременномХранилище,, БезопасныйРежим);


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

Спасибо сказали: TipsyKID,

VikingKosmo Подменю пользователя
сообщение 26.03.15, 16:45
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Харьков
Спасибо сказали: 12 раз
Рейтинг: 0

По идее в БСП есть примеры как это делать icon_beer17.gif

Vofka Подменю пользователя
сообщение 26.03.15, 16:48
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Вполне может быть.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 12:55
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!