| 
    
            
         
         | 
    
    
  | 
УФ. Как заполнить ТЧ оброботки на сервере без контекста вызванного из клиента? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        simol    
     13.03.13 
            ✎
    15:42 
 | 
         
        Есть обработка с двумя табличными частями.
  
        На УФ формы две таблицы отображающие эти ТЧ. Одна заполняется при открытии по данным базы. Она большая. Пользователь в УФ может ее редактировать. При активации строке строки в этой таблице (исходя из данных строки) заполняется вторая таблица. Все по функционалу работает. При активации строки вызывается серверная процедура с контекстом, которая заполняет вторую таблицу. НО! При вызове серверной процедуры с контекстом, по причине большой первой таблицы, происходит задержка на передачу контекста. Как можно исторгнутся с серверной процедурой без контекста, чтобы передать ей данные текущей строки первой таблицы и она заполнила вторую таблицу?  | 
|||
| 
    1
    
        simol    
     13.03.13 
            ✎
    15:43 
 | 
         
        исторгнутся  = изгольнуться     
         | 
|||
| 
    2
    
        НЕА123    
     13.03.13 
            ✎
    15:45 
 | 
         
        передать через параметры
  
        ?  | 
|||
| 
    3
    
        Жан Пердежон    
     13.03.13 
            ✎
    15:46 
 | 
         
        ответ же в (0) уже есть, передавай только нужные параметры     
         | 
|||
| 
    4
    
        simol    
     13.03.13 
            ✎
    15:51 
 | 
         
        Я не могу в параметры вызова функции вставить Объкт.ТЧ, так как тип "ДанныеФормыКоллекция" не передается с клиента на сервер. А с сервера Таблица значения на клиент не возвращается.     
         | 
|||
| 
    5
    
        НЕА123    
     13.03.13 
            ✎
    15:53 
 | 
         
        (4)
  
        зачем Объкт.ТЧ? достаточно ведь данные строки. возвращай через структуру.  | 
|||
| 
    6
    
        simol    
     13.03.13 
            ✎
    15:57 
 | 
         
        (5)Вариант возвращаемую таблицу на сервере преобразовывать в массив структур и на клиенте структуры из массива добавлять по построчно в таблицу рассматриваю, но это кажется мне костылем.     
         | 
|||
| 
    7
    
        НЕА123    
     13.03.13 
            ✎
    15:59 
 | 
         
        (6)
  
        согласен. но на ум больше ничего не приходит...  | 
|||
| 
    8
    
        MSII    
     13.03.13 
            ✎
    16:07 
 | 
         
        (6) Чтобы не казалось костылем, надо написать серверную и клиентскую функции, которые будут, соответственно, упаковывать переданные данные в массив структур и распаковывать этот массив, создавая строки табличной части. Дальше во всех аналогичных случаях пользоваться этими функциями.     
         | 
|||
| 
    9
    
        simol    
     13.03.13 
            ✎
    16:22 
 | 
         
        (8)Очень надеюсь, что кто-то обрадует что уже можно на клиенте тип ТаблицаЗначений :)     
         | 
|||
| 
    10
    
        MSII    
     13.03.13 
            ✎
    16:35 
 | 
         
        (9) Давно ли? Я где-то с УФ с 14-й платформы не работаю, не в курсе. А на 14-й вернуть ТЗ, как она есть, с сервера на клиент не представлялось возможным.     
         | 
|||
| 
    11
    
        simol    
     13.03.13 
            ✎
    16:49 
 | 
         
        (10)ТЗ есть только в в толстом клиенте. А загрузить ТЗ в ТЧ можно только на сервере, на клиенте доступно построчное добавление.     
         | 
|||
| 
    12
    
        simol    
     14.03.13 
            ✎
    00:35 
 | 
         
        (7)(8)Общий модуль так и назвал "КостылиДляУФ"
  
        Задержку удалось победить таким способом.  | 
|||
| 
    13
    
        Команданте    
     14.03.13 
            ✎
    00:38 
 | 
         
        у тебя активизация строки не отлажена     
         | 
|||
| 
    14
    
        Команданте    
     14.03.13 
            ✎
    00:41 
 | 
         
        нельзя вызывать при активизации строки серверную процедуру с контекстом     
         | 
