6  /  28

РЕШЕНО Баг перезаписи значений свойств инфоблоков scoder.base


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



если я меняю в товаре свойства в базовом инфоблоке - происходит синхронизация с дочерним, и в дочернем слетаю настройки инфоблока в частности меняются связки инфоблоков, как на примере

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


Свойства типа привязки указывают на те же инфоблоки или блоки, что и базовый, чтобы значения элементов дочернего элемен6та этих свойств совпадали со значениями эквивалентных элдементов базового инфоблока.
Например, в свойстве типа "Привязка к элементам", привязка осуществляется с помощью ИЛ элементов, если для свойства указать другой инфоблок, там будут другие элементы, соответственно другие ID и значения дочернего элемента не совпадут и будут пусты.

Если нужно отличное, то лучше создать новое свойство, которого нет в базовом, т.е. с отличным символьным кодом.

в свойстве типа "Привязка к элементам", привязка осуществляется с помощью ИЛ элементов, если для свойства указать  
другой инфоблок, там будут другие элементы, соответственно другие ID и значения дочернего элемента не совпадут и будут пусты.

Все верно, но модуль после синхронизции корректные настройки дочерненго инфоблока заменяет на не корректные, если символьный код совпадает. И тогда перестают работать все привязки вообще.
то есть тут 2 варианта - или нет смысла или создает проблемы функция.

Если вам нужно отличное, то лучше создать новое свойство, которого нет в базовом, т.е. с отличным символьным кодом.


Я сделал так - уникализировал все символьные коды совйств инфоблоков, но
синхронизация все равно работает, но теперь она создает бесполезные совйства в дочернем инфобллоке
Например.
Базовый - BRAND_JO
дочерний -BRAND_SE

но после синхронизации модуль создает в дернем еще и BRAND_JO
и свойства становятся
Базовый - BRAND_JO
дочерний -BRAND_SE (ссылается на инфоблок дочернего сайта и все корректно работает)
                 BRAND_JO (ссылается на инфоблок базового сайта и по факту не используется)

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

исключение видимо составляют случаи, когда, оба инфоблока дочерний и базовый находятся на одном сайте

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

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

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


Вывод.

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

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


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

Проблема с красивым отображением связанных услуг


изменением буквенных кодов свойсв решается проблема их перезаписи, но некоторые коды свойств прописан в шаблоне сайта, например Аспро максимум. 

и при переименовании этих свойств перестают отображаться на странице товара связанные услуги например, так как в шаблоне прописаны символьные коды конкретных свойств и при переименовании шаблон просто не видит свойство, которое выводить




0

Есть вопрос?

задать вопрос

Публикация новых ошибок

Написать