| 
    
        
     
     | 
    
    
  | 
8.2 Не могу записать в реквизит типа хранилище профи подскажите | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        vladnet    
     24.10.11 
            ✎
    15:12 
 | 
         
        Предыстория, нужно в справочник реквизит табличной части типа хранилище значения, засунуть значение (тип в данном контексте не важен), вроде все форумы уже перекопал и делаю как там написано. 
  
        Но тестовый код: лОбъект=РеквизитФормыВЗначение("НаборОбъект"); Сообщить(ТипЗнч(лОбъект.Назначения[0].НастройкиОтбора.Получить())); лОбъект.Назначения[0].НастройкиОтбора=Новый ХранилищеЗначения("ыфваы"); ЗначениеВРеквизитФормы(лОбъект, "НаборОбъект"); лОбъект=РеквизитФормыВЗначение("НаборОбъект"); Сообщить(ТипЗнч(лОбъект.Назначения[0].НастройкиОтбора.Получить())); возвращает мне: Настройки компоновки данных Настройки компоновки данных а мне нужно чтобы во втором случае была строка если в управляемых формах разбираетесь хорошо - подскажите вроде должна быть мелочь  | 
|||
| 
    1
    
        vladnet    
     24.10.11 
            ✎
    15:47 
 | 
         
        вверх, может кто то знает (     
         | 
|||
| 
    2
    
        izekia    
     24.10.11 
            ✎
    15:49 
 | 
         
        то что такое??
  
        лОбъект.Назначения[0].НастройкиОтбора=Новый ХранилищеЗначения("ыфваы");  | 
|||
| 
    3
    
        vmv    
     24.10.11 
            ✎
    15:50 
 | 
         
        ЗначениеВРеквизитФормы(лОбъект, "НаборОбъект");
  
        Сообщить(ТипЗнч(лОбъект.Назначения[0].НастройкиОтбора.Получить())); эти две команды в одном куске коде как бы говорят нам, что автор еще не разобрался, что исполняется на сервере, а что на клиенте. когда разбереться можно искать ошиьки и давать советы  | 
|||
| 
    4
    
        izekia    
     24.10.11 
            ✎
    15:54 
 | 
         
        (3) я вообще немного непонял что этим кодом автор хотел сказать ... и ведь не пятница еще вроде     
         | 
|||
| 
    5
    
        vladnet    
     24.10.11 
            ✎
    16:10 
 | 
         
        В справочнике есть табличная часть с реквизитом типа Хранилище значений. Мне нужно по действию пользователя поменять этот реквизит в определенной строке.
  
        Код отладочный, я вырезал все ненужное. Сообщить там для того чтобы показать что значение не меняется. Кстати сообщить прекрасно работает и на клиенте и на сервере.  | 
|||
| 
    6
    
        vladnet    
     24.10.11 
            ✎
    16:18 
 | 
         
        (2) Поясню: Назначения - табличная часть, НастройкиОтбора - реквизит типа хранилища значений
  
        в хранилище значения записывается строка для теста  | 
|||
| 
    7
    
        vladnet    
     24.10.11 
            ✎
    16:18 
 | 
         
        (3) А почему эти 2 команды не могут сочетаться? Обе могут быть выполнены на сервере     
         | 
|||
| 
    8
    
        Defender aka LINN    
     24.10.11 
            ✎
    16:21 
 | 
         
        Перед записью на сервере это делай     
         | 
|||
| 
    9
    
        izekia    
     24.10.11 
            ✎
    16:26 
 | 
         
        (3) а, кстати, сообщить же работает на сервере     
         | 
|||
| 
    10
    
        izekia    
     24.10.11 
            ✎
    16:30 
 | 
         
        (0) а тебе не ДанныеФормыВЗначение надо использовать?     
         | 
|||
| 
    11
    
        izekia    
     24.10.11 
            ✎
    16:30 
 | 
         
        (10)2(6)     
         | 
|||
| 
    12
    
        vladnet    
     24.10.11 
            ✎
    16:31 
 | 
         
        (8) Тогда придется отдельный массив хранить для табличной части? 
  
        вот тут например написан пример когда это вроде как работает, по уверениям автора: http://www.1c-pro.ru/index.php?showtopic=35107  | 
|||
| 
    13
    
        vladnet    
     24.10.11 
            ✎
    16:36 
 | 
         
        (10) попробовал тоже самое
  
        лОбъект=ДанныеФормыВЗначение(НаборОбъект, Тип("СправочникОбъект.НаборыСвойств")); Сообщить(ТипЗнч(лОбъект.Назначения[0].НастройкиОтбора.Получить())); лОбъект.Назначения[0].НастройкиОтбора=Новый ХранилищеЗначения("ыфвафывафывафы"); ЗначениеВДанныеФормы(лОбъект, НаборОбъект); лОбъект=ДанныеФормыВЗначение(НаборОбъект, Тип("СправочникОбъект.НаборыСвойств")); Сообщить(ТипЗнч(лОбъект.Назначения[0].НастройкиОтбора.Получить()));  | 
|||
| 
    14
    
        vladnet    
     24.10.11 
            ✎
    16:36 
 | 
         
        результат тот же     
         | 
|||
| 
    15
    
        izekia    
     24.10.11 
            ✎
    16:43 
 | 
         
        погоди, а с чего ты взял, что в настройки отбора ты можешь записать другое значение?     
         | 
|||
| 
    16
    
        izekia    
     24.10.11 
            ✎
    16:48 
 | 
         
        (15) немного не в тему, сорри     
         | 
|||
| 
    17
    
        vmv    
     24.10.11 
            ✎
    16:59 
 | 
         
        что касается отбора, то он на компоновке в 8.2. и уставливается так
  
        //ЭлементыОтбора = МенеджерФорма.Список.Отбор.Элементы; //ЭлементыОтбора.Очистить(); // //Для каждого ЭлементСтруктуры Из СтруктураОтбора Цикл // ЭлементОтбораДанных = ЭлементыОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); // ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ЭлементСтруктуры.Ключ); // ЭлементОтбораДанных.Использование = Истина; // ЭлементОтбораДанных.ПравоеЗначение = ЭлементСтруктуры.Значение; // Если ТипЗнч(ЭлементСтруктуры.Значение) = Тип("СписокЗначений") Тогда // ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; // Иначе // // по умолчанию вид сравнения "Равно" // КонецЕсли; //КонецЦикла; что касается Сообщить(), то как правило сервер - это сервер, он должен работать, а не выводить сообщения. да и с адресом временного хранилища тоже разберитесь  | 
|||
| 
    18
    
        izekia    
     24.10.11 
            ✎
    17:01 
 | 
         
        (17) это не отбор, это у него так реквизит табличной части называется     
         | 
|||
| 
    19
    
        vladnet    
     24.10.11 
            ✎
    17:06 
 | 
         
        (17) Тут вопрос не в отборе, а в том что в Хранилище не могу значение установить. Тут идея такая пользователь кликает на выбор в табличной части представления, отрывается окно с выбором отборов, и после того как пользователь введет, я запихаю данные в строку, а при записи формы уже запишу.
  
        По поводу сообщить - это тест, конечно потом уберу от туда сообщение. Что значит адрес временного хранилища? Сори пока не везде въезжаю в управляемое приложение.  | 
|||
| 
    20
    
        vladnet    
     24.10.11 
            ✎
    17:07 
 | 
         
        Пока абсолютно без разницы что там находится, главное как поменять.     
         | 
|||
| 
    21
    
        vmv    
     24.10.11 
            ✎
    17:14 
 | 
         
        у меня с Тз так работает, в регистр сведений я пишу неважно где и как в ресурс типа "Хранилище..." таблицу значений
  
        ЗаписьНабора.СохраненнаяТаблицаВИ = Новый ХранилищеЗначения(Тз, Новый СжатиеДанных()); Затем на обработчик начало выбора строки в таблице форме, которая показывает измерения этого регистра я вешаю ОтборЗаписей = Новый Структура; ОтборЗаписей.Вставить("ИмяИсточника", ИмяИсточника); ОтборЗаписей.Вставить("ИмяТаблицы" , ИмяТаблицы ); Тз = РегистрыСведений.AddЧНГТаблицыИзВнешнихИсточников.Получить(ОтборЗаписей)[ИмяРесурса].Получить(); ЗначениеВРеквизитФормы(ТзИсточника, ИмяТаблицыФормы); и все работает Важно: структуры колонок(ИМЕНА и ТИПЫ) таблицы значений на форме и полученная из храненнища должны ТОЧЬ-В-ТОЧЬ совпадать, иначе будет молчаливый плевок в виде пустой таблицы или исключение в худщем случае. Я формирую структура ТаблицаФормы динамически - посему проблем нет. В вашем случае проверьте в отладчике структуру РеквизитФормыВЗначение("ВашаТаблица") и ТзПолученнаяИзСохранения. усе, больше вариантов нету  | 
|||
| 
    22
    
        vmv    
     24.10.11 
            ✎
    17:15 
 | 
         
        и СжатиеДанных не забывайте, управляемая к нему иногда критичка, особенно в тонком и веб     
         | 
|||
| 
    23
    
        vladnet    
     24.10.11 
            ✎
    17:52 
 | 
         
        Да у меня не тз, а табличное поле     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |