|   |   | 
| 
 | УФ, оптимизация, внеконтекстные вызовы и все-все-все. | ☑ | ||
|---|---|---|---|---|
| 0
    
        H A D G E H O G s 25.03.14✎ 15:10 | 
        День добрый.
 Волей судеб пишу обработку. В ней есть ОФ (обычные формы), УФ (управляемые формы) идентичной функциональности. Общие функции вынесены в модуль объекта. УФ у меня построена целиком на внеконтекстных вызовах. Единственный контекстный - ПриСозданииНаСервере. Все хорошо. Единственная проблема возникает с общими функциями модуля объекта. Проблема в том, что обработка может использоваться и как внешняя, что исключает использование модуля менеджера. Копировать функции в модуль УФ исключено из за унификации. Вызов контекстной функции исключен быстродействием (на клиенте дозвизды данных, миграция на сервер которых не нужна). Решение - вот оно &НаКлиенте Процедура ЗаполнитьДанныеВариант3(Команда) ЗаполнитьДанныеНаСервереВариант3(Объект); КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьДанныеНаСервереВариант3(Знач Объект) ЭтотОбработкаОбъект=ДанныеФормыВЗначение(Объект,Тип("ОбработкаОбъект.ТестоваяОбработка")); //Все хорошо! ЭтотОбработкаОбъект.ТестоваяПроцедура(); КонецПроцедуры но оно работает только для встроенной обработки. Для внешней обработки игра с типами приводит либо к ошибке 2 параметра, либо к падению платформы, пример вот он: http://webfile.ru/b9e7156814d8655af7630696748bc3f7 Ben, i need help | |||
| 1
    
        bborisko 25.03.14✎ 15:13 | 
        РеквизитФормыВЗначение("Объект").Процедура()
 Но не знаю работает ли это вне контекста | |||
| 2
    
        vmv 25.03.14✎ 15:13 | 
        хвастаешься штоле?
 где терзающие душу вопросы? | |||
| 3
    
        VikingKosmo 25.03.14✎ 15:14 | 
        Для внешней обработки стоило бы указывать тип, соответствующий внешней обработке, и будет тебе счастье.     | |||
| 4
    
        H A D G E H O G s 25.03.14✎ 15:15 | 
        (1) Нельзя.     | |||
| 5
    
        H A D G E H O G s 25.03.14✎ 15:16 | 
        (3) Укажи.
 Я это делаю в примере по ссылке, 2 способами. Ошибка и падение. | |||
| 6
    
        toypaul гуру 25.03.14✎ 15:19 | 
        вопрос про правильное подключение внешней обработки что ли? если так, то ответ в БСП.     | |||
| 7
    
        H A D G E H O G s 25.03.14✎ 15:22 | 
        (6) нет, вопрос не об этом.     | |||
| 8
    
        Drac0 25.03.14✎ 15:22 | 
        (0) Тип будет, вроде бы, Тип("ВнешняяОбработкаОбъект.ТестоваяОбработка")     | |||
| 9
    
        H A D G E H O G s 25.03.14✎ 15:23 | 
        (8) Прекрасно. Теперь скачай пример.     | |||
| 10
    
        toypaul гуру 25.03.14✎ 15:23 | 
        а понял. вопрос про вызов процедуры из модуля внешней обработки.
 но если контекстных процедур нет, почему не создать новый экз обработки и вызвать у него метод? | |||
| 11
    
        toypaul гуру 25.03.14✎ 15:25 | 
        для чего цепляться к Объект?     | |||
| 12
    
        H A D G E H O G s 25.03.14✎ 15:26 | 
        (10) Бррр....
 Это будет один в один подход типовых 1С по выгрузке регламентной отчетности, за который хочется сделать плохое сценаристам. Не будем уподобляться этим безумным людям, скачаем cf-шник, развернем его и нажмем 2 кнопочки. И. Все. Увидим. | |||
| 13
    
        H A D G E H O G s 25.03.14✎ 15:27 | 
        (11) Не понял вопроса.     | |||
| 14
    
        vmv 25.03.14✎ 15:31 | 
        (11) он говорит шо там за сокровища в модуле объекта, которые прям могут быть только там
 мое мнение - задача высосана из пальца. Зачем ставить во главу угла построение фкнкионала на внеконтексте и тут же плевать на это, пытаясь влезть в модуль объекта байки об унификации не предлагать | |||
| 15
    
        H A D G E H O G s 25.03.14✎ 15:32 | 
        (14) Ты cf то скачал?     | |||
| 16
    
        Kondarat 25.03.14✎ 15:33 | 
        ДанныеФормыВЗначение (FormDataToValue)
 Синтаксис: ДанныеФормыВЗначение(<Объект>, <Тип>) Параметры: <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево. Данные формы. <Тип> (обязательный) Тип: Тип. Тип значения, получаемого из данных формы. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует данные формы в объект прикладного типа. Доступность: Сервер, толстый клиент, мобильное приложение(сервер). Примечание: Нельзя преобразовать в объект типа Табличная часть. | |||
