Налаштування обладнання та програмного забезпечення

Перемикачі, звичайний додаток, керовані форми. Програмне додавання та зміна елементів керованих форм Додавання перемикача на форму 1С 8.2

Платформа 1С: Підприємство дозволяє програмно додавати та змінювати елементи керованої форми. Розберемося для чого це може знадобитися.

Програмна модифікація форми може знадобитися в кількох випадках:

  • При доопрацюванні типових конфігурацій для полегшення процедури подальшого оновлення. У цьому випадку буде змінено лише модуль форми. Модулі набагато простіше оновлювати, ніж форму.
  • За реалізації деяких загальних алгоритмів. Наприклад, у підсистемі «Заборона редагування реквізитів об'єктів» для всіх підключених до підсистеми об'єктів передбачено програмне створеннякнопки для увімкнення можливості редагування реквізитів.
  • За реалізації деяких специфічних алгоритмів. Наприклад, у довіднику Номенклатура створюються поля для редагування додаткових реквізитів.

У керованій формі можна програмно додати, змінити та видалити:

  • реквізити;
  • локальні команди;
  • елементів.

Всі ці операції можливі лише на сервері.

Програмна зміна форми має обмеження:

  • Видалити можна лише програмно додані реквізити/команди/елементи. Не можна програмно видалити об'єкти, створені у конфігураторі.
  • Не можна призначити реквізит головним.

Зміна команд форми

Для керування складом команд біля об'єкта КерованаФормає колекція Команди

    Додати (< ИмяКоманды >)

    Кількість ()

    Знайти (< ИмяКоманды >)

    видалити (< Команда >)

Колекція команди доступна як на клієнті, так і на сервері. Змінювати колекцію (методи Додати () та Видалити () ) можна лише на сервері. Шукати та отримувати кількість елементів (методи Знайти () та Кількість ()) можна як на клієнті, так і на сервері.

Як приклад роботи з командами форми створимо нову команду Історія Змін із заголовком «Історія змін…», яка буде викликати обробник ВідобразитиІсторію(). Створення виконується під час відкриття форми.

&На сервері
Процедура При створенні на сервері (Відмова, Стандартна Обробка)
Команда = Команди. Додати( "Історія змін");
Команда . Дія =;
Команда . Заголовок = "Історія змін…";
КінецьПроцедури
&На Клієнті
Процедура Підключається_ВідобразитиІсторію(Команда)
// дії команди
КінецьПроцедури

Обробник команди повинен розташовуватися у формі та мати директиву компіляції & На Клієнті.

Зміна реквізитів форми

Читання складу реквізитів форми виконується функцією ОтриматиРеквізити(< Путь >) , що повертає масив типу РеквізитФорми . Параметр функції вказує шлях до батьківського реквізиту (у вигляді рядка). Якщо параметр опущено або вказано порожній рядок, повертаються реквізити верхнього рівня.

Зміна реквізитів виконується методом ЗмінитиРеквізити(<Реквізити, що додаються>, <ВидаленіРеквізити>) об'єкта КерованаФорма. У параметри Реквізити, що додаютьсяі ВидаленіРеквізитипередаються масиви з елементами типу РеквізитФорми.

Увага!

Процес зміни складу реквізитів є досить ресурсомістким. Фактично виконується перестворення форми. У зв'язку з цим робота з реквізитами форми виконується у пакетному режимі.

Створимо новий реквізит форми з ім'ям Покупець:


Реквізити, що додаються = Новий Масив;
Реквізити, що додаються. Додати(Новий РеквізитФорми(«Покупець», Новий Опис Типів («Довідник Посилання. Контрагенти»), «Клієнт»));

// Зміни складу реквізитів
);

Зміна елементів форми

Для керування складом елементів у об'єкта КерованаФормає колекція Елементи. Колекція має кілька методів:

    Вставити (< Имя>, < ТипЭлемента>, < Родитель>, < Элемент >)

    Додати (< Имя>, < ТипЭлемента>, < Родитель >)

    Кількість ()

    Знайти (< Имя >)

    Перемістити(< Элемент>, < Родитель>, < МестоРасположения >)

    видалити (< Элемент >)

