Как обратиться к “видимым” строкам таблицы значения На форме расположен таблица “
табДанные ”. Берет данные из таблицы значения “
тзДанные ”.
Имееться булевое поле “
Выбран ” которое надо проставить в
Истина для тех строк которые видны после поиска.
Код 1C v 8.2 УП НомСтроки = -1;
МаксНомер = тзДанные.Количество();
Пока НомСтроки < МаксНомер цикл
НомСтроки = НомСтроки + 1;
ДанныеСтрока = Элементы.табДанные.ДанныеСтроки(НомСтроки);
Если ДанныеСтрока <> Неопределено тогда
ДанныеСтрока.Выбран = Значение;
КонецЕсли;
КонецЦикла;
Категория:
Управляемое приложение, Тонкий клиент Поиск максимума и минимума в таблице значений Код 1C v 8.х // Возвращает структуру с минимальное и максимальное значение в таблице значений
// Структура содержит поля Макс,Мин
// тзДанные - таблица значений
// ПолеМакс, ПолеМин - строка с именем максимального и минимального поля
// Если поле ПолеМакс неуказанно то минимум ищеться по ПолеМин
Функция МаксМинВТаблицеЗначений(тзДанные, ПолеМин, ПолеМакс = Неопределено)
Результат = Новый Структура("Макс,Мин");
ЗапросМакМин = Новый Запрос;
ЗапросМакМин.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ЗапросМакМин.Текст = "ВЫБРАТЬ
| РабТаблица._ПолеМакс КАК Макс,
| РабТаблица._ПолеМин КАК Мин
|ПОМЕСТИТЬ РабочаяТаблица
|ИЗ
| &РабТаблица КАК РабТаблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(РабочаяТаблица.Макс) КАК Макс,
| МИНИМУМ(РабочаяТаблица.Мин) КАК Мин
|ИЗ
| РабочаяТаблица КАК РабочаяТаблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ РабочаяТаблица";
ЗапросМакМин.Текст = СтрЗаменить(ЗапросМакМин.Текст, "_ПолеМакс" , ПолеМакс);
ЗапросМакМин.Текст = СтрЗаменить(ЗапросМакМин.Текст, "_ПолеМин" , ПолеМин);
ЗапросМакМин.УстановитьПараметр("РабТаблица", тзДанные);
РезМаксМин = ЗапросМакМин.Выполнить().Выгрузить();
Результат["Макс"]= РезМаксМин[0].Макс;
Результат["Мин"] = РезМаксМин[0].Мин;
Возврат Результат;
КонецФункции
Категория:
Работа с Таблицей Значений Как результат СКД в виде Табличного Документа разобрать и вывести в Таблицу Значений В отчете должна быть настроена и указана
основная схема компоновки данных
Когда идет конвертирование в ТЗ, то ищется в первом столбце пустая строка, как только она найдена - конвертация считается завершенной.
Поэтому для сложных отчетов - выводите первым столбцом Системное поле № п/п.
Код 1C v 8.х
// В МОДУЛЕ ФОРМЫ
&НаКлиенте
Процедура СформироватьБезСКД(Команда)
СформироватьСервер();
КонецПроцедуры
&НаСервере
Функция СформироватьСервер()
мОтчет = РеквизитФормыВЗначение("Отчет");
Результат = мОтчет.СформироватьПечатнуюФорму();
КонецФункции
// В МОДУЛЕ ОБЪЕКТА
Функция СформироватьПечатнуюФорму() Экспорт
рзДанные = ПолучитьДанныеДляОтчета();
Возврат рзДанные;
КонецФункции
Функция ТДВТаблицуЗначений(ТабДок, КолонкаИндекса = 1)
ТаблицаДанных = Новый ТаблицаЗначений;
НомерКолонки = 0;
Пока Истина Цикл
НомерКолонки = НомерКолонки + 1;
ИмяКолонки = ТабДок.Область(1, НомерКолонки).Текст;
Если ПустаяСтрока(ИмяКолонки) Тогда
Прервать;
КонецЕсли;
ТаблицаДанных.Колонки.Добавить(СтрЗаменить(ИмяКолонки, " ","_"));
КонецЦикла;
СчетчикКолонок = НомерКолонки - 1;
НомерСтроки = 1; ФлагПрерывания = Ложь;
Пока Истина Цикл
НомерСтроки = НомерСтроки + 1;
Стр = ТаблицаДанных.Добавить();
Для А = 1 ПО СчетчикКолонок Цикл
ТекстКолонки = ТабДок.Область(НомерСтроки, А).Текст;
Если ПустаяСтрока(ТекстКолонки) Тогда
Если А = КолонкаИндекса Тогда
Флагпрерывания = Истина;
ТаблицаДанных.Удалить(Стр);
КонецЕсли;
Иначе
Стр[А - 1] = ТекстКолонки
КонецЕсли;
Если Флагпрерывания Тогда
Прервать
КонецЕсли;
КонецЦикла;
Если Флагпрерывания Тогда
Прервать
КонецЕсли;
КонецЦикла;
Возврат ТаблицаДанных
КонецФункции
Функция ПолучитьДанныеДляОтчета()
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода);
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецДня(КонецПериода));
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Организация", Организация);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
ТабличныйДокумент = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
///Переведем ТабДокумент в ТЗ
тзДанные = ТДВТаблицуЗначений(ТабличныйДокумент);
Возврат тзДанные;
КонецФункции
Категория:
Схема Компоновки Данных