Інтернет Windows Android

1с список значень на формі тип значення. Обмеження типу в списку значень

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

Для цієї мети у реквізиту форми з типом "Список значень" існує властивість "Тип значення". Однак, якщо ми хочемо вивести на форму таблицю (або поле), пов'язану з реквізитом об'єкта (не форми), такого властивості в палітрі властивостей не опиниться. Що робити?

Розглянемо приклад, в якому ми хочемо вивести на форму значення відбору варіанта звіту. У нас буде один елемент відбору, з видом порівняння "У списку", тому виводити на форму стандартний відбір компонування даних недоцільно. Для цього створимо новий реквізит звіту з типом "Список значень", через нього будемо управляти значенням відбору компонування. Але у реквізиту звіту немає властивості "Тип значення".

Створимо на формі ще один реквізит з типом "Список значень". У нього вже буде це властивість. Виберемо в цій властивості потрібний нам тип даних і виведемо цей реквізит на форму.

У вас є питання, потрібна допомога консультанта?

Тепер нам потрібно налаштувати синхронізацію реквізиту форми і реквізиту звіту. В цьому випадку код модуля форми буде виглядати приблизно так:

Зауважу, що передача елементів списку по одному в циклі зроблена не випадково. якщо написати

ЕтаФорма.ЗначеніеОтбора \u003d ЕлементОтбора.ПравоеЗначеніе;

за аналогією з

Отчет.ЗначеніеОтбора \u003d ЕлементОтбора.ПравоеЗначеніе;

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

ЮНИТ 10. СПИСОК ЗНАЧЕНЬ У МОВІ 1C (В ПРИКЛАДАХ)

опис:

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

Елементи колекції: ЕлементСпіскаЗначеній

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

Можливо звернення до елементу колекції за допомогою оператора [...]. Як аргумент передається індекс елемента (нумерація з 0).

властивості:

ДоступниеЗначенія

Застосовується у випадках, коли слід обмежувати доступ до завдання значень для елементів списку деяким підмножиною значень допустимого типу (якщо для списку встановлено опис типу). Не визначене - обмеження відсутні.

Установка цієї властивості впливає на роботу діалогу редагування списку значень, елементів управління "Таблиця" і "Поле введення", пов'язаних зі списком значень, а також на програмне додавання-вставку нового елемента списку значень і установку значень елементам списків.

ТіпЗначенія

Визначає тип для значень, які можуть зберігатися в елементах даного списку значень.

Вставити (,)

вставляє новий елемент в список значень на позицію з уяяказан-ним індексом.

ВибратьЕлемент (,)

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

ВигрузітьЗначенія ()

Створює масив і копіює в нього значення елементів списку значень.

Додати (,) Додає новий елемент в кінець списку значень.

ЗагрузітьЗначенія ()

Завантажує список значень значеннями з переданого масиву. При цьому всі колишні елементи списку видаляються.

ЗаполнітьПометкі ()

Встановлює позначку у всіх елементів списку значень. Індекс (Олемент\u003e)

Отримує індекс елемента в списку значень. Якщо не знайдено, то повертається -1.

Кількість ()

Отримує кількість елементів списку значень.

НайтіПоЗначенію ()

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

НайтіПоІдентіфікатору ()

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

ОтметітьЕлементи ()

Встановлює або знімає (інтерактивно) позначки у елементів списку значень. повертає істина, Якщо в діалозі натиснута кнопка "ОК", брехня - в іншому випадку.

Очистити ()

Очищає список значень, видаляючи з нього всі елементи.

ПоказатьВиборЕлемета (,)

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

ПоказатьОтметкуЕлементов (,)

Призначений для інтерактивної установки станів позначок у елементів списку значень.

Отримати ()

Отримує значення за індексом. Працює аналогічно оператору);

КонецЦікла;

III Як знайти елемент списку по його значенню в 1C

ЗначВторнік \u003d Спісок.НайтіПоЗначенію ( "Вiвторок");

III Як дізнатися індекс елементу в списку в 1C

Повідомити (Спісок.Індекс (ЗначВторнік));

// 1, так як нумерація з нуля

III Як відсортувати список по його значенням в 1C

Спісок.СортіроватьПоЗначенію

(НаправленіеСортіровкі.Убив);

III Як видалити елемент зі списку значень в 1C

// видаляємо перший елемент Список. Видалити (Список);

// параметр: елемент списку

III Як зрушити елемент списку значень в 1C

// зрушуємо перший елемент на одну позицію вперед Спісок.Сдвінуть (0, 1);

III Як зробити копію списку в 1C

КопіяСпіска \u003d Спісок.Скопіровать);

Кольори \u003d Новий СпісокЗначеній ();

Кольору. Додати ( "Червоний");