Колекція елементи доступна як на клієнті, так і на сервері. Змінювати колекцію (методи Вставити () , Додати () , Перемістити () та Видалити () можна лише на сервері. Шукати та отримувати кількість елементів (методи Знайти () та Кількість ()) можна як на клієнті, так і на сервері. Елементами колекції можуть бути:

  • ГрупаФорми;
  • ТаблицяФорми;
  • ПолеФорми;
  • КнопкаФорми.

Елементам форми можна програмно призначити обробники подій. Для цього призначений метод Встановити Дію (< ИмяСобытия>, < Действие >) .

Розглянемо кілька найпоширеніших практично прикладів роботи з командами, реквізитами і елементами форми.

Додавання команди та пов'язаної з нею кнопки:

// Створення команди
Команда = Команди. Додати( "Історія змін");
Команда . Дія = «Підключається_Відобразити Історію»; // У формі має бути процедура із зазначеним найменуванням
Команда . Заголовок = "Історія змін…";
// Створення кнопки та зв'язок її з командою
Елемент = Елементи. Додати( "Історія змін", Тип («КнопкаФорми»));
Елемент.Ім'яКоманди = "Історія змін";

Додавання реквізиту та пов'язаного з ним поля введення:

// Опис доданих реквізитів
Реквізити, що додаються = Новий Масив;
Реквізити, що додаються. Додати(Новий РеквізитФорми («Покупець» , Новий ОписТипов ( «ДовідникПосилання.Контрагенти»), «Клієнт»));
// Зміна складу реквізитів
ЗмінитиРеквізити(ДодаютьсяРеквізити));
// Створення поля введення та зв'язок з реквізитом
Елемент = Елементи. Додати(«Покупець», Тип(«ПолеФорми»));
Елемент . Вигляд = ВидПоляФорми. Поле введення;
Елемент . ШляхДаним= «Покупець»;

Призначення елементу форми обробника події:

ЕлементПокупець. Встановити Дію("При зміні" , «Підключається_ПокупецьПріЗміні»);

&На Клієнті
Процедура Підключається_ПокупецьПриЗміні(Елемент)
// Дії події
КінецьПроцедури

Увага!

Процедурам, які встановлюються як обробники подій з коду за допомогою методу ВстановитиДію(), рекомендується встановлювати префікс_підключення_.

Увага!

Завантажити обробку з прикладами програмного пошуку та зміни реквізитів, команд та елементів керованої форми можна.

Клюєв В.В.

http://prof1c.kklab.ru

РОБОТА З ПЕРЕМИКАЧАМИ

Прошу врахувати всіх користувачів сервісу сайт - матеріали розміщую в розділі Початківцям!

8.2 Керовані форми

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

Отже, давайте створимо порожню конфігурацію для розуміння питання або виберіть будь-яку типову.
Перейдіть на групу, яка містить довідники, і для експерименту додайте новий довідник. Хочу помітити, що конфігурація повинна мати основний режим запуску - Керована програма.

Отже, створимо новий довідник і додамо реквізит "Реквізит1", з типом "Булеве"

Тепер перейдемо на вкладку Форми та додамо нову форму.

Отже, керована форма створена, тепер попрацюємо з формою і знайдемо все-таки, де перемикач.
Ось наша форма, і на ній ми бачимо наш реквізит, але у вигляді прапорця

Що ж ми зробили не так?
Давайте подивимося на характеристики реквізиту, чи є там перемикання на вигляд елемента управління.
І ми бачимо, що Поле перемикача тут немає! (У чому ми помилилися?

Мабуть, що вид елемента управління на формі - залежить від типу даних, повернемося до властивостей форми, а саме до вкладки реквізити і змінимо властивості нашого реквізиту - а саме його тип Булеве, на тип Число.

Тепер повернемося знову до властивостей елемента управління і перевіримо, чи додався Вид елемента управління у його властивостях - - - І урра, ми бачимо там вид - Поле перемикача.

Тепер дивимося на форму, що ми бачимо:

Ми бачимо – 3 значення за замовчуванням, 3 перемикачі, але нам потрібно їх два, йдемо знову у властивості реквізиту, і дивимося там властивостей «Кількість колонок»

Для 2 – поставте Кількість колонок – 2.

Це могло б трохи зупинити втомленого програміста)), але тепер і він, і ми це знаємо!

8.2 Традиційні форми.

Занудство з перемикачами у стандартних формах.
Бувають такі моменти, а вони бувають) коли необхідно доопрацювати якусь готову форму, в якій вже є якісь перемикачі, і вам необхідно додати ще перемикачу на цю форму. Ось тут і виникає якесь занудство, яке забирає багато часу, причому часу не на програмування коду - а марна трата часу для того, щоб вивести для користувача ці перемикачі.

Отже, розглянемо приклад. Є такий документ коригування надходження до 1С УПП – він точно є. Нам одного разу знадобилося до нього додати перемикачі, щоб малювалися трохи різні проводки для бухгалтерського обліку. У чому проблема, здавалося б, треба значить треба, зробимо. Але в цій формі вже є 2 перемикачі.

