Skip to main content

Общая информация

Ссылочное удаление (пометка удаления)

В конфигурации могут существовать связанные свойства у разных объектов. Предлагаемый алгоритм удаления: 

  • Объект помечается как удаляемый путем установки пометки на удаление (кнопка Del или контекстное меню). Все связанные объекты автоматически помечаются на удаление.
  • Основное меню - Все функции
    1c_admin_del_obj_1.jpg
  • Стандартные - Удаление помеченных объектов
    1c_admin_del_obj_2.jpg
  • Можно посмотреть удаляемые объекты выбрав Выборочное удаление. 
    1c_admin_del_obj_3.jpg
  • Можно выбрать удаляемые объекты и удалить.

Удаление элемента родительского справочника.

Есть элемент (Подчиненный) в подчиненном справочнике, у которого выставлен в качестве родителя удаляемый нами элемент (Основной). 

  • В случае удаление через "Удалить" (Shift-Del) оба элемента тихо удалятся. 
  • В случае установки пометки можно увидеть все удаляемые элементы.
  • При снятии пометки удаления с Основного, с Подчиненного тоже удаляется метка.
  • Однако проверка ссылочной целостности происходит только в момент установки пометки. То есть если пометить на удаление Основной, затем создать второй Подчиненный, будет выдано предупреждение "Вы хотите установить в качестве владельца элемент с пометкой удаления", но пометка удаления на втором подчиненном элементе не установится. При попытке удаления через предлагаемую процедуру появится ошибка и объект не будет удален.  1c_admin_del_obj_4.jpg
    Но при удалении через "Удалить" (Shift-Del) все элементы (и помеченный, и непомеченный) удалятся.
  • Если при просмотре удаляемых объектов убрать пометку с подчиненного, оставив основной, то удаление не произойдет и будет ошибка из предыдущего пункта.

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

  • При установке пометки на удаление, в табличной части другого справочника элемент не помечается на удаление. В списке элементов будет отражен один элемент, однако при попытке удаления будет выдано предупреждение о наличии ссылок и элемент не будет удален и можно будет посмотреть список элементов, в которых есть ссылки.
  • При удалении через "Удалить" (Shift-Del) элемент будет удален, но в табличной части другого справочника в строке со ссылкой будет надпись "Объект не найден".
    1c_admin_del_obj_5.jpg
  • Для исправления предыдущей ситуации можно использовать Администрирование - Тестирование и исправление информационной базы
    1c_admin_del_obj_6.jpg
    В служебных сообщениях будет выведен список элементов с битыми ссылками. 1c_admin_del_obj_7.jpg
    Это считается медленной процедурой и требует монопольного доступа, можно использовать внешнюю обработку 

Типы данных для встроенных классов

Раздел относится к классам Справочник, Документ, ПланВидовХарактеристик, ПланСчетов и ПланВидовРасчета. Идея общая для всех классов, рассмотрен пример Справочника.

Название типа
Отображение в коде
Назначение
СправочникиМенеджер Справочники.Справочники ОбщиеСодержит действия,все относящиесяСправочникМенеджер ки конкретномуметод справочнику,ТипВсеСсылки(), апозволяющий неполучить кссылки егона конкретнымтипы объектам.всех Например,справочников методыдля позволяютпоследующего создатьсравнения новыйс объекттипом или найти объект по коду.переменной.
СправочникМенеджер
Справочники.ИмяСправочника Это конкретный элемент СправочникиМенеджера. Понять и простить. 
 текноменкл = Спрвочники.Номенклатура;
 //текноменкл это справочникменеджер.

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

Подробнее остановимся на типах СправочникСсылка и СправочникОбъект. На следующем рисунке изображено хранение справочника в базе данных.

Регламентные задания

Разобраться, интересная статья  

Программное создание конфигурации.

Хер. Внешний обработчик может только уведомить об отсутствии чего-либо в конфигурации, создать кодом не получится. 

Тестирование

Через жопу. Статья о тестировании Используется уже другой (!) язык. Им видимо двух не хватало...

Git

Еще нужно разобраться, но вроде есть.