УФ — как обойти все элементы коллекции данных формы?
как програмно обойти все имеющиеся колонки колллекции?
не элементы формы, а именно колокнт ДанныхФормыКоллекция
ДанныеФормыКоллекция (FormDataCollection)
Элементы коллекции:
ДанныеФормыЭлементКоллекции
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы.
ВыгрузитьКолонки (UnloadColumns)
Синтаксис:
Тип: Строка.
Список колонок для выгрузки в формате: «Колонка1, Колонка2. «. Если список не задан, то будут выгружены все колонки.
Возвращаемое значение:
Создает таблицу значений с заданным списком колонок.
Сервер, толстый клиент, внешнее соединение.
Примечание:
Выгружается только структура табличной части, данные не выгружаются.
(3) опять не то — это объект
а надо реквизит формы — что бы были и колонки которые добавил в реквизит формы програмно
(4) для того что бы обойти колонки
в обном месте насоздавал колокно, теперь надо все эти колокни получить и обработать
(6) это элементы формы — их может и не быть
ну например рассчет суммы/разницы/максимума от двух добавленых колонок
Для каждого ТекРеквизит Из РеквизитыФормы Цикл
.
КонецЦикла;
УправляемаяФорма (ManagedForm)
ПолучитьРеквизиты (GetAttributes)
Синтаксис:
Тип: Строка.
Указывает путь к родительскому реквизиту. Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня.
Возвращаемое значение:
Name already in use
1c-homeworks / homework-4-4.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
3 contributors
Users who have contributed to this file
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Задание к занятию «Регистры сведений»
Создать периодический регистр сведений «Цены» для хранения цен номенклатуры с историей.
Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией из предыдущих заданий с новым регистром «Цены», который:
- содержит измерение Номенклатура, ресурс Цена и реквизит Установил;
- является периодическим с точностью до секунды;
- скрыт из командного интерфейса.
В форме списка справочника «Номенклатура» должен находиться динамический список с ценами и соответствующая ему таблица. Список должен быть отобран по активному товару (услуге) и упорядочен по убыванию дат. При создании новых записей регистра Цены в реквизит Установил должен автоматически подставляться текущий сотрудник.
Обойти все записи как элементы коллекции этотобъект
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: циклы в 1С часть 3
Автор уроков и преподаватель школы: Владимир Милькин
Друзья, вы помните урок, в котором мы рассматривали цикл Для? Тогда я намеренно не стал рассказывать об особой форме этого цикла. Она используется только для обхода коллекций, например, массивов и списков значений.
Теперь, когда мы уже знаем что такое коллекция и для чего она нужна — время пришло.
Цикл Для Каждого
Конструкция цикла выглядит вот так:
Команды, заключенные между словами Цикл и КонецЦикла называются телом цикла и выполняются столько раз, сколько элементов содержит в себе коллекция.
При этом Имя программист придумывает сам и с этим именем связывается значение очередного элемента коллекции. Сейчас разберем на примере и всё станет ясно.
Предположим, что у нас есть такой массив:
И мы хотим написать цикл, который выводит элементы этого массива от первого до последнего.
Сначала давайте напишем такой обход при помощи обычного цикла Для:
Да, этот код хорош, но в нём легко допустить ошибку, например:
- мы можем по ошибке указать в качестве начального значения цикла не 0, а 1
- мы можем забыть отнять 1 от количества для верного определения индекса последнего элемента
И это будет очень коварная ошибка, так как программист (из-за замыливания глаза) сможет долго не замечать и не находить её.
Именно поэтому и был придуман цикл Для Каждого, который используется только для обхода коллекций от первого элемента к последнему.
Вот как будет выглядеть обход нашего массива при помощи цикла Для Каждого:
Вы видите, что для обхода коллекции от первого до последнего элемента запись этого цикла более лаконична и ошибиться здесь очень трудно.
Обход метаданных (полезные функции)
При написании небольших автоматизированных тестов часто надо обойти всю конфигурацию и проверить, например, для всех форм какое-нибудь свойство. Это всё легко делается через свойство глобального контекста "Метаданные", но чтоб дорбаться до обхода реквизитов надо написать кучу вложенных циклов. При этом код становится слабочитаемым и слабомодифицируемым.
Ниже приведен небольшой модуль, который решает задачу легко и удобно. Создана специальная функция РазвернутьСтрокуОбходаМетаданных, которая может по строке типа "Метаданные.Справочники.*.Реквизиты.*" построить массив строк с перечислением всех реквизитов всех справочников. При помощи этой и нескольких других функций в экспортных функциях модуля реализованы вполне прикладные задачи — получение всех реквизитов, всех макетов, всех форм конфигурации и построение таблицы всех составных типов.