Имя: Пароль:
1C
1С v8
Непонятки с предопределенными элементами
0 slafor
 
06.12.23
23:39
Есть стандартный справочник Контрагенты, у него реквизит - ЮридическоеФизическоеЛицо (составного типа - либо справочник ЮридическиеЛица, либо справочник ФизическиеЛица).

1.У справочника Контрагенты создали предопределенный элемент КонтрагентП. Все хорошо. Обращаюсь к нему "через точку" - Справочники.Контрагенты.КонтрагентП - все работает.
Но вот потом отредактировали данные по связанному справочнику - ЮридическиеЛица - и после этого предопределенный элемент стал не виден (ошибка "Предопределенный элемент отсутствует в данных", при попытке обратиться к нему "через точку"). А в списке элементов он стал показываться как "обычный" элемент, без значка "предопределённого". Почему так произошло и как можно исправить, а главное - как можно избежать такого на рабочих базах? Это хорошо, что мы в копии делали.

2. Почему при добавлении предопределенного элемента справочника весь справочник контрагентов (а там элементов более миллиона) около часа проходит "реструктуризацию"? Что там "реструктуризировать"? Я же не реквизит новый создал, не тип значения чего-то изменил.
1 Donkey_hot
 
07.12.23
00:06
(0) Что случилось и как избежать, сказать трудно, а вот исправить проще простого - заполните у элемента поле ИмяПредопределенныхДанных.
2 slafor
 
07.12.23
00:22
(10) Посмотрел через Консоль запросов: ИмяПредопределенныхДанных действительно не заполнено, но и признак Предопределенный не установлен.
3 slafor
 
07.12.23
00:27
+(2) Поле "Предопределенный", как я и думал, недоступно для записи.
4 slafor
 
07.12.23
10:12
+(0) Дополнение к п.2. При реструктуризации вылезло ещё много ошибок по неуникальности кода: https://disk.yandex.ru/i/u9YmKBvwwyZ0Vw , причём ни код, ни наименование нового предопределённого элемента, заданные в конфигураторе, не имеют ничего общего с теми элементами, которые здесь показаны в списке.
5 ildary
 
07.12.23
10:31
(0) начать надо с проверки - какие обмены (РИБ?) есть в базе?
6 slafor
 
07.12.23
10:56
(5) В то-то и дело, что стандартных обменов, тем более РИБ там нет. Есть создание документов по API, но это другое.
7 Eiffil123
 
07.12.23
10:58
(3) если программно заполните ИмяПредопределенныхДанных, то данный элемент будет отображаться как предопределенный.
8 slafor
 
07.12.23
11:07
(7) Спасибо, помогло!

Но так и непонятным остался вопрос - почему все это произошло?
9 slafor
 
07.12.23
11:19
В общем, схема тут достаточно проста. Есть предопределенный элемент справочника Контрагенты, есть Юридическое лицо, на который ссылается Контрагент (через реквизит ЮридическоеФизическоеЛицо). Если мы меняем что-то в ЮЛ, то Контрагент сразу же становить непредопределенным.
ЮЛ может менять реквизиты Контрагента, но ведь это не должно снимать признак предопределенности!
10 timurhv
 
07.12.23
11:39
(9) Наверное, там автоматом обновляются свойства через:
ЗаполнитьЗначенияСвойств, в котором и признак предопределенности и ИмяПредопределенныхДанных
11 slafor
 
07.12.23
12:22
(10) Точно! Спасибо, я уже нашел - там срабатывает Оповестить в ЮЛ и ОбработкаОповещения в Контрагентах. И признак Предопределенны
12 slafor
 
07.12.23
12:23
+(11) ...и признак Предопределенный, и ИмяПредопределенныхДанных тоже переносятся, надо их просто исключить!