ДокументОбъект.<Имя документа>.ПометкаУдаления

Свойства · DeletionMark

Тип: Булево. Содержит признак пометки на удаление документа. Истина - пометка удаления установлена.

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

ДокументОбъект.<Имя документа>.ПометкаУдаления (DocumentObject.<Document name>.DeletionMark)

ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)

ПометкаУдаления (DeletionMark)

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

Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак пометки на удаление документа.
Истина - пометка удаления установлена.
Доступность:

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

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

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

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

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

Собрать учебную заявку с двумя строками без записи и проведения

Документ создаём в памяти, заполняем дату и строки, считаем стоимость учебного набора и копируем экземпляр. Не используем бизнес-обработчики типовой конфигурации.

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

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

Подготовка

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

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

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

  6. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  7. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

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


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
Заявка.Дата = Дата(2026, 10, 2, 10, 0, 0);
Заявка.Комментарий = "Сценарий только в памяти";
Для Номер = 1 По 2 Цикл
    СтрокаЗаявки = Заявка.Товары.Добавить();
    СтрокаЗаявки.Товар = Справочники.УчебныеТовары.ПустаяСсылка();
    СтрокаЗаявки.Количество = ?(Номер = 1, 3, 1);
    СтрокаЗаявки.Цена = ?(Номер = 1, 250, 50);
КонецЦикла;
Итого = 0;
Для Каждого СтрокаЗаявки Из Заявка.Товары Цикл
    Итого = Итого + СтрокаЗаявки.Количество * СтрокаЗаявки.Цена;
КонецЦикла;
Сообщить(Итого = 800);
Сообщить(Заявка.ЭтоНовый());
Сообщить(Не Заявка.Проведен);
Сообщить(Не Заявка.ПометкаУдаления);
Сообщить(Заявка.Ссылка.Пустая());
Сообщить(Заявка.Метаданные().Имя = "УчебнаяЗаявка");
Заявка.ДополнительныеСвойства.Вставить("УчебныйИтог", Итого);
Сообщить(Заявка.ДополнительныеСвойства.УчебныйИтог);
Копия = Заявка.Скопировать();
Копия.Комментарий = "Независимая учебная копия";
Сообщить(Заявка.Комментарий = "Сценарий только в памяти");
Сообщить(Копия.ЭтоНовый());
Сообщить(Копия.Товары.Количество() = 2);

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

  1. СоздатьДокумент создаёт незаписанный экземпляр. Дата — реквизит документа, не строка форматирования.

  2. Количества и цены сохраняем числами, стоимость считаем по двум строкам: 3×250 + 1×50.

  3. ПустаяСсылка использована намеренно, чтобы упражнение не требовало записанных товаров. С такими строками нельзя объявлять заявку готовой к рабочей записи.

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

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

  1. Итог равен 800, обе заявки новые, исходная не проведена и имеет пустую ссылку.

  2. После изменения комментария копии исходный комментарий остался прежним, в копии 2 строки.

  3. В журнале документов УчебнаяЗаявка не появляется новая запись: ни Записать, ни проведение не выполнялись.

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

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

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

  1. Это арифметическое упражнение, не расчёт налогов, себестоимости или сумм типового документа.

  2. Скопировать не делает документ идентичным записанному оригиналу и не сохраняет его в базе.

  3. ДополнительныеСвойства не добавляют сохраняемый реквизит УчебныйИтог в метаданные документа.

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

Установить и снять пометку только у своей новой непроведённой заявки

Пометка меняет состояние своей записи, но не удаляет её. Перед установкой проверяются отсутствие локальных правок и проведения; всё создание и изменение отменяется.

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

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

Подготовка

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

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  6. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

  7. Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.

  8. У своего документа и товара модули пустые, подписок, расширений и внешних обработчиков нет. История данных выключена; проведение УчебнаяЗаявка запрещено, движения/регистры не создаются.

  9. Номер заявки здесь строковый длиной 9, с автонумерацией. Для иной числовой нумерации нельзя копировать проверки Строка. Дата задаётся собственным литералом, не читается из рабочего документа.

  10. Свойства ссылки readonly. Непустой UUID/ссылка не означает наличие записи, а ВерсияДанных — непрозрачная строка, не номер документа или версия конфигурации.

  11. Примеры здесь не запускались в 1С. Только код и установленная справка 8.5.1.1343; ваши документы не создавались, не проводились и не удалялись.

  12. Создайте серверный общий модуль УчебныеСсылкиДокументов и вставьте весь модуль одного урока. ВыполнитьПример() Экспорт вызывайте из своей процедуры формы с &НаСервереБезКонтекста; обновите конфигурацию БД.

  13. Для этого блока корень Учебная85, единственный справочник УчебныеТовары, единственный непроводимый документ УчебнаяЗаявка; регистров нет. Модули объекта/менеджера и подписки пустые, история выключена, расширений, обменов и фоновых заданий нет.

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

  15. Уроки с записью/пометкой/удалением сами создают новый товар и новую заявку внутри своей транзакции, отслеживают только их ссылки и отменяют всё при успехе/ошибке. Фиксации нет; не вызывайте их внутри чужой транзакции.

  16. Уроки черновика/времени/макета вообще не записывают документы. Все помощники и подготовленные данные предоставлены в полном модуле, внешняя библиотека не нужна.

  17. Прямое Удалить не проверяет ссылочную целостность; откат учебной транзакции не делает этот метод безопасным для рабочего документа. Допустима только своя новая пустая база без внешних обработчиков. Здесь 1С не запускалась.

