Мій бізнес – Франшизи. Рейтинги. Історія успіху. Ідеї. Робота та освіта
Пошук по сайту

Програмне додавання та зміна елементів керованих форм. Програмне додавання та зміна елементів керованих форм 1c проблеми з керованими формами

Минулого уроку ми з Вами розглянули для звичайного (товстого) клієнта. У версії платформи 1С 8.2. Вони використовуються нові екранні форми 1С 8.2. Їх називають керовані форми 1С 8.2.

Керовані форми 1С 8.2 - це майбутнє 1С. Вони відрізняються від звичайних форм 1С 8.2 тим, що генеруються системою автоматично на основі спеціальних налаштувань (звичайні форми просто малюються програмістом за своїм бажанням).

Відмінності розробки керованих форм 1С 8.2 від традиційних – значні. Тому ми зібралися сьогодні окремо обговорити створення та зміну керованих форм 1С 8.2.

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

Якщо Ви займалися розробкою конфігурацій 1С раніше - при відкритті редактора керованої форми 1С 8.2 Вас відразу поставить у глухий кут те, що мишкою неможливо вплинути на форму 1С 8.2 взагалі.

Не можна змінити форму 1С 8.2, не можна пересунути елемент, не можна навіть подивитись властивості поля як раніше – клікнувши двічі мишкою поле на формі 1С 8.2.

Тепер основа розробки форми 1С 8.2 не прив'язка полів до координат на формі, а спеціальні налаштування. Система автоматично генерує керовану форму 1С 8.2 на підставі цих налаштувань.

Налаштування складаються зі списку елементів форми 1С 8.2, розміщених у редакторі у верхньому лівому куті. До елементів форми 1С 8.2 входять:

  • Реквізити
  • Команди (нове поняття 1С 8.2 можуть виглядати як кнопки або пункти меню)
  • Групи (для об'єднання реквізитів та команд).

Відповідно налаштування цих елементів знаходяться не у властивостях полів, а у властивостях цих елементів налаштування (меню правою кнопкою миші, пункт Властивості).

Як працюють керовані форми 1С 8.2

Робота з керованими формами 1С 8.2 відрізняється для користувача. Вони мають більше можливостей, але незвичні тим, хто працює з 1С вже давно.

Насамперед відрізняється розташування звичних елементів на формі 1С 8.2. Командна панель завжди знаходиться вгорі.

Ліва частина командної панелі настроюється. У ній зазвичай знаходяться такі типові кнопки, як Записати та Провести.

Права частина командної панелі – нове стандартне меню форми 1С Усі дії. Це меню дозволяє керувати формою 1С 8.2 за своїм бажанням, на зразок, як у звіті СКД налаштування дозволяють значно змінити вигляд звіту.

Довільні пункти меню 1С Усі дії

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

Пункт Налаштувати список меню 1С Усі дії

Якщо на формі 1С 8.2 є список, то в меню є команда Налаштувати список та Вивести список.
Якщо команда Вивести список Вам вже знайома - вона дозволяє будь-який список в 1С зберегти Excel/вивести на друк, то друга команда - нова.

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

Функціонал кнопки Знайти звичайно ж не можна порівняти з відборами, але вони нікуди і не поділися!
Тепер вони знаходяться в меню Налаштувати список. Відбір тепер можна робити за будь-яким полем, а крім нього можна зробити сортування та умовне оформлення так само, як це можна робити у звітах СКД.

Пункт Змінити форму меню 1С Усі дії

Пункт Змінити форму дозволяє подібним чином змінити як список на формі 1С 8.2, а й саму форму 1С 8.2.

Користувач самостійно може увімкнути або вимкнути видимість полів на формі 1С 8.2, ширину та висоту, активізацію поля за замовчуванням при відкритті тощо.

Використання керованих форм 1С 8.2 та звичайних форм 1С

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

Для цього необхідно і увійти до властивостей конфігурації (верхній елемент у вікні конфігурації).

У властивості конфігурації в 1С 8.2 з'явилися дві нові галочки, які дозволяють включити нестандартне використання форм 1С.

Створення керованих форм 8.2

Додавання нової форми 1С 8.2 здійснюється також, як і раніше – за допомогою кнопки Ins на клавіатурі або кнопки Додати. Щоб увійти до існуючої – натисніть на неї двічі мишкою.

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

Конструктор запропонує Вам вибрати вид форми – форму елемента, списку. Тут можна додати або прибрати командні панелі на формі. Найчастіше ці настройки залишаються як є, за умовчанням.

Відкривається форма, заповнена за замовчуванням — до неї додалися всі реквізити об'єкта 1С, які є. Відзначити галочками конкретний список необхідних полів можна другий закладці конструктора.

Редактор форми складається із трьох розділів.

  • У верхньому лівому куті знаходиться список елементів форми. Він складається з полів, команд та груп, які дозволяють об'єднувати елементи. Список команд окремо можна переглянути там же на закладці Командний інтерфейс.
  • У верхньому правому куті знаходиться список доступних реквізитів форми та реквізитів об'єкта (розкрийте хрестик біля реквізиту Об'єкт).
  • Внизу знаходиться перегляд отриманої форми.

Доступні реквізити Ви можете перетягнути вліво, і він стане елементом форми (полем на формі).

Якщо Вам потрібно додати кнопку або пункт меню – праворуч на закладці Команди, Вам потрібно створити нову Команду. Це оболонка для функції у модулі форми. Крім вказівки, власне, яка функція буде викликатися, Ви можете призначити уявлення – наприклад, картинку, а також залежність видимості від функціональної опції.

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

