Как сделать список в 1с
Добавил пользователь Евгений Кузнецов Обновлено: 04.10.2024
Перед прочтением данной статьи рекомендуется ознакомиться с первой частью, в которой описаны примеры программного создания элементов, команд, реквизитов управляемой формы, а также описание стандартных возможностей для работы с ними.
В данной же части будет рассмотрено программное создание динамических списков, таблиц значений на форме, их вывод в элементы формы и стандартные возможности для работы.
Модифицировать формы рекомендуется программно для удобного обновления конфигураций и исключения конфликтов, а также для удобной поддержки кода. Со статьями о механизмах модификации можно ознакомиться в разделе полезных ссылок.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.
Примеры программного создания элементов, команд, реквизитов управляемой формы, а также описание стандартных возможностей для работы с ними можно будет посмотреть в части 1.
Создание реквизита типа таблица значений и вывод на форму
Добавление условного оформления таблицы формы
Создаем условное оформление для таблицы:
В процедуру команды добавим вызов серверной процедуры для заполнения таблицы цен в зависимости от выбранной номенклатуры и характеристики:
Добавляем в процедуру ПриСозданииНаСервере процедуры:
Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.
Создание реквизита типа динамический список с заданными настройками и вывод на форму
На странице 3 создадим динамический список с выводом всех цен выбранной номенклатуры и характеристики.
Добавим Условное Оформление дин. списка, отбор и сортировку программно.
Вывести динамический список в элементы управляемой формы 1С
Для вывода дин. списка воспользуемся процедурами, которые использовали при выводе таблицы значений, так как это один тип — ДанныеФормыКоллекция.
Обновление параметров динамического списка программно
Если в запросе дин. списка используются параметры, то их необходимо обновлять при изменении соответствующих реквизитов.
Добавляем в процедуру ПриСозданииНаСервере процедуры:
Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.
Содержимое регистра сведений ЦеныНоменклатуры:
Динамический список на форме:
Рассмотрим как разместить выпадающий список значений на форме. Практиковаться будем на платформе 1С:Предприятие 8.3 на управляемых формах. Предположим, что нам надо разместить на форме список значений как показано на рисунке.
Итак, создаем внешнюю обработку. Создаем для формы реквизит в котором будет содержаться выбранное из списка значение.
Назовем его к примеру – СписокВариантов. Выберем для него тип значения. В нашем случае это будет строка, хотя в зависимости от задачи это может быть и СправочникСсылка, ПеречислениеСсылка и т.д. Хочется только подчеркнуть, что тип не список значений, что на первый взгляд кажется логичным, а именно тот тип, значения которого будут в этом списке отображаться. Далее размещаем наш реквизит на форме как поле ввода.
А для работы со списком значений будем использовать свойство поля ввода – СписокВыбора.
Для этого в свойствах поля ввода включаем флажок РежимВыбораИзСписка
И программно заполняем СписокВыбора нужными нам значениями:
Для обычной (не управляемой формы) принцип реализации точно такой же.
Все бы ничего, но если СписокВариантов Строка … то выражение
СписокВариантов = Элементы.СписокВариантов.СписокВыбора[0].Значение;
не работает при ПриСозданииНаСервере
При открытии формы это значение обнуляется
На других типах (Спр. Документ …) не проверял
И … было бы неплохо писать для какой версии 1С Вы пишете описание. Может быть, для какой-то версии это и работает
Дома делал вот на этой версии 1С:Предприятие 8.3, учебная версия (8.3.6.2014). Работает. Правда режим файловый, код то все равно на клиенте выполняется. Но на работе тоже такое делал на 8.2. Там серверный вариант. Проверю, отпишусь.
Можно и в ПриОткрытии() этот код затолкать.
Материал в статье будет посвящен вопросу как можно вывести список сотрудников в 1С ЗУП. Данная информация при осуществлении деятельности организации может потребоваться, к примеру, отделу кадров, бухгалтерии и прочим службам. На основе этих данных также возможно проведение какого-либо анализа. Программа 1С ЗУП позволяет сформировать различные списки сотрудников. Это может быть список работающих сотрудников на определенную дату или же список уволенных сотрудников и пр. Также есть возможность формировать списки с дополнительной информацией, такой как паспортные данные, датой рождения. Как правило, если речь идет о получении информации в виде списка, то для этого необходимо сформировать соответствующий отчет в программе.
Настрою вашу 1С. Опыт с 2004 года. Подробнее →
Первым рассмотрим, как сформировать отчет, который покажет список работающих сотрудников на конкретную дату. Перейдем в раздел программы “Кадры” и выберем пункт “Кадровые отчеты”. В открывшейся форме с отчетами и справками выбираем отчет “Штатные сотрудники”.
В шапке отчета указываем дату – можно выбрать конец периода, либо указать произвольную дату и выбираем организацию, если их несколько в информационной базе. И нажимаем “Сформировать”. Сформированный отчет будет выглядеть следующим образом.
В стандартном варианте отчет мы видим группировку сотрудников в разрезе подразделений и большое количество колонок с информацией. Нажав на кнопку “Настройки” в шапке отчета есть возможность изменить его внешний вид. В подвале формы настроек выбираем вид “Расширенный” и переходим на закладку “Поля и сортировка”. Здесь в левом окне можно отметить те поля, которые будут выведены в отчет, а в правом окне установить порядок сортировки.
Далее перейдем на закладку “Структура” и изменим структуру отчет. Выведем список сотрудников без группировки по подразделениям. Для этого перетащим “Детальные записи” на поле “Организации”, а у поля “Подразделение” уберем галочку.
После чего нажимаем “Закрыть и сформировать”. Измененный отчет будет иметь уже следующий вид.
Вторым рассмотрим отчет “Личные данные сотрудников”. Данный отчет также находится в кадровых отчетах. Открыть его можно и из первого отчета по кнопке “Выбора варианта отчета”.
В шапке также укажем дату и выберем нужную организацию. В настройках на закладке “Поля и сортировка” по кнопке “Добавить” можно осуществить добавление новых полей личных данных сотрудника, к примеру, семейное положение. Отчет со стандартными настройка будет выглядеть следующим образом.
И последний рассматриваемы в рамках статьи отчет “Уволенные сотрудники”. Отчет позволяет получить список уволенных сотрудников организации с датой увольнения. Настройка отчета осуществляется аналогично двум предыдущим.
Следует обратить внимание, что отчет покажет уволенных сотрудников на установленную в шапке дату.
Измененные структуры отчетов можно сохранять и в последующем уже работать с отчетами, настроенным под себя.
Список Значений представляет собой линейный упорядоченный список, упорядоченный в данном случае означает, что на порядок следования элементов в списке можно опираться и сам список можно сортировать. Список значенией удобно использовать для хранения и обработки списка данных обладающих линейной структурой, для вывода значений на форму или для предоставления возможности выбора пользователю. Список на самом деле представляет собой таблицу с фиксированным набором колонок:
Представление – здесь хранится отображаемое для пользователя значение, то есть у нас в значении может храниться все что угодно, начиная от массива заканчивая бинарными данными, пользователю можно показать значение в удобочитаемом виде(указав нужное представление). В случае если представление не указано, то 1С попробует сгенерировать его на основании указанного вами значения.
Как вы могли заметить все дополнительные колонки служат для работы с интерфейсом пользователя. Это связано с тем, что список значений часто используются для предоставления пользователю выбора одного или несколько значений.
Создание и использование
Список значений создается с помощью метода новый:
Добавление значений в список происходит с помошью методов, Добавить() и Вставить() например:
метод Вставить отличается от метода Добавить , только возможностью указать позицию для вставки объекта. У каждого элемента списка значений, есть уникальный идентификатор, который не меняется, вне зависимости от того, что бы не происходило со списком значений. Получить его можно с помощью метода ПолучитьИдентификатор() применять его нужно к элементу списка значений. В дальнейшем идентификатор можно использовать с помошью, метода НайтиПоИдентификатору(Идентификатор). Обращение к элементам коллекции происходит стандартно для коллекции Поиск в коллекции происходит с помощью метода НайтиПоЗначению(), метод возвращает либо элемент списка значений, либо Неопределено , если искомое значение отсутствует в списке. Обратите внимание, что элемент списка значений это не само значение и здесь доступны все свойства описанные выше: отметка, картинка, значение, пометка. Например:
Методы для работы с пользователем
Как уже отмечалось, список значений удобная коллекция для интерактивной работы с пользователем. Есть возможность сформировав заранее список с удобными представлениями и картинками. Показать пользователю окно для выбора одного или нескольких значений. Либо дать возможность пользователю поставить отметки в выведенном списке. Для этого используются следующие команды:
ВыбратьЭлементы() этот метод выводит окно с выбором значений из списка значений, можно указать заголовок окна и значение на которое нужно позиционироваться при открытии. Метод возвращает выбранный элемент списка значений или Неопределено , если пользователь отказался от выбора.
ОтметитьЭлементы() выводит окно позволяя пользователю проставить отметки в списке значений, возвращает Истина если выбор сделан и Ложь в противном случае.
Оба вышеприведенных метода работают с модальными окнами Также можно вывести список значений на форму.(Сделать картинки для обычного и для управляемого приложения)
Читайте также: