ПоследовательностьНаборЗаписей.<Имя последовательности>.Выгрузить

Методы · Unload

Создает таблицу значений и копирует в нее записи набора. Структура полученной таблицы совпадает со структурой набора записей.

Синтаксис

Выгрузить(<Строки>, <Колонки>)
Полное описание, параметры и ограничения

ПоследовательностьНаборЗаписей.<Имя последовательности>.Выгрузить (SequenceRecordSet.<Sequence name>.Unload)

ПоследовательностьНаборЗаписей.<Имя последовательности> (SequenceRecordSet.<Sequence name>)

Выгрузить (Unload)

Доступен, начиная с версии 8.1.

Синтаксис:
Выгрузить(<Строки>, <Колонки>)
Параметры:

<Строки> (необязательный)
Тип: Массив.
Массив строк для выгрузки. Если не указан, выгружаются все строки набора записей.

<Колонки> (необязательный)
Тип: Строка.
Список колонок для выгрузки в формате: "Колонка1, Колонка2...". Если список не задан, то будут выгружены все колонки.
Возвращаемое значение:
Тип: ТаблицаЗначений.

Описание:

Создает таблицу значений и копирует в нее записи набора.
Структура полученной таблицы совпадает со структурой набора записей.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Выгрузить снимок, пустую схему и одну выбранную дату

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

Где и как запускать

Полный серверный общий модуль УчебныеНаборыПоследовательности85 собственной новой конфигурации УчебныеПоследовательности85, точная 8.5.1.1343. Только собственный черновик памяти; 1С здесь не запускалась, записей базы нет.

Подготовка

  1. Создайте новую отдельную пустую базу 8.5.1.1343, не копию рабочей УТ/КА2. Имя конфигурации УчебныеПоследовательности85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать. Расширений, подписок и обработчиков записи нет.

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

  3. В Последовательности создайте единственную УчебнаяОчередь85. В составе Документы выберите только свой УчебнаяРегистрация85. Измерений, зависимых регистров в составе Движения и дополнительных индексов нет. ПеремещениеГраницыПриПроведении=НеПеремещать. Модуль набора пуст. Структура записей поэтому содержит только Период и Регистратор.

  4. Не создавайте в стенде справочников и регистров. Для учебного пользователя разрешите собственные метаданные, общую форму и команды. Обновите только эту новую конфигурацию. Проверка имени и состава схемы выполняется до создания набора; она не доказывает отсутствия записей базы и не делает рабочую базу безопасной.

  5. В Общие → Общие модули создайте УчебныеНаборыПоследовательности85: Сервер=Истина, ВызовСервера=Истина, Глобальный=Ложь, клиентские флаги выключены. Полный основной модуль одного выбранного урока вставьте на верхнем уровне целиком. Все помощники предоставлены ниже в том же модуле.

  6. В Общие → Общие формы создайте управляемую форму УчебныйЗапускПоследовательности85. Добавьте команду ВыполнитьУрок с действием ВыполнитьУрок, ИзменяетСохраняемыеДанные=Ложь и кнопку Выполнить урок. Полный модуль формы:
    &НаКлиенте
    Процедура ВыполнитьУрок(Команда)
    ВыполнитьУрокНаСервере();
    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ВыполнитьУрокНаСервере()
    УчебныеНаборыПоследовательности85.ВыполнитьПример();
    КонецПроцедуры

  7. В Общие → Общие команды создайте ОткрытьНаборПоследовательности85 без параметра и включите в свой учебный раздел. Полный модуль общей команды:
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("ОбщаяФорма.УчебныйЗапускПоследовательности85");
    КонецПроцедуры
    Откройте свою форму этой командой и выполните её кнопку. Два вспомогательных модуля не вставляйте в основной серверный модуль.

  8. Плановые ссылки создаются ПолучитьСсылку на собственные новые UUID. Непустая ссылка не означает существующий документ; реквизиты ссылок не читаются. Это идентификаторы собственных незаписанных черновых строк, не готовые записи для сохранения в базу.

  9. Здесь нет Прочитать, Записать, проведения, восстановления или изменения границы. Добавить/Загрузить/Удалить/Очистить действуют только на принадлежащий уроку экземпляр набора в памяти. Этот пример нельзя превращать в исправление последовательности добавлением Записать.

  10. Статически проверены исходный код и установленная справка. Компиляция и выполнение в 1С здесь не проверялись; ожидаемые результаты далее нужно подтвердить самостоятельным запуском только в подготовленной новой учебной базе.