|||
| 
    15
    
        Команданте    
     14.03.13 
            ✎
    00:43 
 | 
         
        попробуй так
  
        &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) Если Элементы.Список.ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; ПодключитьОбработчикОжидания("ОбработчикОжиданияСписокПриАктивизацииСтроки", 0.2, Истина); КонецПроцедуры &НаКлиенте Процедура ОбработчикОжиданияСписокПриАктивизацииСтроки() СервернаяПроцедураСКонтекстом(); КонецПроцедуры  | 
|||
| 
    16
    
        Команданте    
     14.03.13 
            ✎
    00:45 
 | 
         
        в худшем случае, елси это не прокатит
  
        &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) Если Элементы.Список.ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; Если Элементы.Список.ТекущаяСтрока = ТекНоменклатура Тогда Возврат; КонецЕсли; ТекНоменклатура = Элементы.Список.ТекущаяСтрока; Если ФлагВидСклады Тогда ПодключитьОбработчикОжидания("ОбработчикОжиданияСписокПриАктивизацииСтроки", 0.2, Истина); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОбработчикОжиданияСписокПриАктивизацииСтроки() ТекНоменклатураПриИзмененииСервер(); КонецПроцедуры где ТекНоменклатуры реквизит формы заменить на нужный реквизит ДС  | 
|||
| 
    17
    
        Команданте    
     14.03.13 
            ✎
    00:48 
 | 
         
        скинь код, товарищ массив структур     
         | 
|||
| 
    18
    
        Aleksey    
     14.03.13 
            ✎
    00:53 
 | 
         
        (17) ты про
  
        // Преобразовывает таблицу значений в массив структур &НаКлиенте Функция ПреобразоватьТаблицуВМассив(ТаблицаЗначений) Перем РезультатМассив; Перем СтруктураСтрока; // Сформируем массив структур РезультатМассив = Новый Массив; Для Каждого Строка Из ТаблицаЗначений Цикл // Сформируем структуру-строку СтруктураСтрока = Новый Структура; Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл СтруктураСтрока.Вставить(Колонка.Имя, Строка[Колонка.Имя]); КонецЦикла; РезультатМассив.Добавить(СтруктураСтрока); КонецЦикла; Возврат РезультатМассив; КонецФункции  | 
|||
| 
    19
    
        Команданте    
     14.03.13 
            ✎
    00:55 
 | 
         
        (18) откуда на клиенте ТЗ     
         | 
|||
| 
    20
    
        Aleksey    
     14.03.13 
            ✎
    00:58 
 | 
         
        (19) Да пофиг ТЗ это или ТЧ     
         | 
|||
| 
    21
    
        Команданте    
     14.03.13 
            ✎
    01:00 
 | 
         
        у тебя путаница с клиентом-сервером. не обязательно делать массив структур (хотя ут 11 этим пользуется часто)
  
        всё дело в стиле вызова  | 
|||
| 
    22
    
        Команданте    
     14.03.13 
            ✎
    01:01 
 | 
         
        ты скинь код, а не огрызок     
         | 
|||
| 
    23
    
        simol    
     14.03.13 
            ✎
    02:19 
 | 
         
        (13)В активации у меня идет проверка на повторный вызов, потому зацикливания нет.
  
        (22) 
      | 
|||
| 
    24
    
        simol    
     14.03.13 
            ✎
    02:22 
 | 
         
        Модуль _КостылиУФ 
  
        
      | 
|||
| 
    25
    
        simol    
     14.03.13 
            ✎
    02:23 
 | 
         
        ТЧРаспределяемоеПриАктивизацииСтрокиНаСервере
  
        
      | 
|||
| 
    26
    
        simol    
     14.03.13 
            ✎
    02:25 
 | 
         
        (20)Совсем не пофиг. Оказалось и ".Колонки" даже нет.     
         | 
|||
| 
    27
    
        simol    
     14.03.13 
            ✎
    02:59 
 | 
         
        (21) Мне в в током клиенте с клиентской процедуры УФ в серверную процедуру без контекста нужно передать ДанныеФормыКолекция.     
         | 
|||
| 
    28
    
        simol    
     14.03.13 
            ✎
    13:07 
 | 
         
        Вылезла бяка - неявный вызов сервера с контекстом после обработчика Активация строки.
  
        Буду искать причину.  | 
|||
| 
    29
    
        simol    
     11.04.13 
            ✎
    11:08 
 | 
         
        (28)Наше, устранил. Серверные функции с контекстом это зло!!!     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |