СправочникСсылка.<Имя справочника>.ПометкаУдаления

Свойства · DeletionMark

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

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

СправочникСсылка.<Имя справочника>.ПометкаУдаления (CatalogRef.<Catalog name>.DeletionMark)

СправочникСсылка.<Имя справочника> (CatalogRef.<Catalog name>)

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

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

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

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

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

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

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

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

Получить обычную форму только своего заранее подготовленного товара

ПолучитьФорму ссылки доступен толстому клиенту и возвращает обычную Форма либо Неопределено. Здесь отделён от серверных транзакционных упражнений и управляемого ОткрытьФорму.

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

Полный модуль собственной ОБЫЧНОЙ формы обработки, толстый клиент с обычным приложением 8.5.1.1343. Только свой вручную подготовленный FORM-85 и именованная обычная форма; здесь не запускался.

Подготовка

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

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

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

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

  5. Для этого блока УчебныеТовары не подчинён владельцу, не имеет предопределённых элементов и дополнительных обработчиков. Модули объекта/менеджера пусты, подписок и расширений нет. Иерархия групп и элементов допускает два уровня ниже корня.

  6. Точную платформу 8.5.1.1343 проверяет код. Ссылки и объекты создаются самим уроком; UUID не подменяется знакомым кодом из УТ/КА2/УНФ/БП.

  7. Свойства ссылки readonly, свойства полученного объекта могут быть записываемыми. Ссылка.Скопировать возвращает новый объект, но сам метод не записывает его в базу.

  8. Непустой UUID/ссылка не подтверждает наличие записи. Для плановой ссылки проверяется ПолучитьОбъект=Неопределено, а данные отсутствующей записи не читаются.

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

  10. Здесь в 1С примеры не запускались. Проверены исходники и установленная справка; записи/формы в ваших базах этим заполнением не создавались.

  11. Этот отдельный урок выполняется в толстом клиенте с обычным приложением. В своём УчебныеТовары создайте ОБЫЧНУЮ форму элемента УчебныйРедакторСсылки с обычными полями кода/наименования. Её модуль пустой; не выбирайте управляемую форму.

  12. В своём справочнике вручную создайте один элемент, не группу: Код=FORM-85, Наименование=Учебная книга формы. Ничего из рабочих справочников не используйте. Этот урок его только находит и открывает, не создаёт/удаляет.

  13. У отдельной собственной обработки создайте обычную форму с командой ПоказатьУчебнуюФорму и вставьте весь модуль этого урока в модуль этой формы. Это не серверный общий модуль; ЭтаФорма — реальный владелец окна.

  14. В режиме обычного приложения запускайте именно толстый клиент. В тонкий/веб-клиент и управляемые формы этот контракт не переносится.

  15. Новый UUID окна обеспечивает новый ключ уникальности. Закрывайте открытое окно вручную без записи изменений; не сочетайте открытие интерактивной формы с удержанием транзакции предыдущих упражнений.

Процедура ПоказатьУчебнуюФорму(Команда)
    
    Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
    КонецЕсли;
    СсылкаТовара = Справочники.УчебныеТовары.НайтиПоКоду("FORM-85");
    Если СсылкаТовара.Пустая() Тогда
        ВызватьИсключение "Сначала вручную создайте свой FORM-85 по подготовке обычной формы";
    КонецЕсли;
    Если СсылкаТовара.Наименование <> "Учебная книга формы"
        Или СсылкаТовара.ЭтоГруппа
        Или СсылкаТовара.ПометкаУдаления Тогда
        ВызватьИсключение "Найденный объект не совпал с собственным подготовленным товаром";
    КонецЕсли;
    КлючОкна = Новый УникальныйИдентификатор;
    ПолученнаяФорма = СсылкаТовара.ПолучитьФорму("УчебныйРедакторСсылки", ЭтаФорма, КлючОкна);
    Если ПолученнаяФорма = Неопределено Тогда
        Сообщить("Форма не создана: отказ не является успешным открытием");
        Возврат;
    КонецЕсли;
    ПолученнаяФорма.Открыть();
    Сообщить("Открыта обычная форма только своего подготовленного товара. Код сам ничего не записал.");
КонецПроцедуры

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

  1. Проверить точную платформу и собственный учебный справочник в модуле обычной формы.

  2. Найти только заранее вручную подготовленный FORM-85, затем проверить имя, отсутствие группы и пометки удаления.

  3. Получить именно именованную обычную форму с реальным владельцем ЭтаФорма и новым ключом уникальности.

  4. При Неопределено обработать отказ создания отдельно, не обращаться к методам несуществующей формы.

  5. Открыть только полученную форму; код не записывает и не удаляет справочник и не удерживает транзакцию.

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

  1. Открыта обычная УчебныйРедакторСсылки собственного элемента FORM-85.

  2. Отсутствующий/неподходящий товар останавливает открытие; Неопределено не объявляется готовой формой.

  3. Не вызываются Записать/Удалить и не открывается форма случайной первой записи.

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

Контракт обычной формы ссылки использован на подготовленном собственном товаре с правильным клиентским контекстом.

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

  1. Это отдельный толстоклиентский контракт обычной формы, не управляемый ОткрытьФорму.

  2. ПолучитьФорму сам по себе ещё не Открыть; сначала проверяется результат.

  3. Именованная форма и реальный товар подготовлены заранее; код не выдумывает отсутствующие метаданные.

  4. Интерактивное окно не включено в отменяемую серверную транзакцию; возможная ручная запись оператором здесь не выполняется и не проверялась.

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

