Как удалить предопределенный элемент справочника в 1с

Как удалить предопределенный элемент справочника в 1с

Настройка системы 27.02.2017 10:56 10050

Предопределенные элементы справочников создаются в режиме конфигуратора. В режиме "1С:Конфигуратор" определяются имена предопределенных элементов. Сами элементы, которые хранятся в базе данных, создаются в режиме "1С:Предприятие". Таким, образом предопределенный элемент — это метаданные (имя предопределенного элемента) и данные (сам элемент справочника).

1С:Предприятие 8.2

В 1С:Предприятии 8.2 предопределенные элементы добавленные или удаленные в конфигураторе, автоматически добавляются или удаляются в базе данных.

1С:Предприятие 8.3

В этой версии платформы, каждый справочник содержит стандартный реквизит "ИмяПредопределенныхДанных". Он создан для хранения предопределенного имени и доступен для программного изменения. При добавлении нового элемента в конфигураторе, этот элемент может быть создан в базе данных или нет — это зависит от свойства справочника "Обновление предопределенных данных". Если установлено значение "Обновлять автоматически", то созданные предопределенные элементы в конфигураторе, автоматически добавятся в базу. Если свойство установлено в значение "Не обновлять автоматически", элементы в базу не добавятся. В таком случае их нужно создать самостоятельно и программно привязать к предопределенным элементам справочника, установив реквизит "ИмяПредопределенныхДанных".

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

yakov
30.01.2015 11:38

Прочитано: 9424

При переносе остатков задвоился план счетов. Счета предопределенные, не пометишь на удаление..Подскажите пож-та как исправить? Заранее спасибо!

Yandex
Возможно, вас также заинтересует
yakov
30.01.2015 11:39

Ответ № 1

PS: в конфигураторе задвоений не наблюдается..

w1c
31.01.2015 02:57

Ответ № 2

Бывает такое после обмена, и проблема всплывает на 8.3. Дело в том, что предопределенность справочника теперь изменчива.

У справочника есть теперь реквизит "ИмяПредопределенныхДанных". Его можно очищать и писать. Конечно, если Вы руками попробуете двум элементам присвоить одинаковое значение, то платформа Вам скажет "ата-та", и Вы не накосячите. но есть случаи, когда платформа не властна над записью элементов справочника. Я говорю о РИБе — распределенной информационной базе. Если при записи элемента режим обмен.загрузка = ИСТИНА, то никакого контроля нет. Раньше это приводило к неуникальности кодов справочников и документов.

Теперь это может привести и к неуникальности имени предопределенного элемента.

Опишу практический пример того, как это бывает:

1. Имеем две базы, в которой есть данные. и есть справочник с предопределенными элементами. При создании баз уникальный идентификатор у них создался разный.

2. Мы выгружаем данные универсальной выгрузкой XML или средствами РИБ.

3. Загружаем XML файл.

4. Платформа синхронизирует все и вся по уникальному идентификатору, а он разный. она не находит элементы и создает новые. Режим обмен.Загрузка у нас ИСТИНА. Контроля при записи нет никакого.

Все, мы получили косяк, грозящий нам большими проблемами. При попытке пометить элемент на удаление мы имеем много мата со стороны платформы:

"Предопределенный элемент не уникален"

Как бороться?

1. Рисуем в форме элемента поле "ИмяПредопределенныхДанных", доступное для редактирования.

2. Открываем форму одного из дублей, обязательно меняем имя и стираем ИмяПредопределенныхДанных.

3. Записываем элемент

Все, готово. Теперь мы сможем пометить элемент на удаление.

Если конфигурация типовая и редактировать её нельзя, то пишем обработку, которая сотрет ИмяПредопределенныхДанных и допишет "1" в имя.

Зачем нам править имя? — спросите Вы.

Отвечу: а как Вы узнаете, какой элемент надо оставить, кто из них сейчас сидит как ссылка в данных? Так Вы их сможете визуально отличить. Скорее всего у Вас будут ссылки на оба элемента и Вам понадобиться обработка по поиску и замене значений. При её использовании будет удобнее, если имена будут отличаться.

Читайте также:  Nintendo switch pro новости
yakov
31.01.2015 14:57

Ответ № 3
yakov
31.01.2015 20:44

Ответ № 4

Если очистить "Имя предопределенных данных" ругается "Не предопределенные объекты не могут иметь предопределенные записи видов субконто", если изменить название ругается "Предопределенный элемент не принадлежит ПланСчетов.Хозрасчетный". Программно также не помогает..те же ругательства..Засада какая-то..

yakov
31.01.2015 23:53

Ответ № 5

