ВедущиеВидыРасчета.<Имя плана видов расчета>.Удалить

Методы · Delete

Удаляет строку с указанным индексом из табличной части.

Синтаксис

Удалить(<Индекс>)
Полное описание, параметры и ограничения

ВедущиеВидыРасчета.<Имя плана видов расчета>.Удалить (LeadingCalculationTypes.<Chart of calculation types name>.Delete)

ВедущиеВидыРасчета.<Имя плана видов расчета> (LeadingCalculationTypes.<Chart of calculation types name>)

Удалить (Delete)

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

Синтаксис:
Удалить(<Индекс>)
Параметры:

<Индекс> (обязательный)
Тип: Число, ВедущиеВидыРасчетаСтрока.<Имя плана видов расчета>.
Индекс удаляемой строки в табличной части, либо сама удаляемая строка.
Описание:

Удаляет строку с указанным индексом из табличной части.

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

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

Примечание:
Данный метод следует использовать осмотрительно в том случае, если в табличной части есть предопределенные строки (т.е. имеются строки, для которых свойство Предопределенный имеет значение Истина). Если удалить предопределенную строку табличной части, то не будет возможности записать такие изменения.
Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Использование в версии:

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

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

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

Вставить, переместить и удалить собственную строку: ведущие виды

Зависимости перерасчёта: изменение ведущего вида может потребовать перерасчёта зависимого, но этот пример не запускает его. Работаем с двумя строками нового определения Премия в памяти, не с сохранённой ссылкой.

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

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

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, имя корня УчебныеРасчеты85. Не изменяйте рабочие ЗУП/КА2/УНФ/УТ/БП. Пример технический: зарплата, налоги и выплаты не рассчитываются.

  2. Планы видов расчёта → Добавить: УчебныеНачисления85. ТипКода Строка, ДлинаКода 10, ДлинаНаименования 100. ИспользованиеПериодаДействия включено; ЗависимостьОтВидовРасчета=ПоПериодуДействия.

  3. В настройке базовых планов видов расчёта выберите только сам УчебныеНачисления85. Это позволяет учебным видам ссылаться на другие виды того же плана. Предопределённые виды, пользовательские реквизиты и табличные части не создавайте.

  4. Модули объекта/менеджера оставьте пустыми, регистры расчёта и бизнес-алгоритмы не добавляйте. Обновите конфигурацию БД и создайте серверный ВыполнитьПример() Экспорт собственной обработки.

  5. Фрагмент вставляется внутрь процедуры. Все виды и строки зависимостей создаются только в памяти; Записать, блокировки, удаления объектов и привилегированный режим не вызываются.

  6. Случайные ссылки зависимостей — ПЛАНОВЫЕ идентификаторы, соответствующих сохранённых видов нет. Они нужны для разбора типизированных списков, а не для запуска расчёта.

Описание = Метаданные.ПланыВидовРасчета.Найти("УчебныеНачисления85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Создайте собственный план УчебныеНачисления85";
КонецЕсли;
Если Описание.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
    Или Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
    Или Не Описание.ИспользованиеПериодаДействия
    Или Описание.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия Тогда
    ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.БазовыеВидыРасчета.Количество() <> 1
    Или Не Описание.БазовыеВидыРасчета.Содержит(Описание) Тогда
    ВызватьИсключение "Выберите только собственный план как базовый";
КонецЕсли;
Менеджер = ПланыВидовРасчета.УчебныеНачисления85;
Премия = Менеджер.СоздатьВидРасчета();
Премия.Код = "BONUS";
Премия.Наименование = "Учебная премия";
Премия.ПериодДействияБазовый = Истина;
Премия.ДополнительныеСвойства.Вставить("Метка", "Не реальное начисление");
ПервыйВид = Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор);
ВторойВид = Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор);
Список = Премия.ВедущиеВидыРасчета;
Первая = Список.Добавить();
Первая.ВидРасчета = ПервыйВид;
Вторая = Список.Вставить(0);
Вторая.ВидРасчета = ВторойВид;
Сообщить(Список.Количество() = 2);
Сообщить(Список.Индекс(Вторая) = 0);
Сообщить(Список.Получить(0) = Вторая);
Сообщить(Вторая.НомерСтроки = 1);
Сообщить(Не Вторая.Предопределенный);
Список.Сдвинуть(Первая, -1);
Сообщить(Список.Индекс(Первая) = 0);
Сообщить(Первая.НомерСтроки = 1);
Если Вторая.Предопределенный Тогда
    ВызватьИсключение "Предопределённые строки не удаляем";
КонецЕсли;
Список.Удалить(Вторая);
Сообщить(Список.Количество() = 1);
Сообщить(Список.Получить(0).ВидРасчета = ПервыйВид);

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

  1. Добавить помещает первую строку в конец. Вставить(0) ставит вторую перед ней.

  2. Индекс начинается с 0, а НомерСтроки с 1. После перемещения позицию вычисляем заново, не храним устаревший индекс.

  3. Сдвинуть принимает саму строку и отрицательное смещение к началу. Перемещение не меняет ссылку ВидРасчета.

  4. Предопределенный проверяем до удаления. У собственных добавленных строк он Ложь; у строк конфигурации может быть Истина.

  5. Удалить получает строку этой же коллекции. Удаляется только зависимость в памяти, не вид расчёта в базе.

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

  1. Девять логических сообщений дают Истина; остаётся одна строка с ПервыйВид.

  2. В сохранённых видах и расчётных регистрах нет новых данных. Новое определение не записывалось.

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

Разобраны позиция, номер строки, перемещение и безопасная граница удаления строки зависимости.

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

  1. Мутирующие методы недоступны у частей, полученных из ссылки или выборки: нужен объект.

  2. Удаление предопределённой строки может сделать запись вида невозможной. Не экспериментируйте на рабочем объекте.

  3. Плановые ссылки не соответствуют сохранённым начислениям; этот пример не рассчитывает деньги.

  4. Зависимости перерасчёта: изменение ведущего вида может потребовать перерасчёта зависимого, но этот пример не запускает его.

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

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

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

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

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