Процедура ВыполнитьПример() Экспорт
    
    Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
    КонецЕсли;
    Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
        ВызватьИсключение "Сначала подготовьте собственную УчебнаяЗаявка";
    КонецЕсли;
    Если Метаданные.Справочники.Количество() <> 1
        Или Метаданные.Документы.Количество() <> 1
        Или Метаданные.РегистрыНакопления.Количество() <> 0
        Или Метаданные.РегистрыСведений.Количество() <> 0
        Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Тогда
        ВызватьИсключение "Нужны только собственные товар и непроводимая заявка, без регистров";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Не запускайте урок внутри чужой транзакции";
    КонецЕсли;
    СозданныеСсылки = Новый Массив;
    НачатьТранзакцию();
    Попытка
        Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
        Товар.Наименование = "Собственная книга заявки";
        Товар.Артикул = "DOC-OWN-01";
        Товар.Цена = 250;
        Товар.УстановитьНовыйКод("У");
        Товар.Записать();
        СозданныеСсылки.Добавить(Товар.Ссылка);
        Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
        Заявка.Дата = Дата(2026, 10, 6, 12, 0, 0);
        Заявка.Комментарий = "Собственный источник копии";
        Первая = Заявка.Товары.Добавить();
        Первая.Товар = Товар.Ссылка;
        Первая.Количество = 3;
        Первая.Цена = 250;
        Вторая = Заявка.Товары.Добавить();
        Вторая.Товар = Товар.Ссылка;
        Вторая.Количество = 1;
        Вторая.Цена = 50;
        Заявка.УстановитьНовыйНомер("У");
        Заявка.Записать(РежимЗаписиДокумента.Запись);
        СозданныеСсылки.Добавить(Заявка.Ссылка);
        Читаемая = Заявка.Ссылка;
        Объект = Читаемая.ПолучитьОбъект();
        Если Объект = Неопределено Или Объект.Ссылка <> СозданныеСсылки.Получить(1) Тогда
            ВызватьИсключение "Разрешена только собственная заявка этого запуска";
        КонецЕсли;
        Если Объект.Модифицированность() Или Объект.Проведен Тогда
            ВызватьИсключение "Нужна немодифицированная непроведённая собственная запись";
        КонецЕсли;
        Объект.УстановитьПометкуУдаления(Истина);
        ПослеПометки = Читаемая.ПолучитьОбъект();
        Если ПослеПометки = Неопределено Тогда
            ВызватьИсключение "Пометка не должна немедленно удалять собственную запись";
        КонецЕсли;
        Сообщить(ПослеПометки.ПометкаУдаления);
        Сообщить(ПослеПометки.Товары.Количество() = 2);
        Сообщить(ПослеПометки.Товары.Получить(0).Количество = 3);
        Если ПослеПометки.Модифицированность() Тогда
            ВызватьИсключение "Нельзя снимать пометку у локально изменённого объекта";
        КонецЕсли;
        ПослеПометки.УстановитьПометкуУдаления(Ложь);
        ПослеСнятия = Читаемая.ПолучитьОбъект();
        Если ПослеСнятия = Неопределено Тогда
            ВызватьИсключение "Собственная запись после снятия пометки отсутствует";
        КонецЕсли;
        Сообщить(Не ПослеСнятия.ПометкаУдаления);
        Сообщить(Не ПослеСнятия.Проведен);
        Сообщить("Обе операции касались только новой собственной записи и будут отменены");
        ОтменитьТранзакцию();
    Исключение
        Если ТранзакцияАктивна() Тогда
            ОтменитьТранзакцию();
        КонецЕсли;
        ВызватьИсключение;
    КонецПопытки;
    Сообщить(Не ТранзакцияАктивна());
    Для Каждого СозданнаяСсылка Из СозданныеСсылки Цикл
        Сообщить(СозданнаяСсылка.ПолучитьОбъект() = Неопределено);
    КонецЦикла;
КонецПроцедуры

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

  1. Создать собственную заявку внутри своей транзакции и сохранить её ссылку в отслеживаемом списке.

  2. Проверить, что объект соответствует именно второй новой ссылке этого запуска, а не произвольному найденному документу.

  3. Перед пометкой исключить Модифицированность и Проведен: модифицированный объект недопустим, проведение при пометке было бы отменено.

  4. УстановитьПометкуУдаления(Истина), затем получить существующий объект по своей ссылке и проверить флаг/сохранность строк.

  5. Для снятия взять свежий немодифицированный объект, вызвать с Ложь и повторно прочитать запись.

  6. Подтвердить отсутствие пометки и проведения; отменить все собственные записи без фиксации.

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

  1. После установки своя запись существует, пометка Истина, две строки и первая с количеством 3.

  2. После снятия пометка Ложь, проведение Ложь.

  3. Код напрямую Удалить не вызывает.

  4. После общего отката обе свои записи отсутствуют.

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

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

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

  1. Непустая ссылка не доказывает существование записи; плановую ссылку не читать как сохранённый документ.

  2. Модифицированность относится к локальным изменениям объекта после чтения, не к изменениям другими пользователями. ВерсияДанных — непрозрачная readonly-строка.

  3. Заблокирован относится к блокировке именно этим объектом языка; это не общий индикатор всех блокировок записи. Собственную явную блокировку освобождайте отдельно, не рассчитывайте только на откат.

  4. Пометка не удаляет запись, а прямое Удалить удаляет сразу без проверки ссылок. Если документ проведён, установка пометки отменяет проведение; модифицированный объект перед пометкой вызывает ошибку.

  5. Статические проверки по справке и тексты контрольных условий не являются выполнением BSL в 1С.

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

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

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

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

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