Сравнить readonly-паспорт ссылки с собственным сохранённым объектом

В отменяемой транзакции создаётся свой товар. Через настоящую ссылку читаются его код, имя, признаки и непрозрачная версия, без присваивания readonly-полям.

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

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

Подготовка

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

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

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

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

  5. Для этого блока УчебныеТовары не подчинён владельцу, не имеет предопределённых элементов и дополнительных обработчиков. Модули объекта/менеджера пусты, подписок и расширений нет. Иерархия групп и элементов допускает два уровня ниже корня.

  6. Точную платформу 8.5.1.1343 проверяет код. Ссылки и объекты создаются самим уроком; UUID не подменяется знакомым кодом из УТ/КА2/УНФ/БП.

  7. Свойства ссылки readonly, свойства полученного объекта могут быть записываемыми. Ссылка.Скопировать возвращает новый объект, но сам метод не записывает его в базу.

  8. Непустой UUID/ссылка не подтверждает наличие записи. Для плановой ссылки проверяется ПолучитьОбъект=Неопределено, а данные отсутствующей записи не читаются.

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

  10. Здесь в 1С примеры не запускались. Проверены исходники и установленная справка; записи/формы в ваших базах этим заполнением не создавались.

  11. Весь модуль вставьте в серверный общий модуль УчебныеСсылки. Его серверная экспортная процедура ВыполнитьПример вызывается из своей процедуры формы с &НаСервереБезКонтекста. Не вставляйте готовую процедуру внутрь другого обработчика.

  12. В транзакционных опытах временно записываются только собственные новые товар/группы, затем выполняется ОтменитьТранзакцию и при успехе, и при ошибке. Не заменяйте откат фиксацией и не вызывайте этот модуль внутри чужой транзакции.

  13. Запускайте строго в новой пустой базе Учебная85, с пустыми модулями объектов и без подписок. Здесь временно записываются только созданные самим примером объекты.

  14. Отмена транзакции выполняется и при успехе, и при ошибке. Не заменяйте её фиксацией и не запускайте внутри транзакции вызывающего кода.

  15. Откат базы не отменяет письма, HTTP-запросы и другие внешние действия обработчиков. Поэтому копия рабочей конфигурации с неизвестными обработчиками не заменяет эту подготовку.

Процедура ВыполнитьПример() Экспорт
    
    Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Запустите учебную задачу вне чужой транзакции";
    КонецЕсли;
    Ссылка = Справочники.УчебныеТовары.ПолучитьСсылку(Новый УникальныйИдентификатор);
    НачатьТранзакцию();
    Попытка
        Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
        Товар.УстановитьСсылкуНового(Ссылка);
        Товар.Наименование = "Учебная книга по ссылке";
        Товар.Артикул = "REF-OWN-01";
        Товар.Цена = 250;
        Товар.УстановитьНовыйКод("У");
        Товар.Записать();
        Читаемая = Товар.Ссылка;
        Сообщить(Читаемая.Код = Товар.Код);
        Сообщить(Читаемая.Наименование = "Учебная книга по ссылке");
        Сообщить(Читаемая.Ссылка = Читаемая);
        Сообщить(Читаемая.Владелец = Неопределено);
        Сообщить(Читаемая.Родитель = Справочники.УчебныеТовары.ПустаяСсылка());
        Сообщить(Не Читаемая.ЭтоГруппа);
        Сообщить(Не Читаемая.ПометкаУдаления);
        Сообщить(Не Читаемая.Предопределенный);
        Сообщить(Читаемая.ИмяПредопределенныхДанных = "");
        Сообщить(ТипЗнч(Читаемая.ВерсияДанных) = Тип("Строка"));
        Сообщить("Код и наименование — данные сохранённого товара; ссылка и владелец — не одно и то же");
        ОтменитьТранзакцию();
    Исключение
        Если ТранзакцияАктивна() Тогда
            ОтменитьТранзакцию();
        КонецЕсли;
        ВызватьИсключение;
    КонецПопытки;
    Сообщить(Не ТранзакцияАктивна());
    Сообщить(Ссылка.ПолучитьОбъект() = Неопределено);
КонецПроцедуры

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

  1. Создать собственный объект с заранее назначенным новым UUID и заполнить учебные данные.

  2. Временно записать только свой товар внутри новой транзакции.

  3. Получить его настоящую ссылку, затем сравнить код/наименование с заданными значениями.

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

  5. Проверить отсутствие пометки, группы и предопределённости; прочитать тип версии, не декодировать строку.

  6. Отменить транзакцию и отдельно проверить отсутствие собственной записи.

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

  1. Десять проверок паспорта Истина, затем проверки отката и отсутствия собственного товара.

  2. Никакому свойству Читаемая не присваивается новое значение.

  3. Ссылка не является владельцем, а версия данных не объявляется номером версии конфигурации.

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

Ссылка разобрана на реальной собственной записи с итоговым откатом, а не на неизвестном входном объекте.

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

  1. Объект и ссылка не взаимозаменяемы: только объект используется для изменения данных, ссылка идентифицирует запись.

  2. Ссылки на отсутствующий или отменённый объект не следует читать как существующий товар.

  3. Никакие чужие объекты не ищутся по первому совпадению/первой строке и не удаляются по названию.

  4. Свойства ссылки не присваиваются, а непрозрачная ВерсияДанных не декодируется.

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

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

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

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

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

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