Загружает данные коллекции из таблицы значений. Все строки табличной части будут удалены. В табличную часть будут добавлены строки из таблицы значений и заполнены значениями в совпадающих по идентификаторам колонках.
Синтаксис
Загрузить(<Таблица>)Полное описание, параметры и ограничения
ДанныеФормыСтруктураСКоллекцией.Загрузить (FormDataStructureAndCollection.Load)
ДанныеФормыСтруктураСКоллекцией (FormDataStructureAndCollection)
Загрузить (Load)
Доступен, начиная с версии 8.2.
Синтаксис:
Загрузить(<Таблица>)
Параметры:
<Таблица> (необязательный)
Тип: ТаблицаЗначений.
Таблица значений, откуда загружается табличная часть. Колонки таблиц совмещаются по именам.
Описание:
Загружает данные коллекции из таблицы значений.
Все строки табличной части будут удалены.
В табличную часть будут добавлены строки из таблицы значений и заполнены значениями в совпадающих по идентификаторам колонках.
Доступность:
Сервер, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Очистить свою модель и восстановить её из снимка без записи базы
Сначала сохраняем ТаблицуЗначений в памяти, очищаем только учебные данные формы, затем загружаем снимок обратно по именам колонок.
Где и как запускать
Полный модуль управляемой формы своей внешней обработки, ПриСозданииНаСервере.
Подготовка
Используйте отдельную свою конфигурацию УчебнаяКонфигурацияСинтаксиса. В Конфигураторе создайте независимый непериодический регистр сведений УчебныеСтроки. Не используйте существующий рабочий регистр.
Добавьте измерения Номер типа Число (10, 0) и Товар типа Строка (64). Добавьте ресурсы Количество типа Число (10, 0), Сумма типа Число (12, 2). Обновите только свою учебную конфигурацию базы.
Создайте собственную внешнюю обработку с пустой управляемой основной формой. Реквизит УчебныеЗаписи и таблицу вручную не добавляйте: их создаёт код.
Вставьте весь модуль выбранного урока. В свойствах формы назначьте событию ПриСозданииНаСервере одноимённую процедуру. Сохраните EPF и откройте её в своей учебной базе.
Набор создаётся пустым и заполняется только в памяти. В коде нет Прочитать, Записать, транзакций, привилегированного режима, запросов, файлов или сети. Таблица на форме только для просмотра.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Реквизиты = Новый Массив;
Реквизиты.Добавить(Новый РеквизитФормы("УчебныеЗаписи",
Новый ОписаниеТипов("РегистрСведенийНаборЗаписей.УчебныеСтроки")));
ЭтаФорма.ИзменитьРеквизиты(Реквизиты);
Набор = РегистрыСведений.УчебныеСтроки.СоздатьНаборЗаписей();
Для Каждого ИсходнаяСтрока Из СтрРазделить("1|Книга|3|750;2|Ручка|1|50;3|Коробка|2|60", ";") Цикл
Поля = СтрРазделить(ИсходнаяСтрока, "|");
Запись = Набор.Добавить();
Запись.Номер = Число(Поля[0]);
Запись.Товар = Поля[1];
Запись.Количество = Число(Поля[2]);
Запись.Сумма = Число(Поля[3]);
КонецЦикла;
ЭтаФорма.ЗначениеВРеквизитФормы(Набор, "УчебныеЗаписи");
Записи = ЭтаФорма.УчебныеЗаписи;
Если ТипЗнч(Записи) <> Тип("ДанныеФормыСтруктураСКоллекцией") Тогда
ВызватьИсключение "Ожидалась модель набора записей, а не обычная таблица формы";
КонецЕсли;
Сообщить(Записи.Количество() = 3);
Сообщить(Записи.Итог("Сумма") = 860);
Снимок = Записи.Выгрузить();
Сообщить(Снимок.Количество() = 3);
Сообщить(Снимок.Итог("Сумма") = 860);
Записи.Очистить();
Сообщить(Записи.Количество() = 0);
Сообщить(Снимок.Количество() = 3);
Снимок.Сортировать("Сумма Убыв,Номер Возр");
Записи.Загрузить(Снимок);
Сообщить(Записи.Количество() = 3);
Сообщить(Записи.Итог("Количество") = 6);
Сообщить(Записи.Итог("Сумма") = 860);
Сообщить(Записи.Получить(0).Товар = "Книга");
Сообщить(Записи.Получить(1).Товар = "Коробка");
Сообщить(Записи.Получить(2).Товар = "Ручка");
Сообщить(Снимок.Итог("Сумма") = 860);
Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаУчебныхЗаписей", Тип("ТаблицаФормы"));
Таблица.ПутьКДанным = "УчебныеЗаписи";
Таблица.Заголовок = "Только собственные строки в памяти — регистр не записывается";
Таблица.ТолькоПросмотр = Истина;
Таблица.АвтоВводНезаполненного = Ложь;
Таблица.АвтоВводНовойСтроки = Ложь;
Для Каждого ИмяКолонки Из СтрРазделить("Номер,Товар,Количество,Сумма", ",") Цикл
Поле = ЭтаФорма.Элементы.Добавить("УчебноеПоле" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "УчебныеЗаписи." + ИмяКолонки;
Поле.Заголовок = ИмяКолонки;
КонецЦикла;
КонецПроцедурыРазбор по шагам
Выгрузить все колонки и строки перед очисткой. Снимок — отдельная таблица на сервере, не файл резервного копирования.
Очистить только модель своего набора: число строк становится 0, снимок по-прежнему содержит три строки.
Отсортировать независимый снимок по сумме по убыванию и загрузить его в ту же модель. Колонки совмещаются по именам.
Проверить восстановленные количество 6 и сумму 860. Получить три строки в ожидаемом порядке 750, 60, 50.
Набор не преобразуется обратно для записи. Текущее содержимое реального регистра не читается и не меняется.
Как проверить результат
Все булевы сообщения Истина. На форме Книга 750, Коробка 60, Ручка 50.
Восстановлены значения и порядок собственных строк; сохранение прежних идентификаторов строк этим уроком не обещается.
Ожидаемый результат
Получен полный обратимый в памяти опыт очистки и загрузки модели набора.
На что обратить внимание
Очистить модель и Записать пустой набор — совершенно разные действия. Второго вызова в уроке нет.
Загрузить только серверный метод. Снимок должен иметь колонки и типы, совместимые с собственной схемой.
Не выгружайте живую базу и не переносите сюда рабочий набор с последующим Записать: это уже другой рискованный процесс.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.