Процедура ВыполнитьПример() Экспорт
    Если Метаданные.Последовательности.Количество() <> 1 Или Метаданные.Документы.Количество() <> 1 Тогда
        ВызватьИсключение "В своём стенде нужны ровно одна последовательность и один вид документа";
    КонецЕсли;
    МетаОчереди = Метаданные.Последовательности.Найти("УчебнаяОчередь85");
    МетаДокумента = Метаданные.Документы.Найти("УчебнаяРегистрация85");
    Если МетаОчереди = Неопределено Или МетаДокумента = Неопределено Тогда
        ВызватьИсключение "Не подготовлена собственная схема урока";
    КонецЕсли;
    Если МетаОчереди.Измерения.Количество() <> 0 Или МетаОчереди.Движения.Количество() <> 0
        Или МетаОчереди.Документы.Количество() <> 1 Тогда
        ВызватьИсключение "Нужна собственная очередь без измерений и зависимых регистров";
    КонецЕсли;
    Участвует = Ложь;
    Для Каждого МетаУчастника Из МетаОчереди.Документы Цикл
        Участвует = МетаУчастника = МетаДокумента;
    КонецЦикла;
    Если Не Участвует Тогда
        ВызватьИсключение "Единственный участник должен быть своим УчебнаяРегистрация85";
    КонецЕсли;
    Если МетаОчереди.ПеремещениеГраницыПриПроведении <> Метаданные.СвойстваОбъектов.ПеремещениеГраницыПриПроведении.НеПеремещать Тогда
        ВызватьИсключение "Проверьте подготовку политики границы собственной очереди";
    КонецЕсли;
    Набор = Последовательности.УчебнаяОчередь85.СоздатьНаборЗаписей();
    Если Набор.Количество() <> 0 Или Набор.Метаданные() <> МетаОчереди Тогда
        ВызватьИсключение "Ожидался новый пустой набор собственной последовательности";
    КонецЕсли;
    Ссылки = Новый Массив;
    Для Номер = 1 По 3 Цикл
        Ссылки.Добавить(Документы.УчебнаяРегистрация85.ПолучитьСсылку(Новый УникальныйИдентификатор));
    КонецЦикла;
    ДобавитьСвоюЗапись(Набор, Дата(2026, 1, 1), Ссылки[0]);
    ДобавитьСвоюЗапись(Набор, Дата(2026, 2, 1), Ссылки[1]);
    ДобавитьСвоюЗапись(Набор, Дата(2026, 3, 1), Ссылки[2]);
    Снимок = Набор.Выгрузить();
    Схема = Набор.ВыгрузитьКолонки("Период,Регистратор");
    Если Снимок.Количество() <> 3 Или Снимок.Колонки.Количество() <> 2
        Или Схема.Количество() <> 0 Или Схема.Колонки.Количество() <> 2 Тогда
        ВызватьИсключение "Полный снимок и пустая схема перепутаны";
    КонецЕсли;
    Для ИндексСтроки = 0 По 2 Цикл
        ПроверитьСвоюЗапись(Снимок[ИндексСтроки], Дата(2026, ИндексСтроки + 1, 1), Ссылки[ИндексСтроки]);
    КонецЦикла;
    Выбранные = Новый Массив;
    Выбранные.Добавить(Набор[1]);
    ОдинПериод = Набор.Выгрузить(Выбранные, "Период");
    Если ОдинПериод.Количество() <> 1 Или ОдинПериод.Колонки.Количество() <> 1
        Или ОдинПериод[0].Период <> Дата(2026, 2, 1) Тогда
        ВызватьИсключение "Проекция должна содержать только февральскую дату";
    КонецЕсли;
    Если ОдинПериод.Колонки.Найти("Регистратор") <> Неопределено Тогда
        ВызватьИсключение "Лишняя колонка попала в проекцию";
    КонецЕсли;
    Снимок[0].Период = Дата(2026, 12, 1);
    Для ИндексСтроки = 0 По 2 Цикл
        ПроверитьСвоюЗапись(Набор[ИндексСтроки], Дата(2026, ИндексСтроки + 1, 1), Ссылки[ИндексСтроки]);
    КонецЦикла;
    Сообщить("Снимок независим; схема содержит только колонки; проекция содержит февраль");
