ЗагрузитьКолонку у последовательности принимает сначала массив, затем имя поля. Загрузить таблицы заменяет прежние строки, поэтому три апрельские–июньские строки сменяются двумя июльской–августовской.
Где и как запускать
Полный серверный общий модуль УчебныеНаборыПоследовательности85 собственной новой конфигурации УчебныеПоследовательности85, точная 8.5.1.1343. Только собственный черновик памяти; 1С здесь не запускалась, записей базы нет.
Подготовка
Создайте новую отдельную пустую базу 8.5.1.1343, не копию рабочей УТ/КА2. Имя конфигурации УчебныеПоследовательности85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать. Расширений, подписок и обработчиков записи нет.
В Документы создайте единственный документ УчебнаяРегистрация85: проведение запрещено, реквизитов и табличных частей нет, движения регистров не назначены, модули объекта и менеджера пусты. Документы этого вида в уроке не создаются и не записываются.
В Последовательности создайте единственную УчебнаяОчередь85. В составе Документы выберите только свой УчебнаяРегистрация85. Измерений, зависимых регистров в составе Движения и дополнительных индексов нет. ПеремещениеГраницыПриПроведении=НеПеремещать. Модуль набора пуст. Структура записей поэтому содержит только Период и Регистратор.
Не создавайте в стенде справочников и регистров. Для учебного пользователя разрешите собственные метаданные, общую форму и команды. Обновите только эту новую конфигурацию. Проверка имени и состава схемы выполняется до создания набора; она не доказывает отсутствия записей базы и не делает рабочую базу безопасной.
В Общие → Общие модули создайте УчебныеНаборыПоследовательности85: Сервер=Истина, ВызовСервера=Истина, Глобальный=Ложь, клиентские флаги выключены. Полный основной модуль одного выбранного урока вставьте на верхнем уровне целиком. Все помощники предоставлены ниже в том же модуле.
В Общие → Общие формы создайте управляемую форму УчебныйЗапускПоследовательности85. Добавьте команду ВыполнитьУрок с действием ВыполнитьУрок, ИзменяетСохраняемыеДанные=Ложь и кнопку Выполнить урок. Полный модуль формы:
&НаКлиенте
Процедура ВыполнитьУрок(Команда)
ВыполнитьУрокНаСервере();
КонецПроцедуры&НаСервереБезКонтекста
Процедура ВыполнитьУрокНаСервере()
УчебныеНаборыПоследовательности85.ВыполнитьПример();
КонецПроцедурыВ Общие → Общие команды создайте ОткрытьНаборПоследовательности85 без параметра и включите в свой учебный раздел. Полный модуль общей команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("ОбщаяФорма.УчебныйЗапускПоследовательности85");
КонецПроцедуры
Откройте свою форму этой командой и выполните её кнопку. Два вспомогательных модуля не вставляйте в основной серверный модуль.Плановые ссылки создаются ПолучитьСсылку на собственные новые UUID. Непустая ссылка не означает существующий документ; реквизиты ссылок не читаются. Это идентификаторы собственных незаписанных черновых строк, не готовые записи для сохранения в базу.
Здесь нет Прочитать, Записать, проведения, восстановления или изменения границы. Добавить/Загрузить/Удалить/Очистить действуют только на принадлежащий уроку экземпляр набора в памяти. Этот пример нельзя превращать в исправление последовательности добавлением Записать.
Статически проверены исходный код и установленная справка. Компиляция и выполнение в 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]);
НовыеПериоды = Новый Массив;
НовыеПериоды.Добавить(Дата(2026, 4, 1));
НовыеПериоды.Добавить(Дата(2026, 5, 1));
НовыеПериоды.Добавить(Дата(2026, 6, 1));
Если НовыеПериоды.Количество() <> Набор.Количество() Тогда
ВызватьИсключение "Наш массив обязан иметь ровно по одному значению для каждой строки";
КонецЕсли;
Для Каждого Период Из НовыеПериоды Цикл
Если ТипЗнч(Период) <> Тип("Дата") Тогда
ВызватьИсключение "В собственном массиве допускаются только даты";
КонецЕсли;
КонецЦикла;
Набор.ЗагрузитьКолонку(НовыеПериоды, "Период");
Для ИндексСтроки = 0 По 2 Цикл
ПроверитьСвоюЗапись(Набор[ИндексСтроки], НовыеПериоды[ИндексСтроки], Ссылки[ИндексСтроки]);
КонецЦикла;
Замена = Набор.ВыгрузитьКолонки("Период,Регистратор");
Для ИндексСтроки = 0 По 1 Цикл
СтрокаЗамены = Замена.Добавить();
СтрокаЗамены.Период = Дата(2026, ИндексСтроки + 7, 1);
СтрокаЗамены.Регистратор = Ссылки[ИндексСтроки + 1];
КонецЦикла;
Набор.Загрузить(Замена);
Если Набор.Количество() <> 2 Тогда
ВызватьИсключение "Загрузить заменяет прежние три строки двумя, не добавляет их";
КонецЕсли;
Для ИндексСтроки = 0 По 1 Цикл
ПроверитьСвоюЗапись(Набор[ИндексСтроки], Дата(2026, ИндексСтроки + 7, 1), Ссылки[ИндексСтроки + 1]);
КонецЦикла;
Замена[0].Период = Дата(2026, 12, 1);
ПроверитьСвоюЗапись(Набор[0], Дата(2026, 7, 1), Ссылки[1]);
ПроверитьСвоюЗапись(Набор[1], Дата(2026, 8, 1), Ссылки[2]);
Сообщить("В памяти сначала апрель/май/июнь, после полной замены июль/август; база не читалась");
КонецПроцедуры
Процедура ДобавитьСвоюЗапись(Набор, Период, Регистратор)
Если ТипЗнч(Период) <> Тип("Дата") Или ТипЗнч(Регистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
ВызватьИсключение "Переданы неверные собственные ключи строки";
КонецЕсли;
Запись = Набор.Добавить();
Запись.Период = Период;
Запись.Регистратор = Регистратор;
КонецПроцедуры
Процедура ПроверитьСвоюЗапись(Запись, Период, Регистратор)
Если ТипЗнч(Запись.Период) <> Тип("Дата") Или ТипЗнч(Запись.Регистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
ВызватьИсключение "Типы фактической собственной записи не совпали";
КонецЕсли;
Если Запись.Период <> Период Или Запись.Регистратор <> Регистратор Тогда
ВызватьИсключение "Период или регистратор собственной записи не совпал";
КонецЕсли;
КонецПроцедурыРазбор по шагам
Создать свои три исходные регистрации января–марта с разными плановыми ссылками.
Наполнить отдельный Массив тремя датами апреля–июня через Добавить. Размер и тип каждого элемента проверяются до загрузки.
Вызвать ЗагрузитьКолонку(НовыеПериоды,"Период") и проверить все три новые даты вместе с неизменными регистраторами.
Получить пустую таблицу точной схемы через ВыгрузитьКолонки и добавить две свои строки июля и августа с собственными второй и третьей ссылками.
Загрузить(Замена) должно оставить две записи: проверить размер и оба поля каждой. Это замена, не добавление до пяти.
После загрузки изменить дату только исходной таблицы Замена и снова проверить обе записи набора: июль/август не меняются.
Как проверить результат
После загрузки колонки: апрель/ссылка1, май/ссылка2, июнь/ссылка3 в текущем порядке индексов.
После полной замены ровно июль/ссылка2 и август/ссылка3; изменение таблицы-источника не меняет обе записи.
Нет чтения или записи базы. Поведение более коротких/длинных массивов намеренно не предполагается: свой массив проверяется на точное совпадение длины.
Ожидаемый результат
Показаны поэлементная загрузка одной колонки и полная замена состава локального набора с точными проверками.
На что обратить внимание
Набор создаётся пустым: это не чтение существующих регистраций. Количество считает только строки своего экземпляра памяти, не документы базы.
Плановые ссылки принадлежат своему типу, но документы не записаны. Не читайте у них дату/номер и не объявляйте их существующими.
Для индексных методов нумерация с нуля. После удаления индексы оставшихся строк меняются; ссылка на строку и её текущий индекс — разные вещи.
Удалить и Очистить здесь удаляют лишь черновые строки памяти. Они не отменяют документ и не исправляют границу последовательности.
Readonly-свойство набора нельзя заменить новым значением. ДополнительныеСвойства допускает работу с содержимым возвращённой структуры, не присваивание новой структуры свойству.
Модифицированность не обнаруживает изменения других пользователей и не подтверждает сохранение. ЭтотОбъект относится к модулю набора; в общем модуле данного урока не применяется.
Python-тесты не исполняют платформу. Полный модуль надо отдельно скомпилировать и испытать в собственной подготовленной конфигурации; рабочие данные здесь не менялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.