Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 читайте на сайте

1C Скд Пользовательские Настройки в Обычной Форме • Область строки

Заполняем название нашего поля и переходим к нижней части формы, где и произведём разделение должностей по нужным нам категориям.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
При таком способе ввода в каждой ячейке, как и при формировании обычного отчета на СКД, содержится лишь некий объект типа ИдентификаторРасшифровкиКомпоновкиДанных , который по сути представляет собой число. Статья: Работа с внешними наборами данных в СКД | Новичок 1С Обращайтесь в форму связи

СКД-отборы списков на обычных и управляемых формах

Иногда требуется вывести на форму отбор списка элементов с произвольными СКД-подобными отборами. В статье рассматривается как это сделать в управляемых и обычных формах.

Рассмотрим на примере отбора списка контрагентов в управляемой форме внешней обработки.

В форму добавляем реквизит » ОтборКонтрагентов » типа » КомпоновщикНастроекКомпоновкиДанных «.

Размещаем созданный реквизит на форме перетаскиванием поля КомпоновщикНастроекКомпоновкиДанных .Отбор на форму:

Добавляем в макеты внешней обработки новый макет с типом схема компоновки данных » СКД_Контрагенты «:

Отборов на форме может быть несколько, поэтому для удобства программиста все они называются Ссылка, а вот для удобства пользователя нужно назначить для ссылки представление, для этого ставим галочку и вводим название поля для пользователя «Контрагент»:

Теперь нужно привязать компоновщик настроек к схеме компоновки:

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ОО = РеквизитФормыВЗначение(«Объект»); //Для внешних обработок реквизиты получаем так

URLСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор());

ЗначениеВРеквизитФормы(ОО, «Объект»); //Для внешних обработок реквизиты сохраняем так

После этого настройки отображаются на форме в требуемом виде:

Чтобы получить список выбранных пользователем контрагентов, используем следующий код, который можно вставить в какую-нибудь серверную процедуру обработки команды:

МассивКонтрагентов = СкомпоноватьВТаблицуЗначений(СКД, ОО.ОтборКонтрагентов).ВыгрузитьКолонку(«Ссылка»);

Обращаю ваше внимание, что перед компоновкой в таблицу значений вызывается функция, которая в структуру настройки устанавливает группировку из единственной колонки «Ссылка». Можно было бы эту группировку нарисовать и вручную, но зачем, если можно автоматизировать.

В итоге в МассивКонтрагентов будет искомый перечень контрагентов.

Функция УстановитьСтруктуруНастроекДляВыводаВТаблицуСКолонкойСсылка(Настройки) Экспорт

ТекПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(«Ссылка»);

Функция СкомпоноватьВТаблицуЗначений(СхемаКомпоновкиДанных, КомпоновщикНастроек) Экспорт

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки. Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновки, истина);

Добавление пользовательского поля в отчёт на СКД на примере конфигурации 1С «Зарплата и управление персоналом 3.1» - Создан admin - в категории: Программирование 1С - с меткой: вкладка, группировка, настройка, отбор, отчет, оформление, персонал, пользовательский, список - Консультации по вопросам 1С и бухгалтерскому учету - О работе в программе 1С
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

1С 8.3 СКД (система компоновки данных)

Для задания заголовка поля, необходимо выделить нужное поле, правой кнопкой мыши вызвать контекстное меню и выбрать пункт Установить заголовок см.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Данные действия можно производить и в режиме 1С Предприятия, открыв настройки отчета, НО, в состав настроек отчета должен быть включен пункт Выбранные поля см. 1C Скд Пользовательские Настройки в Обычной Форме Обращайтесь в форму связи

Комментарии

Спасибо огромное за статью и прикреплённый пример. Очень помогло в работе.

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

Спасибо — просто спасли. Только у меня Период не видит в модуле

положила все в модуль Объекта(база ЗиК 3), в СКД в Параметры добавила «Период» =стандартный период,НачалоПериода=&Период.ДатаНачала ; КонецПериода.. Не видит здесь Период и все..

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) экспорт

СтандартнаяОбработка = Ложь;
//ДанныеПечати = ПолучитьИзВременногоХранилища(Адр);
Запрос = Новый Запрос;
Запрос.Текст ;

//Запрос.УстановитьПараметр(«НачалоПериода», Период.ДатаНачала);
//Запрос.УстановитьПараметр(«КонецПериода», Период.ДатаОкончания);
НачалоПериода=Дата(«01.11.2016 00:00:00»); ;

Запрос.УстановитьПараметр(«НачалоПериода», НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода», КонецПериода);
Запрос.УстановитьПараметр(«СовмПроф», «Доплата за совм. проф. (4)»);

//Если СовмещСотрудник.Пустой() тогда
// //Сообщить(«В ЭТОЙ ГРУППЕ НЕТ КОНТРАГЕНТОВ » );
//конецесли;

Запрос = Новый Запрос;
Запрос.Текст ;
ффф= Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено ;
//Запрос.УстановитьПараметр(«НачалоПериода», Период.ДатаНачала);
//Запрос.УстановитьПараметр(«КонецПериода», Период.ДатаОкончания);
Запрос.УстановитьПараметр(«НачалоПериода», НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода»,КонецПериода);

