Форма ~ Отбор, Группировка, Порядок и Условное оформление через компоновку данных Выполним отбор по подразделению, если основной интерфейс пользователя кассир.
Код 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 Категория:
Схема Компоновки Данных