Имя: Пароль:
1C
 
Переменная меняется без моего ведома
, ,
0 ks-815
 
08.12.14
09:50
Добрый день!
Такая ситуация на управляемой форме. В обработке отбираю список документов за определённую дату. Из них нужно отобрать документы по нескольким контрагентам, выбранным пользователем. Стандартным отбором не получается. Делаю запросом. Чтобы после изменения поля выбора контрагентов обратно возвращался список документов, при первом заполнении ТЧ сохраняю этот список в переменную.
При выборе контрагентов таблицу перезаполняю. И почему-то перезаполняется моя переменная. Я вообще ее не трогаю больше нигде. Только при самом первом заполнении ТЧ документами за определённый период. На обычной форме полюбому такого-бы не было.
1 ks-815
 
08.12.14
09:51
&НаКлиенте
Перем Таблица

//Отбираются все документы за определённый период
&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)
    ЗаполнитьДанные();
        Таблица = Объект.ТЧ;
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьДанные()
    Запрос = Новый запрос("...");
    Таб = Запрос.Выполнить().Выгрузить();
    Объект.ТЧ.Загрузить(Таб);
КонецПроцедуры

// Отбираются из списка документов за определённый период документы с выбранными контрагентами
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    ТабЗнач = Новый ТаблицаЗначений;
        ТабЗнач.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.Документ"));
               // и еще несколько колонок..
        
                Для Каждого Строка Из Таблица Цикл
            СтрокаТабЗнач = ТабЗнач.Добавить();
            СтрокаТабЗнач.Документ = Строка.Документ;
              // и еще несколько колонок..
        КонецЦикла;
        
        Запрос = Новый Запрос;
        МенеджерВТ = Новый  МенеджерВременныхТаблиц;
        Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
                Запрос.Текст = "";
                Запрос.УстановитьПараметр("тзДанные",ТабЗнач);
            Выборка = Запрос.Выполнить().Выгрузить();
    ОтборПоКонтрагенту(Выборка);
КонецПроцедуры

&НаСервере
Процедура ОтборПоКонтрагенту(Выборка)
    Объект.ТЧ.Загрузить(Выборка);
КонецПроцедуры
2 Генератор
 
08.12.14
09:55
так в Таблице содержится ссылка на табличную часть, а не ее копия. естественно обращаясь к таблице ты обращаешься к текущим данным табличной части
3 Vovan1975
 
08.12.14
09:55
палюбому, эт точна
4 ks-815
 
08.12.14
09:56
Сейчас приходится не пользоваться переменной Таблица. А каждый раз выполнять запрос по отбору документов за определённый период. Это как-то криворуко..
Что я не так делала?
5 ks-815
 
08.12.14
09:57
(2)а как сделать в переменную Таблица мой список документов?
6 olegves
 
08.12.14
09:58
(0) пора бы уже познакомиться с реквизитами формы - переменные в УФ - это атавизм
7 ks-815
 
08.12.14
10:00
(6) что-то я не нашла на форме списка документов. Там всякие цвета, размеры только.. где глянуть?
8 vicof
 
08.12.14
10:02
(7) На форме вкладка "Реквизиты"
9 ks-815
 
08.12.14
10:05
(8) ну у меня там и расположена моя ТЧ:
Путь к данным: Объект.ТЧ.
Я ее и использую.
10 vicof
 
08.12.14
10:06
(9) А еще туда надо запихнуть "Перем Таблица", а из кода ее убрать
11 ks-815
 
08.12.14
10:06
Если использовать Элементы.ТЧ, то там всякие размеры шрифта и цвета и тому подобное.
12 ks-815
 
08.12.14
10:07
(10) попробую..