Создает таблицу значений и копирует в нее записи набора. Структура полученной таблицы совпадает со структурой набора записей. Значения субконто выгружаются вместе с видами субконто. Для каждого субконто создается пара колонок с идентификаторами вида ВидСубконто<Номер>, Субконто<Номер>, для регистра не поддерживающего корреспонденцию, и ВидСубконтоДт<Номер>, СубконтоДт<Номер>, ВидСубконтоКт<Номер>, СубконтоКт<Номер>, для регистра поддерживающего корреспонденцию. При этом номера <Номер> могут не совпадать с номерами видов субконто на соответствующем счете.
Синтаксис
Выгрузить(<Строки>, <Колонки>)Примеры платформы
Рег = РегистрыБухгалтерии.Хозрасчетный;
НаборЗаписей = Рег.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Документ.Значение = Ссылка;
ОсновныеДанные = НаборЗаписей.Выгрузить();Полное описание, параметры и ограничения
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии>.Выгрузить (AccountingRegisterRecordSet.<Accounting register name>.Unload)
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Accounting register name>)
Выгрузить (Unload)
Доступен, начиная с версии 8.1.
Синтаксис:
Выгрузить(<Строки>, <Колонки>)
Параметры:
<Строки> (необязательный)
Тип: Массив.
Массив строк для выгрузки. Если не указан, выгружаются все строки набора записей.
<Колонки> (необязательный)
Тип: Строка.
Список колонок для выгрузки в формате: "Колонка1, Колонка2...". Если список не задан, то будут выгружены все колонки.
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Создает таблицу значений и копирует в нее записи набора. Структура полученной таблицы совпадает со структурой набора записей. Значения субконто выгружаются вместе с видами субконто. Для каждого субконто создается пара колонок с идентификаторами вида ВидСубконто<Номер>, Субконто<Номер>, для регистра не поддерживающего корреспонденцию, и ВидСубконтоДт<Номер>, СубконтоДт<Номер>, ВидСубконтоКт<Номер>, СубконтоКт<Номер>, для регистра поддерживающего корреспонденцию. При этом номера <Номер> могут не совпадать с номерами видов субконто на соответствующем счете.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
Рег = РегистрыБухгалтерии.Хозрасчетный;
НаборЗаписей = Рег.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Документ.Значение = Ссылка;
ОсновныеДанные = НаборЗаписей.Выгрузить();
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Загрузить новую колонку сумм и восстановить набор из своей таблицы
Загрузить заменяет прежние записи только текущего набора. ЗагрузитьКолонку сопоставляет значения по индексам, не по счёту.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита);
Снимок = Набор.Выгрузить();
НовыеСуммы = Новый Массив;
НовыеСуммы.Добавить(1000);
НовыеСуммы.Добавить(100);
Набор.ЗагрузитьКолонку(НовыеСуммы, "Сумма");
Сообщить(Набор.Получить(0).Сумма = 1000 И Набор.Получить(1).Сумма = 100);
Сообщить(Набор.Итог("Сумма") = 1100);
Сообщить(Снимок.Итог("Сумма") = 800);
Лишняя = Набор.Добавить();
ЗаполнитьСвоюПроводку(Лишняя, СвояСсылка, СчетДебета, СчетКредита, 60);
Сообщить(Набор.Количество() = 3);
Набор.Загрузить(Снимок);
Сообщить(Набор.Количество() = 2 И Набор.Итог("Сумма") = 800);
Сообщить(Набор.Получить(0).Сумма = 750 И Набор.Получить(1).Сумма = 50);
Сообщить(Снимок.Количество() = 2 И Снимок.Итог("Сумма") = 800);
КонецПроцедуры
Функция СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита)
Набор = РегистрыБухгалтерии.УчебныеПроводки85.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Для Каждого СуммаСтроки Из СтрРазделить("750,50", ",") Цикл
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, Число(СуммаСтроки));
КонецЦикла;
Возврат Набор;
КонецФункции
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
Сохранить полную таблицу исходных двух проводок 750 и 50.
Загрузить массив из ровно двух новых сумм в колонку Сумма: сопоставление по позиции.
Убедиться, что исходная таблица сохранила сумму 800. Добавить третью собственную запись 60.
Загрузить исходную полную таблицу: третья запись исчезла из памяти, старые две восстановились.
Проверить реквизиты строк по именам колонок. Только доступные для записи свойства заполняются из таблицы.
Как проверить результат
Семь сообщений Истина: 1100, старая копия 800, временно три строки и снова две с 750/50.
Нет записи в базу и нет попытки загрузить значение readonly НомерСтроки как постоянный ключ.
Ожидаемый результат
Рабочий пример замены собственного набора и изменения одной колонки с исходным снимком.
На что обратить внимание
Загрузить не добавляет к старому набору: старые записи в памяти заменяются.
Массив значений колонки должен соответствовать количеству и порядку собственных строк.
Не называйте замену набора в памяти откатом ранее записанных проводок базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Разделить структуру, данные, выбранные строки и колонку проводок
ВыгрузитьКолонки создаёт пустую схему; Выгрузить копирует записи; ВыгрузитьКолонку возвращает массив значений.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита);
Схема = Набор.ВыгрузитьКолонки("Период,Регистратор,Сумма");
Сообщить(Схема.Количество() = 0 И Схема.Колонки.Количество() = 3);
Полная = Набор.Выгрузить();
Сообщить(Полная.Количество() = 2 И Полная.Итог("Сумма") = 800);
СвоиСтроки = Новый Массив;
СвоиСтроки.Добавить(Набор.Получить(0));
Часть = Набор.Выгрузить(СвоиСтроки, "СчетДт,СчетКт,Сумма");
Сообщить(Часть.Количество() = 1 И Часть.Итог("Сумма") = 750);
Колонка = Набор.ВыгрузитьКолонку("Сумма");
Сообщить(Колонка.Количество() = 2 И Колонка[0] = 750 И Колонка[1] = 50);
Набор.Получить(0).Сумма = 1000;
Сообщить(Набор.Итог("Сумма") = 1050);
Сообщить(Полная.Итог("Сумма") = 800 И Часть.Итог("Сумма") = 750);
Сообщить(Колонка[0] = 750);
Сообщить(СвоиСтроки[0].Сумма = 1000);
КонецПроцедуры
Функция СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита)
Набор = РегистрыБухгалтерии.УчебныеПроводки85.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Для Каждого СуммаСтроки Из СтрРазделить("750,50", ",") Цикл
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, Число(СуммаСтроки));
КонецЦикла;
Возврат Набор;
КонецФункции
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
Получить только три колонки схемы: строк нет, количество колонок три.
Получить полную копию двух проводок и частичную копию первой записи с тремя явно названными колонками.
ВыгрузитьКолонку("Сумма") копирует значения по порядку индексов в массив 750,50.
Изменить первую оригинальную запись на 1000. Выгруженные таблицы и массив чисел сохранили старые значения.
Массив СвоиСтроки содержит сами записи оригинального набора, поэтому через него видна сумма 1000.
Как проверить результат
Восемь сообщений Истина: схема без строк, копии 800/750, колонка 750/50, оригинал после изменения 1050.
Обычный массив ссылок на записи — не снимок; СвоиСтроки[0] показывает новое значение 1000.
Ожидаемый результат
Три разных способа выгрузки проверены на изменении собственных данных.
На что обратить внимание
ВыгрузитьКолонки не содержит данные, даже если исходный набор заполнен.
Выгрузка субконто требует пары колонок видов и значений; данный план намеренно без субконто и не показывает выдуманные Субконто1.
Таблица значений может использоваться дальше в памяти, но сама по себе не является движением базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.