Повний синтаксис (натисніть, щоб розкрити)
СписокЗначень
Опис:
Список значень - це об'єкт, що не зберігається в базі даних, що дозволяє будувати для вирішення інтерфейсних завдань динамічні набори значень і маніпулювати ними (додавати, редагувати, видаляти елементи, сортувати). Він може бути заповнений значеннями будь-якого типу, тобто. в одному списку типи збережених значень можуть бути різними. Одним із прикладів використання даного об'єкта може бути організація вибору конкретного документа зі списку можливих документів, сформованого за складним алгоритмом.
Елементи колекції: ЕлементСпискаЗначень
Для об'єкта доступний обхід колекції за допомогою оператора Для кожного… З… Цикл. Під час обходу вибираються елементи колекції.
Можливе звернення до елемента колекції за допомогою оператора [...]. Як аргумент передається індекс елемента ( нумерація з 0).
Властивості:
Методи:
Конструктори:
&На Клієнті Процедура ВиконатиКод(Команда) /// Як створити список значень у 1с 8.3, 8.2Список = Новий СписокЗначень; /// Як додати елемент до списку значень у 1с 8.3, 8.2 // Параметри методу додати:// - значення // - Вистава // - Позначка (необ.) // - картинка (необ.)Перелік. Додати ( 1980 ) // значення елемента "Рік народження Васі"// уявлення); Перелік. Додати(1985 ) "Рік народження Юлі") ; // значення можуть бути різних типів Перелік. Додати("Поліна", "Ім'я дитини"); /// Як вставити елемент до списку значень у 1с 8.3, 8.2 // Вставляємо в позицію №2 (елементи нумеруються з 0) // елемент зі значенням 2010 та поданням // "Рік народження їхньої спільної доньки"Перелік. Вставити(2 , 2010 , "Рік народження їхньої спільної доньки") ; /// Як обійти елементи списку значень 1С 8.3, 8.2Для Кожного Елемент З Список Цикл Повідомити( Елемент. Подання + ": " + Рядок(Елемент. Значення) ) ; КінецьЦикл; /// Як очистити список значень 1с 8.3, 8.2Перелік. Очистити(); Перелік. Додати("Понеділок"); Перелік. Додати("Вівторок"); Перелік. Додати("Середовище"); /// Як дізнатися кількість елементів списку значень, а також /// отримати елемент списку за його індексом 1с 8.3, 8.2 // нумерація з нуляДля Індекс = 0 Список. Кількість() - 1 Цикл Повідомити(Список[ Індекс] ) ; КінецьЦикл; /// Як знайти елемент списку за його значенням 1с 8.3, 8.2Знач Вівторок = Список. ЗнайтиПоЗначению("Вівторок") ; /// Як дізнатися індекс елемента у списку 1с 8.3, 8.2Повідомити(Список. Індекс(ЗначВівторок) ) ; // 1, оскільки нумерація з нуля /// Як відсортувати список за його значеннями 1с 8.3, 8.2 // було: понеділок, вівторок, середаПерелік. СортуватиПоЗначенню(НапрямокСортування. Убувши) ; // стало: середа, понеділок, вівторок /// Як видалити елемент зі списку значень 1С 8.3, 8.2 // видаляємо перший елемент // Параметр: елемент списку // або індекс елемента// можна так Список. Видалити (Список [0]); // або так // Список. Видалити (0); /// Як зрушити елемент списку значень 1с 8.3, 8.2 // зрушуємо нульовий елемент однією позицію вперед // було: понеділок ВівторокПерелік. Зрушити (0, 1); // стало: вівторок понеділок /// Як зробити копію списку в 1с 8КопіяСписку = Список. Копіювати() ; Кольори = Новий СписокЗначень; Кольори. Додати("Червоний") ; Кольори. Додати("Зелений") ; Кольори. Додати("Синій" ) ; /// Як вивантажити значення списку масив в 1с 8.3, 8.2МасивКвітів = Кольори. ВивантажитиЗначення() ; /// Як завантажити значення списку з масиву 1с 8.3, 8.2Кольори. ЗавантажитиЗначення(МасивКвітів) ; КінецьПроцедури /// Як зробити немодальний вибір значення зі списку /// значень 1с 8.3, 8.2&НаКлієнті Процедура ЯкЗробитиНемодальнийВибірЗначення(Команда) Кольори = Новий СписокЗначень; Кольори. Додати("Червоний") ; Кольори. Додати("Зелений") ; Кольори. Додати("Синій" ) ; //Процедура ПісляВиборуЕлементу визначена трохи нижчеОповіщенняПісляВиборуЕлементу = Новий ОписОповіді( "ПісляВиборуЕлементу", цей об'єкт ) ; Кольори. ПоказатиВибірЕлементу( ОповіщенняПісляВиборуЕлементу, "Виберіть улюблений колір"); КінецьПроцедури &НаКлієнті Процедура ПісляВиборуЕлементу(Елемент, Параметри) Експорт Якщо Елемент<>Невизначено Тоді Повідомити(Елемент. Значення) ; КінецьЯкщо ; КінецьПроцедури /// Як зробити немодальну позначку значень зі списку /// значень 1с 8.3, 8.2&НаКлієнті Процедура ЯкЗробитиНемодальнуПозначкуЗначень(Команда) Кольори = Новий СписокЗначень; Кольори. Додати("Червоний") ; Кольори. Додати("Зелений") ; Кольори. Додати("Синій" ) ; //Процедура ПісляВідміткиЕлементів визначена трохи нижчеОповіщенняПісляВідміткиЕлементів = Новий ОписОповіді( "ПісляВідміткиЕлементів", цей об'єкт ) ; Кольори. ПоказатиПозначкуЕлементів( ОповіщенняПісляВідміткиЕлементів, "Виберіть улюблені кольори"); Кольори. ЗаповнитиПомітки(Істина); КінецьПроцедури &НаКлієнті Процедура ПісляВідміткиЕлементів(Елементи, Параметри) Експорт Якщо Елементи<>Невизначено Тоді Для Кожного Колір З Елементи Цикл Якщо Колір. Позначка Тоді Повідомити(Колір. Значення) ; КінецьЯкщо ; КінецьЦикл; КінецьЯкщо ; КінецьПроцедури /// Як зробити модальний вибір значення зі списку 1с 8.3, 8.2&НаКлієнті Процедура ЯкЗробитиМодальнийВибірЗначення(Команда) Кольори = Новий СписокЗначень; Кольори. Додати("Червоний") ; Кольори. Додати("Зелений") ; Кольори. Додати("Синій" ) ; ВибКолір = Кольори. ВибратиЕлемент( "Виберіть улюблений колір"); Якщо ВибКолір<>Невизначено Тоді Повідомити(ВибКолір. Значення) ; КінецьЯкщо ; КінецьПроцедури /// Як зробити модальну позначку значень зі списку /// значень 1с 8.3, 8.2&НаКлієнті Процедура ЯкЗробитиМодальнуВідміткуЗначень(Команда) Кольори = Новий СписокЗначень; Кольори. Додати("Червоний") ; Кольори. Додати("Зелений") ; Кольори. Додати("Синій" ) ; Якщо кольори. Відзначити Елементи( "Виберіть улюблені кольори") Тоді Для Кожного Колір З Колір Цикл Якщо Колір. Позначка Тоді Повідомити(Колір. Значення) ; КінецьЯкщо ; КінецьЦикл; КінецьЯкщо ; // а ось так можна разом встановити всі позначки // Список у певне значенняКольори. ЗаповнитиПомітки(Істина); КінецьПроцедури /// Завантажити та виконати ці приклади на комп'ютері |
Дуже часто буває необхідно на формі дати можливість користувачеві вибрати налаштування на формі перед натисканням кнопки «Виконати все». Коли потрібно вибрати одне значення з кількох зумовлених – часто використовується список значень 1С, що випадає, на формі.
Список значень 1С на формі, що випадає, — додайте на форму товстого клієнта поле вибору, уточніть його назву. Щоб користувач не міг змінювати список, зніміть галочку «Редагування тексту» у властивостях поля вибору.
Сам список вибору додамо програмно в обробнику форми «ПріВідкриття». У полі вибору є підпорядкований список значень ЕлементиФорми.ІмяПоляВибору.СписокВибору, а для встановлення значення за замовчуванням, і для визначення вибраного значення ЕлементиФорми.ІмяПоляВибору.Значення:
Процедура ПріВідкриття()
ЕлементиФорми.ВибірЗначення.СписокВибору.Очистити();
ЕлементиФорми.ВибірЗначення.СписокВибору.Додати(0, "Створити документ");
ЕлементиФорми.ВибірЗначення.СписокВибору.Додати(1, "Змінити документ");
ЕлементиФорми.ВибірЗначення.СписокВибору.Додати(2, "Видалити документ");
ЕлементиФорми.ВибірЗначення.Значення = 0;
КінецьПроцедури
Випадаючий список значень 1С на формі — у тонкому клієнті на форму потрібно створити реквізит форми, в якому зберігатимемо результат, наприклад з типом рядок. Перетягніть його на форму.
Перелік значень 1С на формі — Варіант 1)
- Увімкнемо кнопку вибору списку
- У якості «Список вибору» натисніть «…» та введіть варіанти
- Результат вибору буде збережено у вибраному реквізиті
Перелік значень 1С на формі — Варіант 2)
- Увімкнемо кнопку вибору списку
- Додамо обробник «ПочатокВиборуЗСписку»
&На Клієнті
Процедура ВибранеЗначенняПочатокВиборуСписку(Елемент, СтандартнаОбробка)
Елементи.ВибранеЗначення.СписокВибору.Додати("Додати документ");
Елементи.ВибранеЗначення.СписокВибору.Додати("Редагувати документ");
Елементи.ВибранеЗначення.СписокВибору.Додати("Видалити документ");
КінецьПроцедури
Результат аналогічний. Потрібно, якщо список має бути заповнений посиланнями на довідники/документи, які не є визначеними.
Випадаючий список значень 1С на формі - Варіант 3)
Цей варіант працює аналогічно, але інтерфейсно виглядає інакше.
Для того щоб відкрити форму вибору з відбором 1с 8.2 (звичайні форми), нам потрібно виконати деякі дії. Спочатку ми її отримаємо. Після цього виставимо відбір і програмно відкриємо, приклад коду:
Відбір на формі у полі введення 1С 8.2 з декількома значеннями
У прикладі вище ми розглянули як встановлювати відбір на формі виборуза конкретним значенням. Тепер давайте розглянемо ситуацію коли потрібно підставити кілька значень, це може бути як масив, так і вивантаження з результату запиту. Це відбір у полі введення 1сз кількома значеннями.
Для початку отримуємо форму вибору, у параметрах передаємо "Елемент" (власника), встановлюємо прапор режиму вибору. Потім створюємо список значень та масив, відзначаємо що як відбір коли встановлюється вид порівняння у списку, може бути об'єкт тільки з типом СписокЗначень. Додаємо елементи в масив, потім цей масив завантажуємо в СписокЗначень, який у результаті ми встановлюємо у відборі. Також не забуваємо увімкнути прапор використання даного відбору, та встановити ВидПорівняння.
Установка відбору в полі введення на формі 1С 8.3, подія ПочатокВибору
Тепер розглянемо відбір у полі введення на керованій формі 1С 8.3. Знайдемо на формі елемент, що цікавить нас, в якому ми будемо встановлювати відбір, у нашому випадку це поле «Організація». Знаходимо подію «Початок Вибору», клацаємо на лупу і опиняємось у процедурі. Ми бачимо параметр Дані Вибору, цей параметр має тип СписокЗначень. Для того, щоб обмежити вибір необхідними елементами, нам необхідно заповнити СписокЗначень. Елементи вибрати можемо тільки на сервері, тому створюємо процедуру з директивою компіляції &На сервері. У цій процедурі заповнюємо дані вибору.