Ось так виглядає форма, в яку нам потрібно приладнати ще перемикачі.


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

Здавалося б, все просто. Створюємо новий реквізит, з типом - "Число" і вставляємо 2 перемикачі, один з яких матиме можливість записати дані в реквізит, а інший - ні.

Додаємо новий елемент управління - Перемикач, у таблиці з кількістю та описом перемикачів додаємо Перемикач2, встановлюємо Перемикач1 першим у групі та натискаємо бл. Розміщуємо створені елементи управління формою. Обновляємо конфігурацію бази даних (F7) та запускаємо на налагодження.

При виконанні (при створенні нового документа в режимі 1С:Підприємство) ми бачимо, що хоч би скільки ми намагалися натиснути на Перемикач2 - нічого не відбувається. Елементи не працюють, оскільки їм потрібно. Тут є одна фішка.
Поверніться до конфігуратора. Виберіть пункт у меню Форма -> Налаштування порядку обходу … (важливо, щоб форма була відкрита на екрані)


Для того щоб наші Перемикачі заробили, необхідно порушити автоматичний порядокта погодитися на ручний. І у формі поставити так, щоб наші перемикачі йшли – один за одним по порядку.

ОК. Оновіть конфігурацію та спробуйте запустити виконання.
Чудово. Все запрацювало.

Додатково - відео(без звуку, тож все зрозуміло)


1С створюються системою автоматично під час використання прикладного рішення. Є основою представлення (відображення) інформації у системі "1С:Підприємство".

Структура форми 1С

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

Частина форми, що відображається (видима користувачеві) описується як дерево, що включає елементи форми (див. мал. нижче, поле "Елементи форми"):

  • групи, що включає інші елементи,
  • поля введення,
  • прапорці,
  • перемикачі,
  • кнопки,
  • таблиці, які включають елементи-колонки тощо.

"Елементи форми 1С"

[згорнути]

Група елементів форми може бути представлена ​​як

  1. панель з рамкою,
  2. панель зі сторінками (закладками),
  3. власне сторінка,
  4. командна панель.

Вся функціональність форми описується як:

  • реквізитів (даних, із якими працює форма);
  • команд (виконаних дій).

Налаштування зовнішнього вигляду керованої форми

Налаштування зовнішнього вигляду керованої форми користувачем

Налаштування зовнішнього виглядукерованої форми може здійснюватися на рівні користувача. Для даної можливості у діях форми існує команда "Ще" - "Змінити форму" (управління лише тими елементами форми, які визначені на етапі розробки або за стандартними правилами автогенерації форми).

"Ще" - "Змінити форму"

Команда "Ще" - "Змінити форму":

Після натискання "Змінити форму" відображається вікно налаштування форми 1С:

[згорнути]

Крім того, в режимі користувача можливо:


  • змінювати порядок прямування форм, переносити їх з однієї колонки в іншу (якщо робочий стіл організований у дві колонки), проте змінити кількість колонок на робочому столі не можна;
  • виводити інформацію як окремих вікон (при виклику навігаційної команди потрібно утримувати клавішу Shift).

Якщо використовуються розділи, то під час виклику команди на панелі навігації, відповідний їй список відображається в робочій області, замінюючи колишній вміст робочої області.

Налаштування зовнішнього вигляду керованої форми розробником

Розробник може впливати на розташування елементів різними установками. Він може визначати порядок елементів, вказувати їх ширину та висоту, а також використовувати:

  • команди самої форми;
  • глобальні команди, використовувані у всій конфігурації;
  • команди, що параметризуються, які будуть відкривати інші форми з урахуванням конкретних даних поточної форми.

Малюнок (зміна форми 1С розробником)

[згорнути]

При розробці форми 1С необхідно:

  1. у редакторі форми включити у форму необхідні реквізити та команди;
  2. створити елементи форми, що їх відображають, визначити порядок елементів, вказати ширину і висоту (при необхідності);
  3. скомпонувати елементи групи (якщо необхідно).
  1. Використовувати рольове налаштування видимості в елементах форм (перегляд та редагування реквізитів по , користувальницьку видимість полів форми за ролями, використання команд за ролями) у випадку великої кількостіролей у конфігурації (від кількох десятків). Натомість слід дотримуватися наступних підходів:
    • при сильних відмінностях зовнішнього вигляду та функціональності форми залежно від наявності тих чи інших ролей у користувача розробляти окремі форми, Спеціалізовані під конкретний набір прав користувача;
    • при незначних відмінностях – виконувати перевірку прав у коді. При цьому слід на увазі, що програмне управління видимістю може знизити швидкість відкриття форми, що потрібно враховувати при виборі між пропонованими підходами.
  2. Використовувати рольове налаштування видимості в командному інтерфейсі конфігурації, командному інтерфейсі основного розділу, а також робочій області початкової сторінки. Замість цього слід використовувати налаштування прав на розділи командного інтерфейсу та об'єкти, включені в командний інтерфейсабо у робочу область. Це дозволяє підвищити передбачуваність поведінки керованого інтерфейсу користувача, а також спростити розслідування помилок.