| 17
    
        vmv 25.03.14✎ 15:33 | 
        (15) я телепат     | |||
| 18
    
        H A D G E H O G s 25.03.14✎ 15:33 | 
        (17) Ванга плачет по тебе кровавыми слезами.
 (16) спс кэп. | |||
| 19
    
        vmv 25.03.14✎ 15:34 | 
        (16) тока на сервере, а тут задача о двух стульях же     | |||
| 20
    
        Drac0 25.03.14✎ 15:41 | 
        (9) Скачать не могу. У себя воспроизвел. И вправду странно.     | |||
| 21
    
        H A D G E H O G s 25.03.14✎ 15:44 | 
        (20) ну хоть один     | |||
| 22
    
        toypaul гуру 25.03.14✎ 15:44 | 
        есть мнение, что контекст формы содержить какую-то важную инфо о внешней обработке, которой не хватает для ДанныеФормыВЗначение
 потому что РеквизитФормыВЗначение же работает? можешь уточнить в 1С. может это глюк, может фича. а может так было задумано, но не описано в СП. | |||
| 23
    
        VikingKosmo 25.03.14✎ 15:45 | 
        (20) а что странного то? Тип("ОбработкаОбъект.ТестоваяОбработка") ну ни как не равен типу соответствующему внешней обработке. Правда пока вразумительно представить тип внешней обработки я тоже не могу :)     | |||
| 24
    
        Kondarat 25.03.14✎ 15:46 | 
        (21) 16 - зачеркнуть.
 У меня странно то, что третий вариант работает как для встроенной так и для внешней обработки. | |||
| 25
    
        Drac0 25.03.14✎ 15:46 | 
        (21) Клади ее в хранилище при создании на сервере :-) РеквизитФормыВЗначение работает нормально.     | |||
| 26
    
        Drac0 25.03.14✎ 15:47 | 
        (23) Тип указываю тоже соответсвующий: ВнешнняОбработкаОбъект     | |||
| 27
    
        VikingKosmo 25.03.14✎ 15:48 | 
        (26) мнээээ, я до конца пример не прогонял, но что то не припоминаю типа ВнешняяОбработкаОбъект. Хотя могу и ошибаться.     | |||
| 28
    
        Drac0 25.03.14✎ 15:50 | 
        (27) Сделай в контекстном серверном вызове РеквизитФормыВЗначение("Объект") и посмотри его тип.     | |||
| 29
    
        H A D G E H O G s 25.03.14✎ 15:50 | 
        (25) Это вариант 2 в примере. Он приводит к падению платформы.     | |||
| 30
    
        vmv 25.03.14✎ 15:50 | 
        то что хочет тс невозможно, если он настаивает на использовании в форме внешней обработки только внеконтестных методов и одновременному доступу к функционалу модуля объекта.
 пути через задницу эээ через хранилища или сериализаторы не рассматриваем вброшу безумную идею - нужно поити на маленьку жертву и поюзать еще один контекстный метод ОбработкаОповещения() а вот функционал из модуля объекта перенести в дополнительную форму обработки. Можно создать даже семейтсво функционалов-форм пристегнутых к одной обработке и управлять вызовами дополнительных методов путем идентификаторов событий оповещения. дерзайте, я ж в вас верю | |||
| 31
    
        H A D G E H O G s 25.03.14✎ 15:51 | 
        (27) Есть такой тип.     | |||
| 32
    
        H A D G E H O G s 25.03.14✎ 15:51 | 
        (30) Ты скачал cf?     | |||
| 33
    
        vmv 25.03.14✎ 15:54 | 
        (32) в эту же проблему я уперся года 2 назад и все шаги которые тут предлагали прошел и ни фига     | |||
| 34
    
        H A D G E H O G s 25.03.14✎ 15:57 | 
        (33) 
 "то что хочет тс невозможно, если он настаивает на использовании в форме ВНЕШНЕЙ обработки только внеконтестных методов и одновременному доступу к функционалу модуля объекта. " Это справедливо только для внешней обработки, и несправедливо для встроенной, так? | |||
| 35
    
        vmv 25.03.14✎ 16:00 | 
        (34) да, именно проблема со вшнешней была, на новых релизах я не проверял, но очевидно, что осталась     | |||
| 36
    
        H A D G E H O G s 25.03.14✎ 16:01 | 
        (35) Ясно     | |||
| 37
    
        H A D G E H O G s 25.03.14✎ 16:04 | 
        Ладно, пока сделаем
 ЗаполнитьНаСервере() ЗаполнитьНаСервереБезКонтекста() Хотите быстродействия - встраивайте в конфигурацию, граждане клиенты. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |