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
    Это считается медленной процедурой и требует монопольного доступа, можно использовать внешнюю обработку 

Дополнительные типы данных встроенных классов

Раздел относится к классам Справочник, Документ, ПланВидовХарактеристик, ПланСчетов и ПланВидовРасчета. Идея общая для всех классов, рассмотрен пример класса Справочник.
При создании объекта появляются следующие типы (так их называют в документации) - СправочникМенеджер, СправочникСсылка, СправочникОбъект, СправочникВыборка. Эти слова используются часто. Но есть тьма вопросов, основные из которых - нахрена и как использовать. Ответ: понять и простить. 

Названия типов никак не связаны с их использованием в коде. Методы 

СправочникМенеджер

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

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

Примеры использования.

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

Ножницы = Справочники.Номенклатура.НайтиПоНаименованию("Ножницы канцелярсякие");

Создание групп или элементов.

НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Реквизит1 = "КакоеТоЗначение";
НовыйЭлемент.Записать();

Выборка элементов

Выборка = Спрахвочники.Номенклатура.Выбрать();

СправочникСсылка 

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

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

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

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

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

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

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

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

Git

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