Більше детальну інформаціюпо роботі з формами в курсі "Робота з формами в "1С:Підприємстві 8.3", http://www.1c.ru/ukr/partners/training/uc1/course.jsp?id=161.

1. Поле введення
2. Прапорець
3. Перемикач

Поле введення

Як правило, поле введення пов'язане з реквізитом об'єкта та відображає його дані. Це, мабуть, один із найпоширеніших елементів, він має кілька способів вибору значення:

Вибір зі списку (РежимВиборуСписку)

Вибір із іншої форми (Кнопка вибору)

Кнопки регулювання

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

Процедура пвВибірНоменклатуриРегулювання(Елемент, Напрямок, СтандартнаОбробка)
//Вибираємо дані для поля введення
// у разі довідник Номенклатура
Запит = Новий Запит;
Запит.Текст=
"ВИБРАТИ
| Номенклатура.Посилання Як Товар

| Довідник.Номенклатура ЯК Номенклатура
|Упорядкувати за
| Номенклатура. Код;
ТЗНоменклатура = Запрос.Выполнить().Выгрузить();

//Шукаємо поточний елемент довідника вказаний у полі введення
ТекЭлемент = ТЗНоменклатура.Найти(Элемент.значение);

Якщо ТекЕлемент = Невизначено Тоді
// якщо не знайшли елемент, тоді встановлюємо номер індексу
// поза таблиці значень, т.к. найперший елемент у
// таблиці значень має індекс 0
ТекІндекс = -1;
Інакше
// якщо елемент знайдений отримуємо його індекс
ТекІндекс = ТЗНоменклатура.Індекс (ТекЕлемент);
КінецьЯкщо;

// розраховуємо новий індекс залежно від натискання кнопки
// мінус перед змінною Напрямок стоїть для того, щоб при
// натисканні на верхню стрілку показувався елемент, що стоїть вище
// а отже з меншим індексом
НовІндекс = ТекІндекс-Напрямок;

// отримуємо кількість елементів у довіднику
// віднімаємо одиницю т.к. всі колекції в 8.1 починаються з 0
КількістьЕлементів = ТЗНоменклатура.Кількість()-1;

Якщо НовІндекс< 0 Или НовИндекс >КількістьЕлементів Тоді
// якщо за зміни індекс знаходиться поза таблиці значень
// тобто. його номер більшого найбільшого індексу або менше 0
// не змінюємо значення та повідомляємо про це користувачеві
Повідомити("Ви досягли межі довідника");
Інакше
// привласнюємо нове значення, "Товар" - це назва колонки таблиці значень
Елемент.значення = ТЗНоменклатура.Отримати(НовІндекс).Товар;
КінецьЯкщо;

КінецьПроцедури

Прапорець

У більшості програм прапорець служить для відображення двох станів: встановлено, знято. У 1с прапорець має три стани, у третьому стані прапорець відображається як встановлений і при цьому затінений. Три стани доступні, тільки якщо дані прапорця - число, при цьому стану мають такі значення:

Перемикач

Перемикач використовується для вибору одного значення з невеликої кількості можливих (бажано не більше п'яти), при цьому значення не можуть поєднуватися. Наприклад: підходить для вибору статі людини. Інший приклад: припустимо, фірма дає одну з трьох знижок на товар, при цьому знижки не сумуються:

В даному випадку зручність використання перемикачів може полягати в тому, що кожен з них може мати якесь значення, яке встановлюється у властивості "Вибирається значення". І тоді "Знижка 5%" може зберігати значення 5 або 0,05.

При використанні перемикачів важливо пам'ятати три речі:

      Перший перемикач має стояти властивість "ПершийВГрупі" (в даному прикладі це перемикач "Знижка 5%").

      Перемикачі, що відносяться за змістом до однієї групи, повинні в налаштуванні порядку обходу йти поспіль, без переривань іншими елементами форми. Порядок обходу визначається з меню "Форма -> Налаштування порядку обходу", для даного прикладуце виглядає так:

  1. Тип вибирається значення встановлюється у перемикача має властивість "ПершийВГрупі".
Сподобалась стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не було враховано.
Спасибі. Ваше повідомлення відправлено
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!