Форма ~ Отбор, Группировка, Порядок и Условное оформление через компоновку данных Выполним отбор по подразделению, если основной интерфейс пользователя кассир.
Код 1C v 8.х Если ПользователиИнформационнойБазы. ТекущийПользователь( ) . ОсновнойИнтерфейс. Имя = "ИнтерфейсКассира" Тогда
ДокументСписок. Отбор. Сбросить( ) ;
ДокументСписок. Отбор. Подразделение. ВидСравнения= ВидСравнения. Равно;
ДокументСписок. Отбор. Подразделение. Значение= ПараметрыСеанса. ТекущийПользователь. Подразделение;
ДокументСписок. Отбор. Подразделение. Установить( ) ;
Элементыформы. Список. НастройкаОтбора. Подразделение. Доступность = Ложь ;
КонецЕсли ;
Выполним отбор по дате в форме списка документа.
Код 1C v 8.2 УП ЭлементОтбора = Список. Отбор. Элементы. Добавить( Тип( "ЭлементОтбораКомпоновкиДанных" ) ) ;
ЭлементОтбора. ЛевоеЗначение = Новый ПолеКомпоновкиДанных( "Дата" ) ;
ЭлементОтбора. Использование = Истина ;
ЭлементОтбора. ВидСравнения = ВидСравненияКомпоновкиДанных. БольшеИлиРавно;
ЭлементОтбора. ПравоеЗначение = Дата1 ;
ЭлементОтбора. РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных. Обычный;
Элементы. Список. Обновить( ) ;
Группировка. Сгруппируем список документов по полю Клиент.
Код 1C v 8.2 УП ЭлементГруппировки = Список. Группировка. Элементы. Добавить( Тип( "ПолеГруппировкиКомпоновкиДанных" ) ) ;
ЭлементГруппировки. Использование = Истина ;
ЭлементГруппировки. Поле = Новый ПолеКомпоновкиДанных( "Клиент" ) ;
Элементы. Список. Обновить( ) ;
Порядок. Отсортируем список документов по полю ПлановаяДатаПоставки.
Код 1C v 8.2 УП Список. Порядок. Элементы. Очистить( ) ;
НовыйПорядок = Список. Порядок. Элементы. Добавить( Тип( "ЭлементПорядкаКомпоновкиДанных" ) ) ;
НовыйПорядок. Поле = Новый ПолеКомпоновкиДанных( "Список.ПлановаяДатаПоставки" ) ;
НовыйПорядок. Использование = Истина ;
НовыйПорядок. РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных. Обычный;
НовыйПорядок. ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных. Возр;
Элементы. Список. Обновить( ) ;
Условное оформление. Покрасим в красный цвет строки списка документов с незаполненной датой согласования счета.
Код 1C v 8.2 УП ЭлементОформления = Список. УсловноеОформление. Элементы. Добавить( ) ;
ЭлементОтбора = ЭлементОформления. Отбор. Элементы. Добавить( Тип( "ЭлементОтбораКомпоновкиДанных" ) ) ;
ЭлементОтбора. ЛевоеЗначение = Новый ПолеКомпоновкиДанных( "ДатаСогласованияСчета" ) ;
ЭлементОтбора. ВидСравнения = ВидСравненияКомпоновкиДанных. НеЗаполнено;
ЭлементОтбора. Использование = Истина ;
Элемент = ЭлементОформления. Оформление. Элементы[1 ];
Элемент. Использование = Истина ;
Элемент. Значение = Новый Цвет( 255 , 0 , 0 ) ;
Категория:
Работа с Формой (Диалог) и её элементами Как изменить слово «Итого» в общих итогах? Иногда возникает желание изменить само слово Итого в общих итогах.
Сделаем это следующим образом:
Код 1C v 8.х //Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
Настройки, ДанныеРасшифровки);
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,
ДанныеРасшифровки);
//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
ВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//Ищем в табличном документе "Итого" и заменяем
ТекОбласть = Результат.НайтиТекст("Итого", ТекОбласть, Результат.Область(),
Истина, Истина, Истина, Ложь);
Если ТекОбласть <> Неопределено Тогда
ТекОбласть.Текст = "МоёИтого";
КонецЕсли;
После этого общие итоги выглядят примерно так:
also Категория:
Запросы Программный вывод отчета СКД Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию.
Код 1C v 8.х //Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Автор:
also Категория:
Схема Компоновки Данных