Бухгалтерия 8.3 это абзац.. да..Добавил прав для удаления предопределенных элементов плана счетов, счета удаляются прекрасно, вот только ПоискИЗаменаЗначений тут не помощник..Откатил базу на четверг, ну а чо делать..А то что бухи всю пятницу набивали спишу на неожиданную срочность от финдиректора..Ребята, не наступайте на эти грабли! Пользуйтесь конвертацией!)

yakov
01.02.2015 04:13

Ответ № 6

Ну только если она поможет..

E_Migachev
01.02.2015 14:31

Ответ № 7

С конвертацией бывает также фигня, а если перед сохранением удалить субконто?

Описанный выше способ на справочниках работает на ура, с планом счетов не пробовал

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

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

К примеру, мы в нашей конфигурации для целей учета создали справочник Валюты, поскольку мы живем в Российской федерации, то валюта Рубль всегда будет в нашей конфигурации, которая используется на территории РФ. Поэтому наиболее логичнее её сделать в виде предопределенного элемента. Поэтому создадим для справочника Валюты предопределенный элемент Рубль. Для того, чтобы добавить предопределенный элемент необходимо выделить нужный справочник, вызвать контекстное меню и выбрать в этом меню команду «Открыть предопределенные данные».

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

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

Если справочник иерархический, то можно также создать и предопределенные группы, для этого в командной панели формы списка предопределенных элементов имеется команда «Добавить группу».

Если мы зайдем в форму списка справочника Страны в пользовательском режиме «1С: Предприятия», то обнаружим, что уже имеются группы и элементы с точкой внизу. Так платформа помечает предопределенные элементы и группы.

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

Получить предопределенный элемент справочника 1С

Используя менеджер справочника, можно обратиться к предопределенному элементу. Делается это следующим образом.

Обращаю Ваше внимание, что получить ссылку на предопределенный элемент можно только в серверном контексте. Чтобы получить ссылку на предопределенный элемент в клиентском контексте управляемой формы необходимо использовать метод ПредопределенноеЗначение, где в кавычках нужно указать путь к этому элементу.

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

Создать предопределенный элемент справочника 1С

Мы уже научились создавать предопределенные элементы справочника в конфигураторе, но можно ли создать предопределенный элемент программно? И да, и нет.

Мы можем из простого элемента сделать предопределенный, и наоборот предопределенный элемент сделать простым.

Для этих целей у справочников имеется стандартный реквизит ИмяПредопределенныхДанных.

Если мы получим ссылку на предопределенный элемент, то этот реквизит заполнен.

Если же мы возьмем какой-то не предопределенный элемент, то этот реквизит будет пустой.

Если мы этому реквизиту присвоим какое-нибудь имя (помня об уникальности имен предопределенных элементов в контексте конкретного справочника), то мы программно «создадим» предопределенный элемент, но только в том случае если это имя уже существует в списке предопределенных элементов справочника, которые были заданы в конфигураторе 1С!

Например, тот же элемент «Тунис» справочника «Страны» у нас простой.

В какой-нибудь обработке напишем код, в котором попробуем сделать из этого элемента предопределенный элемент.

Если мы попытаемся его сейчас выполнить, то у нас возникнет ошибка «Предопределенный элемент не существует».

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

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

Сделаем на обработке две команды. Первая будет снимать предопределенность у элемента справочника с именем «Китай», а вторая устанавливать.

Теперь обратно установим.

Заметьте, что имя предопределенного элемента может быть только из списка имен предопределенных элементов справочника.

У нас до снятия элемент «Китай» был предопределенным.

А после снятия это стал простой элемент.

Удалить предопределенный элемент справочника 1С

Начиная с платформы 1С 8.3 предопределенные элементы можно удалять в пользовательском режиме.

Если сейчас этот элемент удалить через стандартную обработку «Удаление помеченных объектов», то он исчезнет из базы.

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

Что делать, если мы ошиблись и хотим опять «вернуть» предопределенный элемент? Есть несколько способов. Но самый простой это создать новый элемент справочника в пользовательском режиме и присвоить ему имя удаленного предопределенного элемента, как мы это уже делали.

Остальные статьи по теме конфигурирования:

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

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Читайте также:  Сравнение графических процессоров смартфонов
Ссылка на основную публикацию
Как сделать чтобы флешка работала быстрее
Читайте как настроить оптимальную производительность внешнего диска или флешки и ускорить передачу данных на внешний носитель информации и чтение из...
Как изменить учетную запись в аутлуке
После установки учетной записи в программе Microsoft Outlook, иногда требуется дополнительная настройка отдельных параметров. Также, бывают случаи, когда поставщик почтовых...
Как изменить ттл на компьютере
TTL (Time To Live) — это значение времени, на протяжении которого пакет с данными блуждает по сети со способностью передачи...
Как сделать ярлык почты на рабочем столе
Хотите быстро писать письма друзьям? Часто пишите Email по работе? Тогда можно просто создать ярлык Email на Вашем рабочем столе...
Adblock detector