КонецПроцедуры

Процедура ДобавитьСвоюЗапись(Набор, Период, Регистратор)
    Если ТипЗнч(Период) <> Тип("Дата") Или ТипЗнч(Регистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
        ВызватьИсключение "Переданы неверные собственные ключи строки";
    КонецЕсли;
    Запись = Набор.Добавить();
    Запись.Период = Период;
    Запись.Регистратор = Регистратор;
КонецПроцедуры

Процедура ПроверитьСвоюЗапись(Запись, Период, Регистратор)
    Если ТипЗнч(Запись.Период) <> Тип("Дата") Или ТипЗнч(Запись.Регистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
        ВызватьИсключение "Типы фактической собственной записи не совпали";
    КонецЕсли;
    Если Запись.Период <> Период Или Запись.Регистратор <> Регистратор Тогда
        ВызватьИсключение "Период или регистратор собственной записи не совпал";
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Заново получить свои три строки января/февраля/марта по полной подготовке, без чтения базы.

  2. Выгрузить весь набор: три строки, два столбца. Проверить оба поля каждой строки снимка.

  3. ВыгрузитьКолонки("Период,Регистратор") создаёт таблицу с двумя столбцами и нулём строк; не выдавать её за копию данных.

  4. В массив выбора добавить саму вторую запись своего набора, не индекс и не строку ТаблицаЗначений.

  5. Выгрузить выбранные строки с колонкой Период: проверить единственную февральскую дату и отсутствие Регистратор.

  6. Изменить только январскую дату снимка на декабрьскую и повторно сверить все три исходные записи.

Как проверить результат

  1. Снимок 3×2, пустая схема 0×2, проекция 1×1 с точной февральской датой.

  2. В проекции нет колонки Регистратор; исходный набор после изменения снимка по-прежнему январь/февраль/март со своими ссылками.

Ожидаемый результат

Три разные формы выгрузки решают разные задачи, а независимость копии проверена кодом.

На что обратить внимание

  1. Набор создаётся пустым: это не чтение существующих регистраций. Количество считает только строки своего экземпляра памяти, не документы базы.

  2. Плановые ссылки принадлежат своему типу, но документы не записаны. Не читайте у них дату/номер и не объявляйте их существующими.

  3. Для индексных методов нумерация с нуля. После удаления индексы оставшихся строк меняются; ссылка на строку и её текущий индекс — разные вещи.

  4. Удалить и Очистить здесь удаляют лишь черновые строки памяти. Они не отменяют документ и не исправляют границу последовательности.

  5. Readonly-свойство набора нельзя заменить новым значением. ДополнительныеСвойства допускает работу с содержимым возвращённой структуры, не присваивание новой структуры свойству.

  6. Модифицированность не обнаруживает изменения других пользователей и не подтверждает сохранение. ЭтотОбъект относится к модулю набора; в общем модуле данного урока не применяется.

  7. Python-тесты не исполняют платформу. Полный модуль надо отдельно скомпилировать и испытать в собственной подготовленной конфигурации; рабочие данные здесь не менялись.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.