Створення меню вибору варіантів звіту на скд в 1с

Як відомо, система компонування даних в 1С дозволяє створювати різні варіанти звітів із заздалегідь підготовленими настройками ще на етапі створення.

Необхідно дати користувачеві можливість вибрати потрібний варіант звіту. Розглянемо програмне створення на панелі дій форми звичайного застосування меню, що випадає, яке буде автоматично заповнюватися всьому існуючими варіантами звіту.

Для початку підготуємо процедуру, яка буде створювати меню з варіантами:

процедура УстановітьВаріантиНастроек # 40; # 41;

// Додаємо кнопку підміню на панель дій форми. Ім'я кнопки "ВаріантиОтчетов", користувачеві. буде видно як "Варіанти"
КП = ЕлементиФорми. ДействіяФорми;
НоваяКнопка = КП. Кнопки. вставити # 40; 1. "ВаріантиОтчетов". ТіпКнопкіКоманднойПанелі. Підміню. "Варіанти". # 41; ;

НовоеДействіе = Новий Дія # 40; "ІзменітьВаріант" # 41; ; // Створюємо дію, яке потім призначимо на кнопки з варіантами

Лічильник = 1; // порахуємо кнопки, у них повинні бути різні імена

// Додаємо кнопки для кожного варіанта настроки СКД
// Відображення кнопки беремо з уявлення настройки
// Призначаємо як дії кнопки дію, створене вище
Для кожного Налаштування З СхемаКомпоновкіДанних. ВаріантиНастроек Цикл

НоваяКнопка = КП. Кнопки. ВаріантиОтчетов. Кнопки. Додати # 40; "Варіант" + Рядок # 40; Лічильник # 41 ;. ТіпКнопкіКоманднойПанелі. Дія. Налаштування. Подання. НовоеДействіе # 41; ;
Лічильник = Лічильник + 1;

Викличемо цю процедуру при відкритті форми:

процедура прочинене # 40; # 41;

УстановітьВаріантиНастроек # 40; # 41; ;

А тепер створюємо обробник події для доданих кнопок. У попередньому коді був рядок НовоеДействіе = Новий Дія ( «ІзменітьВаріант»); значить обробник повинен мати назву ІзменітьВаріант.

процедура ІзменітьВаріант # 40; елемент # 41;

// Обходимо в циклі всі варіанти звіту і перевіряємо, чи збігається їх подання з заголовком кнопки, на яку натиснули.
// Якщо співпало, значить це і є шукана настройка
Для кожного Варіант З СхемаКомпоновкіДанних. ВаріантиНастроек Цикл

Якщо Елемент. Текст = Варіант. подання тоді

// Завантажуємо варіант
КомпоновщікНастроек. ЗагрузітьНастройкі # 40; Варіант. налаштування # 41; ;

// Міняємо заголовок форми, щоб було зрозуміло, що за варіант працює
// Можна і десь в іншому місці відобразити назву варіанта
ЕтаФорма. Тема = ЕтотОб'ект. метадані # 40; # 41 ;. подання # 40; # 41; + ":" + Варіант. подання;

// У мене на форму були виведені додаткові поля відборів з компоновщика налаштувань
// Якщо є щось подібне, то такі процедури писати сюди
// Якщо немає, то наступний рядок видалити
ЗаполнітьОтборНастроек # 40; # 41; ;

// Перериваємо цикл, тому що знайшли настройку
перервати;

За ідею спасибі колегам з сайту programmist1s.ru

Схожі статті