-Рубрики

 -Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Iwinter

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 28.04.2008
Записей:
Комментариев:
Написано: 228

1С 8.2. Отбор строк в Таблице Формы

Дневник

Четверг, 22 Мая 2014 г. 14:35 + в цитатник

Заметка для себя:

Имею дело с формой документа. У Объекта (основного объекта д-та) добавлены два неосновных реквизита типа ТаблицаЗначений - ТЗ1 и ТЗ2. С ними, как с ТЗ, можно работать только на сервере.

Эти ТЗ перенесены на форму. На форме они уже "становятся" элементами типа ТаблицаФормы со своими св-ми, отличными от ТЗ. И тут с ними можно работать только на клиенте и работать, например, делать отбор строк.

Задача: в ТЗ2 на форме необходимо отображать только те записи, которые соответствуют текущей записи из ТЗ1 по каким-либо полям.

Для этого можно применить свойство ОтборСтрок для Таблицы Формы.

 

//---------------------------------------------------------------------------------------------------------------------------------

Описание из Синтаксис-Помошника:

Расширение таблицы формы для таблицы значений (Form table extension for value table)
ОтборСтрок (RowFilter)

Использование:

Чтение и запись.

Описание:

Тип: Неопределено; ФиксированнаяСтруктура.
Позволяет установить отбор по значению колонки.
В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор.
Чтобы снять отбор нужно присвоить свойству либо значение Неопределено, либо пустую ФиксированнаяСтруктура.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.

//---------------------------------------------------------------------------------------------------------------------------------

Реализовала:

идем в событие "ПриАктивизацииСтроки" ТЗ1, лежащей на форме.

&НаКлиенте
Процедура ТЗ1ПриАктивизацииСтроки(Элемент)

   ТекСтр = Элементы.ТЗ1.ТекущиеДанные;
    Если ТекСтр <> Неопределено Тогда
        ПараметрыОтбора = Новый Структура;
        ПараметрыОтбора.Вставить("Поле1", ТекСтр.Поле1);
        ПараметрыОтбора.Вставить("Поле2", ТекСтр.Поле2);
        Элементы.ТЗ2.ОтборСтрок = Новый ФиксированнаяСтруктура(ПараметрыОтбора);
    КонецЕсли;

КонецПроцедуры

Рубрики:  Работа/1С 8.2.

Метки:  

1С 8.2. Запрос к Таблице значений

Дневник

Понедельник, 03 Марта 2014 г. 15:21 + в цитатник
Частенько получается так, что данные лежат в таблице значений, и надо, например, вытащить данные из нее по к-то 
условию. Для этого можно задействовать запрос. Делаем так (вставляю пример текста, чтоб было под рукой):

//при запросе к ТЗ типы колонок ТЗ д.б. объявлены явно.
КЧ14_3 = Новый КвалификаторыЧисла(14,3);
КС190 = Новый КвалификаторыСтроки(190);
КС10 = Новый КвалификаторыСтроки(10);

Массив = Новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС190 = Новый ОписаниеТипов(Массив, , КС190);
ОписаниеТиповС10 = Новый ОписаниеТипов(Массив, , КС10);
        
Массив.Очистить();
Массив.Добавить(Тип("Число"));
ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, КЧ14_3);
            
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Группа", ОписаниеТиповС190);
ТЗ.Колонки.Добавить("Наименование", ОписаниеТиповС190);
ТЗ.Колонки.Добавить("Артикул", ОписаниеТиповС10);
ТЗ.Колонки.Добавить("Менеджер", ОписаниеТиповС10);
ТЗ.Колонки.Добавить("Колво", ОписаниеТиповЧ);
 
// 2. необходимо подключить Менеджер временных таблиц
// один запрос будет все же упоминаться 2 раза. Т.к. чтобы по результатам запроса можно было 
// потом пройти, надо сначала выбрать данные из ТЗ во временную таблицу, а потом уже из нее 
// сделать выборку-результат
 
Запрос = Новый Запрос();
МенеджерВТ = Новый МенеджерВременныхТаблиц();
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
        
Запрос.Текст = 
"ВЫБРАТЬ 
|       врТаблицаДанных.Артикул,
|       врТаблицаДанных.Наименование
|ПОМЕСТИТЬ Товары
|ИЗ
|       &врТаблицаДанных КАК врТаблицаДанных
|ГДЕ
|       врТаблицаДанных.Группа = &выбрГруппа";
 
Запрос.УстановитьПараметр("врТаблицаДанных",  ТЗ);
Запрос.УстановитьПараметр("выбрГруппа",  выбрГруппа);
Запрос.Выполнить();
        
Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
   "ВЫБРАТЬ 
|       Товары.Артикул,
|       Товары.Наименование,"+допСтр2+"
|ИЗ
|       Товары КАК Товары";
        
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
                
Пока Выборка.Следующий() Цикл
        НаименованиеТов = Выборка.Наименование;
        //... любая обработка
КонецЦикла;

 

Рубрики:  Работа/1С 8.2.

Метки:  

1с 8.2.: Фоновые задания (файл-серверный вариант)

Дневник

Пятница, 20 Декабря 2013 г. 15:32 + в цитатник

Разобралась с фоновыми заданиями при файл-серверном варианте работы 1С 8.2. Выложу позже на заметку, чтоб не забыть.

Рубрики:  Работа/1С 8.2.

Метки:  

 Страницы: [1]