ПланВидовРЕЗ= РезультатПакета[6].Выгрузить();
ПланВидовРЕЗ.сортировать(«ПланВидовРасчетаНаименование»);

СотрРез = РезультатПакета[9].Выгрузить();
ДанныеПечати = РезультатПакета[10].Выгрузить(); //окончательный итог Сотрудник

//начисл_Сотр_подр = РезультатПакета[9].Выгрузить();
//начисл_Сотр_подр.сортировать(«Группа»);
//РезультатЗапроса.сортировать(«Группа,СпрОтрВБух_ВидДеятельности,ВидДеятельностиНАШ»);
ДанныеПечати.сортировать(«Сотрудник»);
ДанныеПечати.Колонки.Добавить(«ПодразделенияРодитель», Новый ОписаниеТипов(«строка»));
ДанныеПечати.Колонки.Добавить(«ВидДеятельностиНаш», Новый ОписаниеТипов(«строка»));

Если МассивНайденныеСтроки.Количество() > 0 Тогда
Для Каждого Ст Из МассивНайденныеСтроки Цикл
Стр.ВидДеятельностиНаш = Ст.СовмещСпособОтражения;
Если Ст.СовмещПодразделениеКуда = NULL Тогда
Счет =»»;
СубСчет =»»;
ПодразделениеСпрОтр =»»;
ВидДеятельностиСпрОтр =»»;
резЗапр = 0;

//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

СКД и таблицы значений

Работа с внешними наборами данных в СКД

Для использования в отчёте на СКД произвольной таблицы значений необходимо настроить соответствующим образом схему компоновки данных и прописать программный вывод отчёта.

1.2. На закладке «Наборы данных» добавляем набор данных — объект.

1.3. Добавляем необходимые поля набора данных (достаточно указать Поле) и указываем Имя объекта, содержащего данные.

1.4. Если в СКД есть другие наборы данных (например, Запрос), то создаём связи наборов данных на закладке «Связи наборов данных».

2.1. В модуле объекта отчёта создаём процедуру-обработчик ПриКомпоновкеРезультата.

2.2. В процедуре ПриКомпоновкеРезультата отключаем стандартную обработку.

2.3. Формируем таблицу значений произвольным образом. Имена колонок таблицы значений должны совпадать с полями набора данных в СКД (п.1.3).

2.6. Помещаем данные о расшифровке в соответствующую переменную.

2.8. Передаём в макет компоновки схему, настройки и данные расшифровки.

2.9. Выполняем компоновку с помощью процессора компоновки. Для этого выполняем метод процессора компоновки данных Инициализировать(). В качестве параметров передаём макет компоновки данных, внешние наборы данных (тип: Структура, ключ структуры должен совпадать с именем объекта в схеме компоновки данных (п.1.3), значение — сформированная таблица значений), данные расшифровки.

Помимо таблиц значений в качестве внешних наборов данных могут использоваться результаты запросов, табличные части.

Тип: Структура.
Ключ структуры соответствует имени внешнего набора данных. Значение структуры — внешнему набору данных.

Тип: ДанныеРасшифровкиКомпоновкиДанных.
Объект, в котором нужно заполнить данные расшифровки. Если не указан, то расшифровка заполняться не будет.

Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь.

Далее, зная значение Номенклатуры и Периода можно найти соответствующую строку в табличной части и присвоить в ней реквизиту Сумма нужное значение, после можно программно нажать на кнопку Обновить.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Не поддерживается сохранение настройки в стандартном хранилище настроек, если длина ключа объекта превышает 256 символов; длина ключа настроек превышает 128 символов; длина имени пользователя превышает 64 символа. Вторник, 8 марта 2016 г. Обращайтесь в форму связи

Особенности работы в тонком клиенте без использования режима модальности.

Для работы в тонком клиенте необходимо помещать схему СКД и Данные расшифровки во временное хранилище. Хранить полученные адреса удобно в реквизитах формы.

Записываем адреса хранилищ в обработчике ПриСозданииНаСервере()
Обработчики событий Поля табличного документа и асинхронные вызовы

Обработчик ПолеТабличногоДокументаПредставлениеПриАктивизацииОбласти необходим для того, чтобы редактировать число(показатель) можно было непосредственно в ячейке, без использования дополнительных диалоговых окон.

Стандартное хранилище настроек
Затем щёлкаем по строке отбора правой кнопкой мыши и выбираем пункт Свойства элемента пользовательских настроек.

Порядок разработки хранилища настроек

Что еще?

UPD 07.07.2024 Добавлена реализация для тонкого клиента на управляемой форме без использования модальности.

1) Никто не запрещает размещать на форме стандартные настройки компоновщика настроек.

2) Можно добавлять в схему СКД любую другую информацию (с помощью других наборов данных), которая не содержится в табличной части редактируемого объекта, но которая необходима для принятия решения при вводе данных (например свойства номенклатуры).

3) Группировка данных в таблице также может быть сколь угодно сложной, в зависимости от решаемой задачи.

4) Можно и нужно использовать всю мощь СКД и возможностей условного оформления.

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts