Обойти все записи как элементы коллекции этотобъект
Перейти к содержимому

Обойти все записи как элементы коллекции этотобъект

  • автор:

УФ — как обойти все элементы коллекции данных формы?

как програмно обойти все имеющиеся колонки колллекции?

не элементы формы, а именно колокнт ДанныхФормыКоллекция

ДанныеФормыКоллекция (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 от количества для верного определения индекса последнего элемента

И это будет очень коварная ошибка, так как программист (из-за замыливания глаза) сможет долго не замечать и не находить её.

Именно поэтому и был придуман цикл Для Каждого, который используется только для обхода коллекций от первого элемента к последнему.

Вот как будет выглядеть обход нашего массива при помощи цикла Для Каждого:

Вы видите, что для обхода коллекции от первого до последнего элемента запись этого цикла более лаконична и ошибиться здесь очень трудно.

Обход метаданных (полезные функции)

При написании небольших автоматизированных тестов часто надо обойти всю конфигурацию и проверить, например, для всех форм какое-нибудь свойство. Это всё легко делается через свойство глобального контекста "Метаданные", но чтоб дорбаться до обхода реквизитов надо написать кучу вложенных циклов. При этом код становится слабочитаемым и слабомодифицируемым.

Ниже приведен небольшой модуль, который решает задачу легко и удобно. Создана специальная функция РазвернутьСтрокуОбходаМетаданных, которая может по строке типа "Метаданные.Справочники.*.Реквизиты.*" построить массив строк с перечислением всех реквизитов всех справочников. При помощи этой и нескольких других функций в экспортных функциях модуля реализованы вполне прикладные задачи — получение всех реквизитов, всех макетов, всех форм конфигурации и построение таблицы всех составных типов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *