Универсальные коллекции значений

Универсальные коллекции значений созданы для хранения временных наборов данных в течение сеанса работы юзера. Они не являются объектами информационной базы и служат для вспомогательного сбора, группировки, анализа и обработки инфы.

Массив

Объекты этого типа представляют собой упорядоченную совокупа значений хоть какого типа, в том числе и типа массив, что а именно позволяет Универсальные коллекции значений организовывать многомерные массивы. Для объекта доступен обход коллекции средством оператора:

Для каждого … Из … Цикл.

При обходе выбираются значения частей массива. Может быть воззвание к значению элемента средством оператора [...]. В качестве аргумента передается индекс значения (нумерация с 0). Объект создается из программного кода с внедрением конструктора Новый.

МойМассив=Новый Массив Универсальные коллекции значений (Кол-во элем 1….. N);

Структура

Структура представляет собой динамический набор данных — коллекцию значений, каждый элемент которой состоит из пары «Ключ» и «Значение». Ключи структуры уникальны, и потому ими можно идентифицировать значения. Ключ структуры должен быть строковым и отвечать требованиям к именам переменных. К значениям структуры можно обращаться как к свойствам объекта, при всем Универсальные коллекции значений этом ключ употребляется как имя характеристики.

СтруктураОтбора = Новый Структура («Ключи», Значения);

К примеру:

СтруктураОтбора = Новый Структура («Валюта, Контрагент», Валюта, Контрагент);

Допустим другой вариант сотворения структуры:

СтруктураОтбора = Новый Структура;

СтруктураОтбора.Воткнуть(«Валюта», Валюта);

СтруктураОтбора.Воткнуть(«Контрагент», Контрагент);

Соответствие

Соответствие представляет собой динамический набор данных — коллекцию значений, каждый элемент которой состоит Универсальные коллекции значений из пары «Ключ» и «Значение». Ключи соответствия уникальны, и потому ими можно идентифицировать значения. В отличие от ключа структуры, ключи соответствия могут быть случайных типов. Рекомендуется, чтоб в качестве ключа выступало значение неизменяемого типа либо другого типа, значение которого может только присваиваться, но не может поменять свое Универсальные коллекции значений содержимое.

Соотв = Новый Соответствие();

Перечень значений

Перечень значений — это объект позволяющий строить динамические наборы значений и манипулировать ими. Может быть заполнен значениями всех типов. Условно перечень значений можно представить как таблицу из 5 колонок: индекс (индекс — быстрее не колонка, а позиция элемента), пометка, значение, представление, картина.

СПЗ=Новый СписокЗначений();

Таблица значений

Таблица значений — объект Универсальные коллекции значений позволяющий строить динамические наборы значений и манипулировать ими. Он может быть заполнен значениями разных типов. Может иметь хоть какое количество колонок и быть связанным с элементом

«табличное поле».

ТЗ=Новый ТаблицаЗначений();

Дерево значений

Объект схожий на таблицу значений. Но в отличие от нее строчки дерева значений могут создавать иерархические структуры Универсальные коллекции значений: любая строчка дерева может иметь набор подчиненных строк и т. д.

ДЗ=Новый ДеревоЗначений();

Главные конструкции языка 1С

Таблица1 - Главные конструкции

Конструкция языка 1С Примечание
Процедура () … КонецПроцедуры Обычная процедура. После слова КонецПроцедуры точка с запятой не нужна, так как это не оператор, а операторная скобка
Функция () … Возврат 1; КонецФункции Функция должна непременно Универсальные коллекции значений возвращать итог.
Если Оклад > 10000 Тогда Итог = "Жить можно"; По другому Итог = "Плохо"; КонецЕсли; Обычное условие. После слова КонецЕсли должна быть точка с запятой.
Итог = ?(Оклад > 10000, "Нормально","Плохо"); Сокращенное Если.
Если Оклад > 10000 Тогда Итог = "Жить можно"; ИначеЕсли Оклад > 5000 Тогда Итог = "Плохо"; По другому Итог = "Так жить нельзя"; КонецЕсли; Множественное условие. Если Универсальные коллекции значений 1-ое условие не производится, то проверяется 2-ое. Если 2-ое условие не производится, то третье. Если ни одно из критерий не производится то производится блок По другому.
Если (Оклад>10000) И (КодКатегории=2) Тогда … КонецЕсли; В составном логическом выражении скобки неотклонимы! (в версии 8.0 и выше необязательны)
Пока Номер <= 50 Цикл … КонецЦикла; Обычный цикл Пока Универсальные коллекции значений (цикл с неведомым числом повторений).
Для Номер = 1 По 50 Цикл … КонецЦикла; Обычной цикл Для (цикл с известным числом повторений).
Для Каждого Элемент Из Массив Цикл … КонецЦикла Можно перебирать массивы, списки, таблицы и т.д.
Перейти ~метка; ... ~метка: Так оформляются метки и оператор бесспорного перехода (GOTO). Чем меньше в вашей Универсальные коллекции значений программке будет меток, тем лучше.
Пока Цикл Если Тогда Продолжить; КонецЕсли; КонецЦикла; Оператор Продолжить передает управление в начало цикла.
Пока Цикл Если Тогда Оборвать; КонецЕсли; КонецЦикла; Оператор Оборвать производит преждевременный выход из цикла. Управление передается на операторы после цикла.
Перем Сотр; Очевидное объявление переменной.
Номер = 1; Переменные можно не объявлять Универсальные коллекции значений очевидно. При первом присвоении значения создается новенькая переменная.
ФИО = Фамилия + " " + Имя + " " + Отчество; Сложение строк (конкатенация)
НекаяДата = '01.01.2002'; Переменная, которая хранит дату.
Перем глТекущийПользователь Экспорт; Объявление глобальной переменной в Глобальном модуле. Такие переменные доступны в любом месте конфигурации.
Попытка а = 10 / 0; Исключение Предупреждение("Деление на ноль!"); КонецПопытки; Обработка исключительных ситуаций Универсальные коллекции значений.
//это комментарий Так оформляются комменты. Можно закомментировать сходу несколько строк кода , выделив их и надавить Ctrl + /. Чтоб раскомментировать несколько строк – выделить их и надавить Shift + Ctrl + /.
СпрСотр.Избрать(); Вызов способа объекта делается как обычно, через точку.

ПРИМЕР ВЫПОЛНЕНИ РАБОТЫ

Для начала сделаем формы для документа «ПриходнаяНакладная».

Форма перечня:

Для конфигурации положения колонок Универсальные коллекции значений их можно перетаскивать мышкой, или перетаскивать с зажатой кнопкой Ctrl (при это колонка перемещается без конфигурации собственных размеров). Данная форма является полностью применимой и в доработках не нуждается.

Форма документа:

На 1-ый взор кажется, что форма смотрится нормально, но это не совершенно так. Изменим внешний облик формы Универсальные коллекции значений.

При изменении формы с неё были удалены все надписи и поля не считая 2 верхних строк (Номер и Дата) - эти элементы управления просто изменили своё размещение и были переименованы. Потом была сотворена панель с 2 страничками. Для наполнения странички данными необходимо перейти на подходящую страничку, потом на панели инструментов избрать пункт «Форма» -> «Размещение Универсальные коллекции значений данных». В показавшемся окне необходимо отметить, какие элементы управления будут расположены на страничке и включить галочку «Вставить надписи». После нажатия «ОК» необходимо обвести мышкой тот участок, куда должны быть помещены элементы управления (идеальнее всего обвести всю страничку).

Сейчас форма смотрится лучше, но её необходимо ещё настроить. К примеру, все поля Универсальные коллекции значений, которые показываются на форме являются неотклонимыми для наполнения, потому с полей ввода можно убрать кнопку «Удалить», а заместо неё использовать кнопку «Открыть»

Также можно поступить с полем «Номенклатура» табличной части Продукты. Не считая того было бы хорошо узреть сумму, на которую мы приходуем продукт. Для этого в Универсальные коллекции значений табличной части Продукты можно включить подвал и показывать результат в подвале. Для этого выделяем табличное поле и заходим в его характеристики. Включаем галочку «Подвал». Потом выделяем колонку «Сумма» и заходим в её характеристики. Включаем галочку «ОтображатьИтогиВПодвале». Механизм отображения суммы готов.

Сейчас форма приняла достойный вид и в режиме предприятия смотрится Универсальные коллекции значений так, как показано на рисунке ниже:


uplotnenie-nepodvizhnih-soedinenij.html
uplotneniya-kolcami-postavlennimi-s-natyagom-uplotnenie-rezinovimi-kolcami.html
upokoj-gospodi-dushu-usopshego-ej-raba-tvoego-rabi-tvoeya.html