ОткрытьМодально в тонком клиенте, возможно?

Тема в разделе "1C и всё что с ней связано", создана пользователем CBS, 21 авг 2011.

  1. CBS

    CBS Гость

    Создал внешнюю обработку, и прицепил ее к документу, и в модуле объекта обработки написал такой, код. Цеплял на заполнение Табличной части. Все писалось для УТ 11.0

    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    //Предупреждение(ОбъектыНазначенияМассив[0]);

    ФормаПодбора = ПолучитьФорму("ВнешняяОбработка.Подбор.Форма.Форма");
    ФормаПодбора.СсылкаНаОбъект = ОбъектыНазначенияМассив[0];
    ФормаПодбора.ОткрытьМодально();
    КонецПроцедуры

    Все это работает на толстом клиенте тока в путь, но как переключаю запуск в тонком клиенте, ругается на процедуру ОткрытьМодально( а также процедуру Открыть, почему то нельзя использовать в модуле объекта на тонком клиенте), а мне нужно открыть форму моей обработки. Как это можно сделать? Заранее советы как подключить программно внешнюю обработку не принимаются, т.к. нельзя снимать документ с поддержки к котормоу я подрубаю обработку. Нужен совет или подсказка, или даже где можно почитать про это, как открывать форму обработок подключенных к документу на тонком клиенте. И еще писать &НаСервере, &НаКлиенте, и на Клиенте как бы открывтаь, в модуле Объекта моей обработки нельзя, я все пробывал. Надеюсь моя проблема ясна, жду ваших взглядов и подсказок, Заране всем спасибо!
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Модуль объекта на сервере выполняется. Нельзя на сервере формы открывать.
    А процедура ВыполнитьКоманду обычно в модуле команды. Там отрывать можно.
    Не совсем понял, в чем проблема.
    Может быть вам поможет ОткрытьФормуМодально() ?
     
  3. CBS

    CBS Гость

    Вот мой полный код моей внешей обработки, которую я через дополнительные отчеты и обработки цепляю к документу:
    //-------------------------------------------------------------
    Перем Форма Экспорт;
    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ОтчетОРозничныхПродажах");

    ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Подбор");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", "Подбор номенклатуры для документа Отчет О Розиничных продажах, советуется убрать галочку у поля использовать для формы списка, но если не уберете на работоспобность обработки влиять не будет");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд,
    "Подбор",
    Истина);

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
    КонецФункции
    // Формирует таблицу значений с командами печати
    //
    // Возвращаемое значение:
    // ТаблицаЗначений
    //
    Функция ПолучитьТаблицуКоманд()

    Команды = Новый ТаблицаЗначений;

    //Представление команды в пользовательском интерфейсе
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

    //Уникальный идентификатор команды или имя макета печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

    //Способ вызова команды: "ОткрытиеФормы", "ВызовКлиентскогоМетода", "ВызовСерверногоМетода"
    // "ОткрытиеФормы" - применяется только для отчетов и дополнительных отчетов
    // "ВызовКлиентскогоМетода" - вызов процедуры Печать(), определённой в модуле формы обработки
    // "ВызовСерверногоМетода" - вызов процедуры Печать(), определённой в модуле объекта обработки
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

    //Показывать оповещение.
    //Если Истина, требуется показать оповещение при начале и при завершении работы обработки.
    //Имеет смысл только при запуске обработки без открытия формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

    //Дополнительный модификатор команды.
    //Используется для дополнительных обработок печатных форм на основе табличных макетов.
    //Для таких команд должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

    Возврат Команды;

    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ВызовСерверногоМетода", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

    КонецПроцедуры
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    Форма = ПолучитьФорму("ВнешняяОбработка.Подбор.Форма.Форма");
    Ссылочка = ОбъектыНазначенияМассив[0];
    Форма.ОткрытьМодально();
    КонецПроцедуры

    //----------------------------------------------------------------------------------------------------
    Процедура ВЫполнитьКоманду,она нужна для манипуляций с обработкой и передачи параметров, например, когда выбираешь свою обработку путем следующих действий: ЗАполнить..->Подбор(Имя моейОбработки) ->Выполнить, шло обращение к процедуре ВыполнитьКоманду и должна открыться форма моей обработки для заполнения табличной части, но она открывается тока на толстом клиенте, варианты Форма.Открыть(), ОТКРЫТЬФОРМУ, ОткрытьФормуМодально(), все это пробывал, но выдает одну и ту же ошибку такого типа:
    {ВнешняяОбработка.Подбор.МодульОбъекта(72)}: Значение не является значением объектного типа (Открыть)
    Форма.Открыть();
    Такие соотвественно для ОткрытьФОрмуМодально() и тд. Как мне открыть форму моей обработки на тонком клиенте?

    P.S. Команды добавлять в документ нельзя, он на поддержке...
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Боюсь, что не получится. Модуль обработки вызывается с сервера, а с сервера позвать клиента нельзя.
     
  5. CBS

    CBS Гость

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

Поделиться этой страницей