До списку елементів форми (полів) можна перетягнути реквізит об'єкта/форми, а й просто додати (кнопка Додати або Ins). Зокрема, можна новий об'єкт форми – Групу.

Група може бути командною панеллю (курсор має стояти на рядку Форма). Тоді Ви перетягуєте до неї команди і вони стають кнопками.

Група може бути "звичайною". Тоді це спосіб угруповання полів як вертикально, і горизонтально. Найменування групи можна забрати у властивостях.

Група може бути панеллю (сторінки). Верхня додана група є панеллю, а вкладені групи цього типу є сторінками. На сторінки вже перетягуються поля.

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

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

Властивості самої форми, в тому числі її розміри задаються у кореневого елемента форми з аналогічною назвою Форма.

Обробники подій (відповідь на дії користувача) тепер поділилися на два види. Старі – як і раніше вказуються у властивостях форми та полів (наприклад, При Зміні та При Відкритті форми). Нові – стали командами та використовуються для пунктів меню та кнопок.

Ми всі знаємо, що компанія "1С" мала багато різних версій платформи 1С, нас зараз цікавитимуть одні з останніх версійна момент написання цієї статті, це версії 1С 8.2 та 1С 8.3. Якщо Вам доводилося працювати в обох цих версіях, то Ви, швидше за все, помітили різницю в інтерфейсах даних версій, для користувачів вони відрізняються лише зовні. По суті, вибір звичайної або керованої програмикаже системі, які форми для відображення потрібно запускати, звичайні або керовані, а також який клієнт програми буде використовуватися за замовчуванням, товстий або тонкий. Більш детальну інформацію про клієнтів читайте у статті «Що таке товстий і тонкий клієнт у 1С, а також їх відмінності».

Звичайний додаток 1С (звичайні форми, звичайний інтерфейс, версія 1С 8.2)

У 1С 8.2 можлива робота тільки із звичайними формами, у режимі звичайного додатку. На зображенні нижче показано базу в режимі роботи " звичайний додаток 1С" (звичайні форми).

Керований додаток 1С (керовані форми, керований інтерфейс, версія 1С 8.3)

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

Чим відрізняються звичайне та кероване додаток 1С?

Як ми вже з'ясували звичайний додаток та керований додаток це такі види запуску програми 1С. Причому залежно від значення виду запуску 1С ( звичайний або керований додаток), за замовчуванням завантажуватиметься певний інтерфейс ( звичайні чи керовані форми), звідси і стільки синонімів цього поняття. Хочемо відзначити, що відмінності в інтерфейсах досить суттєві, керований інтерфейс був повністю перероблений. У принципі, це і є всі відмінності, які бачать рядові користувачі програми 1С. Що стосується програмістів, то керований інтерфейс вимагає написання видозміненого коду, адже технологія вже ведеться в 1С 8.3, а не в 1С 8.2, звідси і всі наслідки. Код також має бути розділений на клієнтський та серверний, вказується це за допомогою відповідних директив у конфігураторі.

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

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

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

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

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

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

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

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

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

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

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

    Кількість ()

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

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

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

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

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

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

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

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

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

Увага!

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

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


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

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

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

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

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

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

    Кількість ()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Увага!

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

Увага!

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

У цій статті ми познайомимося з основними аспектами роботи з керованою формою 1С 8.3. Що таке форма і навіщо вона потрібна? Форма це основний об'єкт, з якого здійснюється взаємодія користувача з програмою. Тобто за допомогою форми користувач здійснює введення інформації в програму, а також на форму виводитися потрібна для користувача інформація.

Основне завдання розробника будь-якої форми (керованої чи звичайної) – це надати користувачеві зручний механізм взаємодії з програмою.

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

Докладно питання роботи з керованими формами зокрема та з керованим додатком загалом розглянуті у книзі «Основи розробки у 1С: Таксі. Розробка керованого додатка за 12 кроків». Ця книга стане справжньою підмогою для тих, хто тільки-но почав знайомитися з розробкою керованого додатка.

Книга «Основи розробки в 1С: Таксі» відмінно підійде тим, хто вже почав програмувати та відчуває певні складнощі з цією темою і тим, хто вже давно програмує, але жодного разу ще не працював із керованими формами 1С

  1. без складних технічних термінів;
  2. Понад 600 сторінок практичного матеріалу;
  3. Кожен приклад супроводжується малюнком (скриншот);

Промо-код на знижку в 15% 48PVXHeYu

Іноді здається, що вивчити мову програмування у 1С складно та важко. Насправді програмувати в 1С легко. Допоможуть Вам легко та швидко освоїти програмування у 1С мої книги: та «Основи розробки у 1С: Таксі»

Вивчіть програмування в 1С за допомогою моєї книги «Програмувати в 1С за 11 кроків»

  1. Без складних технічних термінів.
  2. Понад 700 сторінок практичного матеріалу.
  3. Кожне завдання супроводжується малюнком (скриншот).
  4. Збірник завдань для домашнього опрацювання.
  5. Книга написана зрозумілим і простою мовою- Для новачка.
  6. Книга посилається на електронну поштуу форматі PDF. Можна відкрити будь-який пристрій!


Якщо Вам допоміг цей урок вирішити якусь проблему, сподобався чи виявився корисним, то Ви можете підтримати мій проект, перерахувавши будь-яку суму:

можна сплатити вручну:

Яндекс.Гроші — 410012882996301
Web Money - R955262494655

Вступайте до моїх груп.

Клюєв В.В.

http://prof1c.kklab.ru

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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