Программирование в 1С для всех
Список значений это универсальная коллекция значений, которая, по сути, одномерный динамический массив, созданный в рамках платформы 1С для решения некоторых интерфейсных задач. В отличие от простого массива, элементы которого могут быть произвольных типов, у списка значений каждый элемент имеет специальный тип Элемент списка значений. Элемент списка значений может хранить в себе следующие данные: само значение (любого типа), представление значения (тип строка), пометка (тип булево) и картинка (тип картинка).
Работать со списком значений (создавать, заполнять и т.д.) можно и в тонком, и в толстом клиенте.
Программно в конфигураторе 1С создать список значений необходимо при помощи конструктора Новый.
Список = Новый СписокЗначений ;
После создание списка значений с ним можно работать — добавлять новые значения, выгружать значения в массив и загружать значения из массива.
Как добавить новое значение в список
Для того чтобы нам начать работать со списком значений, необходимо заполнить его элементами.
Сделать это можно тремя способами: добавить новый элемент (добавится в конец списка), вставить новый элемент в нужное место и загрузить элементы из массива. Для добавления элемента в конец списка используется метод Добавить(), а для вставки элемента в нужное место списка – метод Вставить()
Метод добавить имеет следующий синтаксис:
Значение — это может быть объект любого типа, который будет храниться в списке значений.
Представление — задаем, каким образом объект будет представлен пользователю в списке. Имеет тип строка. Это необязательный параметр, в случае отсутствия представления объект будет показан в обычном виде.
Картинка – картинка, которая привяжется к нужному элементу.
Обязательным является первый параметр.
Добавить элементы можно так:
Метод Вставить имеет следующий синтаксис.
Все параметры, кроме Индекса, точно такие же, как у метода Добавить.
Параметр Индекс указывает непосредственно номер позиции, на который устанавливается элемент. Элемент, который был на этом индексе, сдвигается на плюс один, и все последующие элементы тоже.
Т.е. при написании следующего кода:
Элементы будут расположены таким образом:
Как загрузить массив в список значений
С помощь метода ЗагрузитьЗначения в список значений можно загрузить одномерный массив.
Все предыдущие элементы списка значений при этом удалятся. Об этом надо всегда помнить.
Делается это достаточно просто – необходимо передать в метод нужный массив.
Элемент списка значений
Мы научились добавлять, вставлять и загружать элементы в список значений, рассмотрим, что вообще такое Элемент списка значений.
Если элементы массива это и есть те значения, которые хранятся в массиве, то элементом списка значений является отдельный объект, который имеет свойства и методы. Все параметры метода Добавить списка значений являются свойствами элемента списка значений, который будет создан при помощи этого метода. Любой список значений состоит из объектов Элемент списка значений. Мы можем обратиться к любому элементу списка значений и работать с ним самостоятельно как с объектом. Но объект Элемент списка значений не может существовать без своего родителя — Списка значений.
Обратиться непосредственно к элементу списка значений можно двумя способами: с помощью оператора квадратные скобки и с помощью метода Получить.
ПервыйЭлемент = Список [ 0 ];
В метод получить передается только один параметр – индекс нужного элемента
После того, как мы получили нужный элемент, к его свойства (Значение, Представление, Пометка, Картинка) можно обращаться через точку.
Причем можно как считать значение нужного свойства, так и записать в это свойство какое-либо значение.
Как перебрать список значений
Перебрать список значений довольно просто – необходимо воспользоваться или циклом Для…Цикл, тогда получать элемент списка значений нужно будет посредством квадратной скобки (или метода Получить), или циклом Для каждого Цикл, в этом случае мы будем получить уже непосредственно элемент в каждой итерации цикла.
Обратите внимание, что максимальное значение счетчика цикла должно соответствовать количеству элементов списка минус один, т.к. индекс начинается с нуля.
Гораздо практичнее пользоваться циклом Для каждого Цикл
В этом случае, мы сразу получаем нужный элемент списка в каждой итерации.
Статьи о других универсальных коллекциях значений в 1С
Более подробно о работе со списками значений и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Профессия — 1С
рубрики: Работа с формами | Дата: 22 января, 2016
Скачать обработку с примерами из статьи: professia1c_ListValue.epf
Платформа: 8.3; Тип формы: управляемая.
Рассмотрим как разместить выпадающий список значений на форме. Практиковаться будем на платформе 1С:Предприятие 8.3 на управляемых формах. Предположим, что нам надо разместить на форме список значений как показано на рисунке.
Итак, создаем внешнюю обработку. Создаем для формы реквизит в котором будет содержаться выбранное из списка значение.
Назовем его к примеру – СписокВариантов. Выберем для него тип значения. В нашем случае это будет строка, хотя в зависимости от задачи это может быть и СправочникСсылка, ПеречислениеСсылка и т.д. Хочется только подчеркнуть, что тип не список значений, что на первый взгляд кажется логичным, а именно тот тип, значения которого будут в этом списке отображаться. Далее размещаем наш реквизит на форме как поле ввода.
А для работы со списком значений будем использовать свойство поля ввода – СписокВыбора.
Для этого в свойствах поля ввода включаем флажок РежимВыбораИзСписка
И программно заполняем СписокВыбора нужными нам значениями:
Для обычной (не управляемой формы) принцип реализации точно такой же.
7 комментариев на «“Список значений на форме”»
Все бы ничего, но если СписокВариантов Строка … то выражение
СписокВариантов = Элементы.СписокВариантов.СписокВыбора[0].Значение;
не работает при ПриСозданииНаСервере
При открытии формы это значение обнуляется
На других типах (Спр. Документ …) не проверял
И … было бы неплохо писать для какой версии 1С Вы пишете описание. Может быть, для какой-то версии это и работает
Дома делал вот на этой версии 1С:Предприятие 8.3, учебная версия (8.3.6.2014). Работает. Правда режим файловый, код то все равно на клиенте выполняется. Но на работе тоже такое делал на 8.2. Там серверный вариант. Проверю, отпишусь.
Можно и в ПриОткрытии() этот код затолкать.
8.2.19.130. Работает. В серверном варианте.
1С 8.x : Поле выбора
Заполнение списка значений в элементе поле выбора на форме
Похожие FAQ
Еще в этой же категории
Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора
Как ограничить список выбора? 8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Реквизит
Как сохранять и восстанавливать значения реквизитов на форме? 6
Как в Управляемом Приложении настроить автосохранение значений полей формы? Заходим в свойства формы и для значения АвтоматическоеСохранениеДанныхВНастройках устанавливаем значение » Использовать» : https://helpf.pro/uploads/img/_1-N3jf1dnRut.png Форма
Как активизировать, перевести фокус на необходимый элемент на форме? 6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Форма
Программирование в 1С для всех
В предыдущей статье «Изучаем список значений 1С» я показал, каким образом можно программного работать со списком значений. Мы научились добавлять, вставлять и загружать нужные элементы в список. Но со списком значений можно работать на управляемой форме 1С, когда он используется в качестве реквизита этой формы. В этой статье мы разберем вопросы работы со списком значений на форме.
На управляемой форме 1С список значений можно разместить в качестве реквизита управляемой формы.
Мы уже знаем, что каждый элемент списка значений содержит значения типа Элемент списка значений, но можно задать тип данных, которые будут содержаться в этом элементе. Делается это при помощи свойства реквизита – тип значения. В этом случае, все элементы заданного списка значений будут одного типа.
Реквизит с типом список значений можно разместить на форме, где он отобразится или виде таблицы или в виде поля. Для размещения реквизита достаточно мышкой просто перенести его в элементы управляемой формы.
После начала размещения, будет предложено выбрать тип нового элемента. Можно выбрать или таблицу, или поле.
Если мы выберем тип Таблица, то будет размещен элемент с типом Таблица, где в качестве колонок можно размещать соответствующие свойства списка значений.
Теперь на форме можно работать с этим списком, выбирая нужные объекты, указанного типа.
С реквизитом формы мы можем работать как с обычным списком значений. Например, заполним созданный нами список всеми складами, которые можно использовать.
В этом случае, список заполнится сразу при открытии формы.
Более подробно о работе со списками значений и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Список значений в 1С 8.3 на примерах
Список значений в 1С 8.3 — это объект, позволяющий строить динамические наборы значений и манипулировать ими.
Визуально можно представить как таблицу из четырёх колонок:
Список значений может быть наполнен значениями любых типов. Значения характеризуются позицией в списке (индексом).
Рассмотрим работу с объектом на примерах:
Создание объекта СписокЗначений
Добавить элемент в список значений
Удалить элемент списка значений
Вставить элемент в список значений
Установить/снять пометки у всех элементов
Найти в списке значений
Узнать индекс элемента с известным значением
Отсортировать список значений
Сдвинуть элемент списка значений
Создать копию списка значений
Получить количество элементов списка значений
Перебор элементов списка значений
Загрузить/выгрузить в массив
Удалить все элементы из списка значений
Интерактивный выбор одного элемента из списка на форме
Модальный и немодальный режим. Универсальный способ:
Интерактивная отметка значений из списка на форме
Модальный и немодальный режим. Универсальный способ:
Преобразования таблицы значений в список значений
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Поддержите нас, расскажите друзьям!
СПРОСИТЕ в комментариях!
При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт.
Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.