Кольору. Додати ( "Зелений");

Кольору. Додати ( "Синій");

III Як вивантажити значення списку в масив в 1C

МассівЦветов \u003d Кольори. ВигрузітьЗначенія ();

III Як завантажити значення списку з масиву в 1C

Цвета.ЗагрузітьЗначенія (МассівЦветов);

III Як зробити модальний вибір значення зі списку в 1C

ВибЦвет \u003d

Цвета.ВибратьЕлемент ( "Виберіть улюблений колір"); Якщо ВибЦвет Про Не визначено Тоді Повідомити (ВибЦвет.Значеніе);

КонецЕсли;

III Як зробити модальну оцінку значень зі списку в 1С

Якщо Цвета.ОтметітьЕлементи ( "Виберіть улюблені кольори") Тоді

Для Кожного Колір З Кольори Цикл Якщо Колір. Позначка Тоді Повідомити (Цвет.Значеніе);

КонецЕсли;

КонецЦікла;

КонецЕсли;

// можна разом встановити всі позначки в певне значення Кольори. ЗаполнітьПометкі (Істина);

Повний синтаксис (натисніть, щоб розкрити)

СпісокЗначеній

опис:

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

Елементи колекції: ЕлементСпіскаЗначеній

Для об'єкта доступний обхід колекції за допомогою оператора Для кожного ... З ... Цикл. При обході вибираються елементи колекції.

Можливо звернення до елементу колекції за допомогою оператора [...]. Як аргумент передається індекс елемента ( нумерація з 0).

властивості:

методи:

Вставити (Індекс, значення, Подання, Позначка, Картинка) Вставляє новий елемент в список значень на позицію із зазначеним індексом.ВибратьЕлемент (Тема, Елемент) Викликає вікно для інтерактивного вибору одного з елементів, що входять в список значень. елемент - елемент, на який слід спочатку спозиционировать список значень при інтерактивному виборі. Якщо значенням параметра не є елемент списку значень, що входить до цього списку, позиціонування не відбудеться.ВигрузітьЗначенія() Створює масив і копіює в нього значення елементів списку значень.Додати (Значення, Подання, Позначка, Картинка) Додає новий елемент в кінець списку значень.ЗагрузітьЗначенія(МассівЗначеній) завантажує список значень значеннями з переданого масиву. При цьому всі колишні елементи списку видаляються.ЗаполнітьПометкі(Позначка) Встановлює позначку у всіх елементів списку значень.Індекс (Елемент) Отримує індекс елемента в списку значень. Якщо не знайдено, то повертається -1.Кількість () Отримує кількість елементів списку значень.НайтіПоЗначенію(ІскомоеЗначеніе) Здійснює пошук значення елемента списку значень. Якщо жоден елемент не зберігає значення, рівного шуканого, то повертається значення Не визначене. НайтіПоІдентіфікатору(Ідентифікатор) Отримує елемент списку значень за ідентифікатором. Якщо елемент не знайдений, то повертається Не визначене. ОтметітьЕлементи(Тема) Встановлює або знімає (інтерактивно) позначки у елементів списку значень. повертає істина, Якщо в діалозі натиснута кнопка "ОК", брехня - в іншому випадку.Очистити () Очищає список значень, видаляючи з нього всі елементи.ПоказатьВиборЕлемента(ОпісаніеОповещеніяОЗакритіі, Тема, Елемент) Викликає вікно для інтерактивного вибору одного з елементів, що входять в список значень.ПоказатьОтметкуЕлементов(ОпісаніеОповещеніяОЗакритіі, Заголовок) Призначений для інтерактивної установки станів позначок у елементів списку значень.Отримати (Індекс) Отримує значення за індексом. Працює аналогічно оператору.Зрушити (Елемент, Зсув) Зрушує елемент списку значень на задану кількість позицій вперед або назад.Скопіювати () Створює копію списку значень.СортіроватьПоЗначенію(Напрям) Сортує список значень в порядку зростання або зменшення збережених елементами значень. Див. Приклад нижче.СортіроватьПоПредставленію(Напрям) Сортує список значень по зростанням або за спаданням в алфавітному порядку уявлень входять до складу списку значень елементів. Див. Приклад нижче.Видалити (Елемент) Видаляє елемент зі списку значень, де елемент - індекс, що видаляється елемента, або сам елемент.

конструктори:

новий СпісокЗначеній
& НаКліенте Процедура ВиполнітьКод (Команда) /// Як створити список значень в 1с 8.3, 8.2 Список \u003d Новий СпісокЗначеній; /// Як додати елемент до списку значень в 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 Перелік. Очистити (); Перелік. Додати ( "Понедельник"); Перелік. Додати ( "Вiвторок"); Перелік. Додати ( "Среда"); /// Як дізнатися кількість елементів списку значень, а також /// отримати елемент списку за його індексом в 1с 8.3, 8.2 // нумерація з нуля Для Індекс \u003d 0 За Список. Кількість () - 1 Цикл Повідомити (Список [Індекс]); КонецЦікла; /// Як знайти елемент списку по його значенню в 1с 8.3, 8.2 ЗначВторнік \u003d Список. НайтіПоЗначенію ( "Вiвторок"); /// Як дізнатися індекс елементу в списку в 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 КопіяСпіска \u003d Список. Скопіювати (); Кольори \u003d Новий СпісокЗначеній; Кольору. Додати ( "Червоний"); Кольору. Додати ( "Зелений"); Кольору. Додати ( "Синій"); /// Як вивантажити значення списку в масив в 1с 8.3, 8.2 МассівЦветов \u003d Кольори. ВигрузітьЗначенія (); /// Як завантажити значення списку з масиву в 1с 8.3, 8.2 Кольору. ЗагрузітьЗначенія (МассівЦветов); КонецПроцедури /// Як зробити Немодальний вибір значення зі списку /// значень в 1с 8.3, 8.2 & НаКліенте Процедура КакСделатьНемодальнийВиборЗначенія (Команда) Кольори \u003d Новий СпісокЗначеній; Кольору. Додати ( "Червоний"); Кольору. Додати ( "Зелений"); Кольору. Додати ( "Синій"); // процедура ПослеВибораЕлемента визначена трохи нижче ОповещеніеПослеВибораЕлемента \u003d Новий ОпісаніеОповещенія ( "ПослеВибораЕлемента", ЕтотОб'ект); Кольору. ПоказатьВиборЕлемента (ОповещеніеПослеВибораЕлемента, "Виберіть улюблений колір" ); КонецПроцедури & НаКліенте Процедура ПослеВибораЕлемента (Елемент, Параметри) Експорт Якщо Елемент<> Не визначено Тоді Повідомити (Елемент. Значення); КонецЕсли; КонецПроцедури /// Як зробити немодального позначку значень зі списку /// значень в 1с 8.3, 8.2 & НаКліенте Процедура КакСделатьНемодальнуюОтметкуЗначеній (Команда) Кольори \u003d Новий СпісокЗначеній; Кольору. Додати ( "Червоний"); Кольору. Додати ( "Зелений"); Кольору. Додати ( "Синій"); // процедура ПослеОтметкіЕлементов визначена трохи нижче ОповещеніеПослеОтметкіЕлементов \u003d Новий ОпісаніеОповещенія ( "ПослеОтметкіЕлементов", ЕтотОб'ект); Кольору. ПоказатьОтметкуЕлементов (ОповещеніеПослеОтметкіЕлементов, "Виберіть улюблені кольори" ); Кольору. ЗаполнітьПометкі (Істина); КонецПроцедури & НаКліенте Процедура ПослеОтметкіЕлементов (Елементи, Параметри) Експорт Якщо Елементи<> Не визначено Тоді Для Кожного Колір З Елементи Цикл Якщо Колір. Позначка Тоді Повідомити (Колір. Значення); КонецЕсли; КонецЦікла; КонецЕсли; КонецПроцедури /// Як зробити модальний вибір значення зі списку в 1с 8.3, 8.2 & НаКліенте Процедура КакСделатьМодальнийВиборЗначенія (Команда) Кольори \u003d Новий СпісокЗначеній; Кольору. Додати ( "Червоний"); Кольору. Додати ( "Зелений"); Кольору. Додати ( "Синій"); ВибЦвет \u003d Кольори. ВибратьЕлемент ( "Виберіть улюблений колір"); якщо ВибЦвет<> Не визначено Тоді Повідомити (ВибЦвет. Значення); КонецЕсли; КонецПроцедури /// Як зробити модальну оцінку значень зі списку /// значень в 1с 8.3, 8.2 & НаКліенте Процедура КакСделатьМодальнуюОтметкуЗначеній (Команда) Кольори \u003d Новий СпісокЗначеній; Кольору. Додати ( "Червоний"); Кольору. Додати ( "Зелений"); Кольору. Додати ( "Синій"); Якщо Кольори. ОтметітьЕлементи ( "Виберіть улюблені кольори") Тоді Для Кожного Колір З Кольори Цикл Якщо Колір. Позначка Тоді Повідомити (Колір. Значення); КонецЕсли; КонецЦікла; КонецЕсли; // а ось так можна разом встановити всі позначки // списку в певне значення Кольору. ЗаполнітьПометкі (Істина); КонецПроцедури /// Завантажити і виконати ці приклади на комп'ютері