ОписанияСистемЛинейныхУравнений.Очистить

Методы · Clear

Очищает коллекцию.

Синтаксис

Очистить()
Полное описание, параметры и ограничения

ОписанияСистемЛинейныхУравнений.Очистить (SystemDescriptions.Clear)

ОписанияСистемЛинейныхУравнений (SystemDescriptions)

Очистить (Clear)

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

Синтаксис:
Очистить()
Описание:

Очищает коллекцию.

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

Сервер, толстый клиент, внешнее соединение.

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

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

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

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

Подготовить два описания систем, убрать черновик и очистить только собственную коллекцию

Коллекция ОписанияСистем хранит настройки расчёта, не решения и не записи информационной базы.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Учебная база платформы 8.5.1.1343, серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело ВыполнитьПример() Экспорт и вызовите из серверной команды собственной обработки.

  2. Все таблицы создаются в памяти. Документы, регистры, расчёт себестоимости конфигурации и внешние сервисы не используются.

  3. Номера уравнений и переменных 0 и 1 в этих задачах — собственные ключи. Имена колонок передаются явно; индексы коллекций начинаются с 0.

  4. Не запускайте расчёт больших матриц на рабочем сервере по аналогии с уроком: здесь только две неизвестные и контроль заранее известного решения.

Узлы = Новый ТаблицаЗначений;
Узлы.Колонки.Добавить("Уравнение", Новый ОписаниеТипов("Число"));
Узлы.Колонки.Добавить("B1", Новый ОписаниеТипов("Число"));
Узлы.Колонки.Добавить("B2", Новый ОписаниеТипов("Число"));
Узел0 = Узлы.Добавить();
Узел0.Уравнение = 0;
Узел0.B1 = 5;
Узел0.B2 = 12;
Узел1 = Узлы.Добавить();
Узел1.Уравнение = 1;
Узел1.B1 = 1;
Узел1.B2 = 1;
Связи = Новый ТаблицаЗначений;
Связи.Колонки.Добавить("Уравнение", Новый ОписаниеТипов("Число"));
Связи.Колонки.Добавить("Переменная", Новый ОписаниеТипов("Число"));
Связи.Колонки.Добавить("A1", Новый ОписаниеТипов("Число"));
Связи.Колонки.Добавить("A2", Новый ОписаниеТипов("Число"));
Коэффициенты = Новый Массив;
Коэффициенты.Добавить(Новый Структура("Уравнение,Переменная,A1,A2", 0, 0, 2, 2));
Коэффициенты.Добавить(Новый Структура("Уравнение,Переменная,A1,A2", 0, 1, 1, 3));
Коэффициенты.Добавить(Новый Структура("Уравнение,Переменная,A1,A2", 1, 0, 1, 1));
Коэффициенты.Добавить(Новый Структура("Уравнение,Переменная,A1,A2", 1, 1, -1, -1));
Для Каждого Коэффициент Из Коэффициенты Цикл
    НоваяСвязь = Связи.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСвязь, Коэффициент);
КонецЦикла;
Расчет = Новый РасчетСистемЛинейныхУравнений;
Расчет.ИсточникДанныхУзлов = Узлы;
Расчет.ИсточникДанныхСвязей = Связи;
Расчет.КолонкаУравненияВУзлах = "Уравнение";
Расчет.КолонкаУравненияВСвязях = "Уравнение";
Расчет.КолонкаПеременныеВСвязях = "Переменная";
Описание = Расчет.ОписанияСистем.Добавить();
Описание.КолонкаКоэффициентовВСвязях = "A1";
Описание.КолонкаКоэффициентовВУзлах = "B1";
Черновик = Расчет.ОписанияСистем.Добавить();
Черновик.КолонкаКоэффициентовВСвязях = "A2";
Черновик.КолонкаКоэффициентовВУзлах = "B2";
Сообщить(Расчет.ОписанияСистем.Количество() = 2);
Сообщить(Расчет.ОписанияСистем.Получить(0).КолонкаКоэффициентовВСвязях = "A1");
Расчет.ОписанияСистем.Удалить(Черновик);
Сообщить(Расчет.ОписанияСистем.Количество() = 1);
Замена = Расчет.ОписанияСистем.Добавить();
Замена.КолонкаКоэффициентовВСвязях = "A2";
Замена.КолонкаКоэффициентовВУзлах = "B2";
Расчет.ОписанияСистем.Удалить(1);
Сообщить(Расчет.ОписанияСистем.Количество() = 1);
Расчет.ОписанияСистем.Очистить();
Сообщить(Расчет.ОписанияСистем.Количество() = 0);
Сообщить(Узлы.Количество() = 2 И Связи.Количество() = 4);
Сообщить("Исходные таблицы остались в памяти; расчёт после очистки не запускаем.");

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

  1. Создаём собственный объект расчёта с собственными таблицами и одним описанием A1/B1.

  2. Добавляем черновик A2/B2, проверяем два элемента и доступ по индексу 0.

  3. Удалить поддерживает объект элемента и индекс. Показываем оба варианта на разных собственных черновиках.

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

  5. После очистки метод расчёта не вызываем: ему требуется хотя бы одно описание системы.

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

  1. Шесть сравнений Истина: оба способа удаления оставляют одну систему, очистка — ноль, источники сохраняют 2/4 строки.

  2. Ни один документ, регистр или внешний файл не изменяется.

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

Жизненный цикл коллекции настроек и область очистки объяснены без разрушения исходных данных.

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

  1. Очистить не заменяет заново сформированную корректную систему. Добавьте описание перед следующим расчётом.

  2. Индекс коллекции начинается с 0, но колонки результата называются Решение1, Решение2: не смешивайте эти номера.

  3. Не используйте удалённый объект описания как действующий элемент коллекции.

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

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

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

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

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