Описи роботи з елементом управління 1С "Перемикач"
Прочитав безліч форумів, і ніде не побачив дохідливого опису роботи з «Перемикач». Ось вирішив написати сам.
На МІЙ погляд найбільш часто зустрічається помилка - це неправильне уявлення про «перемикач». Коли ви розміщуєте декілька "Перемикачів", наприклад 3, на формі, то багато хто вважає що в логіці програми це 3 різні об'єкти, які впливають один на одного. Але, по суті, програма сприймає все 3 «Перемикача» як один об'єкт. І вибір одного з них змінює стан цього об'єкта. Розглянемо приклад.
1. Створимо на формі три перемикача. Для зручності не будемо міняти назв.
2. Виділіть «Переключатель1». В його властивості в розділі «ОСНОВНІ» поставте галочку перший в групі. «ТИП ЗНАЧЕННЯ» виберемо число. (Далі розглянемо чому саме число). Довжину можна поставити дорівнює одиниці, але особливої функціональності це не несе.
3. Виділяємо «Переключатель2» в графі «Вибираємо значення» поставимо 1.
4. Виділяємо «Переключатель3» в графі «Вибираємо значення» поставимо 2.
По суті 3 і 4 - м діями ви встановили прапор, який буде змінюватися при виборі відповідного «Перемикача». У «Переключатель1» по дефолту «Вибираємо значення» стоїть нуль.
5. Перевірте чи варті перемикачі в «порядку обходу» по порядку. (Наприклад: 13,14,15) (Рис.1). необхідний нерозривний порядок обходу по перемикачем. включений автопорядок обходу (позиції пронумеровані 13, 15, 20) (Рис.2) в цьому випадку перемикачі один під одним працювати не будут.Следует зняти з форми використання автопорядка і якщо необхідно вручну вказати порядок проходження.
Як встановити порядок обходу для реквізитів. Перебуваючи в формі, в меню "Діалог" треба зняти галку "Автоматичний порядок обходу". Після цього можна або скористатися "Діалог" -> "Налаштування порядку обходу", або "Діалог" -> "Порядок обходу". Найбільш зручним, мені здається другий спосіб. При цьому способі у кожного реквізиту з'являється картинка з номером реквізиту. Вам залишається тільки клацати мишкою по цифрах, вибираючи реквізити в тому порядку, який потрібен Вам.
6. Виділяємо «Переключатель1» і пишемо у нього потрібну нам процедуру.
наприклад:
7. Тиснемо F7. Тиснемо F5. Дивимося все працює ми молодці. І великий БОС дає нам премію.
ПОЯСНЕННЯ До КОДУ
Чому скрізь стоїть "Переключатель1"? Так як вже було сказано, програма сприймає всі три елементи як один, і так як "Переключатель1" є першим в групі, то Його програма і сприймає як весь елемент, якщо ви поставите "Переключатель2" основним в групі то перевірку правельно треба буде проводити по "Переключатель2".
Ну а звідки "0", "1", "2"? Ті значення, які приймає об'єкт при перемиканні "Перемикачів" їх ми задавали в пункті 3 і 4.
Даний код наведено як приклад роботи з перемикачами. На мій погляд так наочніше і зрозуміло. Але варто згадати, що в "ТіпЗначенія" можна вибирати відразу те, що потрібно - зумовлене значення довідника, перерахування, наприклад, або строкове значення. Тобто в зазначеному прикладі можна було відразу призначити перемикачів як у допустимих 0,1,2, а відразу "неоплачена", "Частково оплачено", "Оплачено". І тоді код зведеться в одну строчку:
Результат роботи буде таким же.
Перемикачі в керованих формах (УФ) зробили більш інтуїтивними.
При створенні Перемикача потрібно пам'ятати про двійці Реквізит, Елемент форми.
В першу чергу вам необхідна, створити Реквізит форми. Тип у реквізиту встановлюєте, такий, які значення буде приймати ваш перемикач. Я вибрав тип Рядок. Тут у вас є два варіант: якщо ви створили реквізит Об'єкту, то прийняте вашим перемикачем значення буде зберігатися в БД, якщо ви просто додаєте в список реквізитів форми, то результат прийняте вашим перемикачем зберігатися не буде.
Далі перетягуємо потрібний нам Реквізит в ЕлементиФорми. При створенні елемента форми, елемент у властивостях "Вид" - буде мати тип "Поле введення". Вибираємо зі списку "Поле перемикач". В результаті у вас вийде форма приблизно наступного вигляду:
Заповнюємо заголовок елемента форми, колір, шрифт, розташування та інші красивості на ваш смак.
У властивостях елементу форми є пункт. "Список Вибору" - в ньому ви заводите Значення, які буде приймати ваш перемикач при виборі того чи іншого пункту. У своєму прикладі я додав рядки з значеннями "Записати", "ОтменаПроведенія", "Проведення".
Після цього ваш перемикач готовий до роботи.
Залежно від того чи є ваш перемикач реквізитом Об'єкту або Реквізитом Форми для отримання зберігається в ньому значення ви використовуєте наступний код: