Ошибки (баги) приложений 1С Битрикс и Битрикс 24
Баги scoder.base
Инструменты, коллекции, групповые действия / Перекрестные продажи / Аналогичные товары / Аксессуары
Разработчик
Scoder
Статус: Золотой сертифицированный
Город: Йошкар-Ола
Разработка/доработка сайтов любой сложности. Делаем так, что жалко отдавать.
Страница на битрикс маркетплейс
РЕШЕНО в 1.6.5 Баг активности профиля scoder.base
Галка активности профиля синхронизации не влияет на работу профиля.
Галка активности профиля наводит на мысль, что если ее нет, то модуль никак не работает. Это не верно. Модуль начинает работать сразу после создания профиля, если стоит галка автоматизировать синхронизацию элементов. и галки в свойствах - создание и редактирование.
Синхронизируются не товары, а свойства инфоблоков, выбранных в профиле.
Так как механизм синхронизации свойств требует предварительной проверки на уникальность символьных наименований свойств для его корректной работы, то сам факт создания профиля синхронизации может наделать Вам бед в некоторых случаях.
Для того, чтобы чтобы модуль не синхронизировал свойства инфблоков - уберите галки указанные на скриншоте ниже
но стоит галка Автоматизировать синхронизацию элементов:
Для того, чтобы синхронизация свойств в настройках инфоблоков действительно не работала, нужно убрать галки в добавлении и редактировании свойств.
Свойства инфоблока синхронизируются НЕ в момент сохранения профиля синхронизации, а в момент сохранения настроек инфоблока..
РЕШЕНО Нет синхронизации с highload-блоками scoder.base
Есть проблема с привязкой хайлоадблоков, они не подтягиваются в свойства соответствующих полей
Модуль не подтягивает из характеристик свойства базового инфоблока в характеристики свойства дочернего инфоблока значения полей -
вид в умном фильтре
выберите справочник
Баг сортировки свойств scoder.base
Внимание!
При изменении сортировки в базовом инфоблоке - возможно изменение значений свойств дочернего, которые не трогали в базовом - тоже обращайте внимание.
При создании нового свойства модулем синхронизации, если его сортировка 10 например, то свойство не корректно создается, и модуль меняет остальные свойства в инфоблоке - их тип. Такое ощущение, что как будто список смещается ниже, а настройки остаются прежними.
Пример:
1. Создаем в Базовом инфоблоке каталог новые свойства типа "Строка":
в это время в дочернем инфоблоке у базового цвета был тип справочник
2. Происходит синхронизация инфоблоков
3. Смотрим что изменилось в дочернем инфоблоке:
3.1. Создались новые свойства Тест 1 и Тест 2, которые должны быть типа "Строка", но что-то пошло не так:
свойство тест1 стало на второе место и ему присвоился тип свойства базовый цвет, которое до этого было вторым
а свойство базовый цвет вместо справочника стало списком
3.2. И оказывается что это не единственная проблема - поехали все типы свойств:
Если модуль создает в дочернем блоке новое свойство с сортировкой 999 (т.е. с самой последней, из имеющихся, сортировкой) - все ок, но если сортировку потом поменять в базовом на 10 например, то херня получается, тип свойства меняется. и у свойств ниже по списку тоже меняются типы свойств, как в примере выше
РЕШЕНО Баг перезаписи значений свойств инфоблоков scoder.base
модуль синхронизации после синхронизации меняет в настройках дочернего инфоблока некоторые настройки - в частности выбранные инфоблоки. И соответственно после таких изменений работать пересатает привязка, так как на в настройках инфоблока дочернего сайта указываются инфоблоки из базового сайта
если я меняю в товаре свойства в базовом инфоблоке - происходит синхронизация с дочерним, и в дочернем слетаю настройки инфоблока в частности меняются связки инфоблоков, как на примере
проблема из за того, что буквенные коды одинаковые у свойств, если сделать их разными - то есть меняем код у дочернего например - то при синхронизации свойства в инфоблоках не синхронизируются и настройки не слетают.)
впринципе это логично.
Свойства типа привязки указывают на те же инфоблоки или блоки, что и базовый, чтобы значения элементов дочернего элемен6та этих свойств совпадали со значениями эквивалентных элдементов базового инфоблока.
Например, в свойстве типа "Привязка к элементам", привязка осуществляется с помощью ИЛ элементов, если для свойства указать другой инфоблок, там будут другие элементы, соответственно другие ID и значения дочернего элемента не совпадут и будут пусты.
Если нужно отличное, то лучше создать новое свойство, которого нет в базовом, т.е. с отличным символьным кодом.
в свойстве типа "Привязка к элементам", привязка осуществляется с помощью ИЛ элементов, если для свойства указать
другой инфоблок, там будут другие элементы, соответственно другие ID и значения дочернего элемента не совпадут и будут пусты.
Все верно, но модуль после синхронизции корректные настройки дочерненго инфоблока заменяет на не корректные, если символьный код совпадает. И тогда перестают работать все привязки вообще.
то есть тут 2 варианта - или нет смысла или создает проблемы функция.
Если вам нужно отличное, то лучше создать новое свойство, которого нет в базовом, т.е. с отличным символьным кодом.
Я сделал так - уникализировал все символьные коды совйств инфоблоков, но
синхронизация все равно работает, но теперь она создает бесполезные совйства в дочернем инфобллоке
Например.
Базовый - BRAND_JO
дочерний -BRAND_SE
но после синхронизации модуль создает в дернем еще и BRAND_JO
и свойства становятся
Базовый - BRAND_JO
дочерний -BRAND_SE (ссылается на инфоблок дочернего сайта и все корректно работает)
BRAND_JO (ссылается на инфоблок базового сайта и по факту не используется)
то есть получается, что пока нет никакого смысла синхронизировать свойства в которых указывается инфоблок (привязка к разделам, фильтры, и тп), так как это или ломает работу сайта или создает свойства, которые не работают в дочернем сайте.
исключение видимо составляют случаи, когда, оба инфоблока дочерний и базовый находятся на одном сайте
поэтому предлагаю в настройках профиля синхронизации сделать галку - синхронизировать свойства с привязкой к инфоблоку. (чтобы можно было не создавать лишние свойства там где не надо)
Модуль будет привязывать к свойствам дочернего инфоблока те же ифноблоки, что и в свойствах базового инфоблока, и будет их менять каждый раз, даже если вы укажете другие вручную.
Чтобы модуль не менял, нужно в дочернем создать новые свойства или поменять символьный код имеющихся (но если пменять символьный код, от создадутся новые свойства эквивалентые базовым).
Если же вы выводите дочерний инфоблок в каком то сайте, а значения из свойства типа привязки, где вы указали инфоблоак из базового свойства, не выводиться, т.к. нет привязки к данному свойству, то нужно добавить првязку к дочернем сайту.
Вывод.
Свойства в настройках инфоблоков, в которых нужно указывать инфоблок, должны иметь разные сивмольные коды на разных инфоблоках. Таким образом можно обойти тот факт, что модуль в любом случае переносит все свойства базового инфоблока в дочерний. Так как идентификация свойсва модулем происходит не по айдт свойства, а по символьному коду, то модуль не напакостит в тех свойствах, которые используются в дочернем инфоблоке, а будет пакостить в тех свойствах, которые в дочернем не используются.
Если нет функции в профиле синхронизации выбрать те свойства, которые будут синхронизироваться, то модуль создаст в дочернем инфоблоке кучу свойств базового, которые в дочернем использоваться не будут.
Итог. Пользуемся как есть, ждем может когда то появится функционал выбора свойств в профиле синхронизации.
Имеем бесполезные свойства, но хотя бы не вредные)
Проблема с красивым отображением связанных услуг
изменением буквенных кодов свойсв решается проблема их перезаписи, но некоторые коды свойств прописан в шаблоне сайта, например Аспро максимум.
и при переименовании этих свойств перестают отображаться на странице товара связанные услуги например, так как в шаблоне прописаны символьные коды конкретных свойств и при переименовании шаблон просто не видит свойство, которое выводить
РЕШЕНО Тест scoder.base 1.6.4 (11.05.2022) (beta)
ФИЧА С ГАЛКАМИ.
ФИча. - При нажатии на галку в выбранном свойстве (убирание или добаление) - автоматом проставляется галка редактирования -добаления всех свойств.
при убирании галок - тоже добавляются галки
БАГ С ДОБАВЛЕНИЕМ ЧЕГО НЕ НАДО
в дочернем этого свойства нет
Автоматом добавилась галка редактирование свойств.
В тоже время у нас нет галок редактирования. на свойсве регион.
В дочернем инфоблоке его нет.
сохраняем профиль
смотрим дойрний.
1. Свойство тестовое добавилось - это хорошо
2. Сойство регион тоже добавилось, хотя не должно было - это плохо.
То есть при рабочем функционале синхронизации добавленния не работает селективность.
2. Баг - невозможно синхронизировать новые свойства при сохранении селективности.
Селективность работает если галки убрать.
Ранее и сейчас при таких настройках модуль проверял все свойтва в базовом и сенхронил их с дочерним.
но если настройки такие, то синхронизация новых свойств не работает впринципе.
видимо по тому, что синхронизируется не в момен сохрания профиля синхронизации, а в момент добавления - редактирования дочернего элемента.
Пример
В базовом инфоблоке создаем свойство
сохраняем
смотрим что в профиле синхр видно.
смотрим что в дочернем
ставим галки в профиле
сохраняем
смотрим что в дочернем
сохраяем еще раз инфоблок базовый, смотрим еще раз дочерний
ничего не добавилось
ВОПРОС: как при такой логике добавить в дочений новое свойство из базового?
Вариант1. Настроить селективность при рабочем механизме синхрона создания
Вариант2. Настроить создание при рабочем механизме селективности.
Добавляем служебное поле в свойсво инфоблоков (синхронизировать создание)
сохраняем инфоблок при создании свойства.
оно попадает в профиль синхронизации с уже проставленной галкой синхрон при создании и создается в дочрнем с такой же галкой в настройках свойства.
и в дочернем инфоблоке попадает в профиль синхронизации (*если там есть )
таким образом свойство при создании в 1 инфоблоке создасться во 2-м. Далее (если есть профиль синхронизации где 2-й инфоблок базовый) - создасться в дочернем 3-м инфоблоке и так далее пока цепочка не преверся. А прервется цепочка, когда в дочрнем инфоблоке уже будет такое свойсво с таким же символьм кодом.
ТАк сейчас работает модуль если синхронизирвать все свойства. То есть по цепочке 1=>2 2=>3 3=>1.
Но если мы пробуем механизм синхронизации свойств по отдельности, то такая схема явно не работает сейчас. так как новые свойсва не синхронизируются не то чтобы по цепочке, но и в рамках одного профиля синхронизации.
Итог на 12.05.
1. Если использовать фичу с галками на JS-y , то селективность синхронизации перестает работать, но нет проблемы с добавлением новых
2. Если не использовать фичу - то селективность работает для уже созданных, но проблема с добавлением новых
Вариант1. Настроить селективность при рабочем механизме синхрона создания
Вариант2. Настроить создание при рабочем механизме селективности.
РЕШЕНО Тест scoder.base версии 1.6.5 (16.05.2022)
Тест влияния активности на синхронизацию свойств.
Успешно. Если профиль не активен - синхронизация свойств не работает.
Тест на на работу селективности и синхронизации на создание свойств. Одновременно.
Проверяем, чтобы добавилось новое совйство, но не добавилось свойство, которое не нужно синхронизировать.
УСПЕШНО.
Профиль синхронизации синхронизирует создание нового свойсва, и не синхронизирует текцщие свойсва, которые не отмечены галкой синхрона на создание.
НЮАНС.
При создании свойства в базовом инфоблоке, оно появляется в профиле синхронизации
с неактивной галкой снхронизации на создание.
создаем, смотрим профиль, где инфоблок свойста - базовый
НЕТ "ПРОБРОСА" ГЛАКИ СИНХРОН НА СОЗДАНИЕ
То есть на первом шаге синхронизация совойства не происходит. и для этого нужно обратиться в профиль, где проставить галку
тогда в дочернем инфоблоке это свойсво появится. и появится в ДРУГОМ профиле синхронизации (если такой есть), в котором дочерний инфоблок будет базовым.
то есть при такой схеме работы не происходит "проброс" настроек синхронизации между инфоблоками.
и если у нас несколько профилей синхронизации и мы создаем свойсво,
то нам нужно в первом - создать свойство, потом зайти в профиль и проставить галки.
потом зайти во второй профиль и и проставить галки
и так далее.
1-2
1-3
2-1
2-3
3-2
3-1
Для поддержания идентичности ОБЩИХ свойств 11 инфоблоков нужно около 100 профилдей синхронизации.
Это в идеале, чтобы когда мы добляем свойство в любой инфоблок - оно (если общее) синхронилось с остальными 10
при текущей ситуации нужно при добавлении свойства, пересохранять галки в 100 профилях - это не реально.
Вариант 2.
синхронизировать каждый инфоблок с одним следующим в цепочке по кругу.
1-2
2-3
3-1
Тут количесво профилей снижается, но от этой схемы отказались, так как на 2-м и третьем шаге переставали синхронизироваться значения свойств типа список. а на первом они синхронизировались. или что то в этом роде
Вариант 3. На мой взгляд самый лучший
Добавляем служебные поле модуля во все свойсва инфоблоков (синхронизировать создание)
1. Синхронизировать создание
2. Синхронизировать редактирвоание
3. Синхрон сортировки
3. Синхрон названия
сохраняем инфоблок при создании свойства.
оно попадает в профиль синхронизации с уже проставленной галкой синхрон при создании и создается в дочрнем с такой же галкой в настройках свойства.
и в дочернем инфоблоке попадает в профиль синхронизации (*если там есть )
таким образом свойство при создании в 1 инфоблоке создастся во 2-м. Далее (если есть профиль синхронизации где 2-й инфоблок базовый) - создасться в дочернем 3-м инфоблоке и так далее пока цепочка не прервется. А прервется цепочка, когда в дочрнем инфоблоке уже будет такое свойсво с таким же символьм кодом.
Таким образом при создании свойства мы выбираем что и как синхронить.
По факту если посмотреть, что при создании свойства в инфоблоке, оно потом попадает в профиль синхронизации,
и их инфоблока в профиль подтягивается его имя, символьный код, то почему нельзя настроить, чтобы подтягивались и значения параметров синхронизации??
ну даже можно и не подтягивать реальные значения, а допустим по умолчанию сделать
-если свойсво создается модулем в инфоблоке, то в профиле синхронизации такого инфоблока ставить дальнейший синхрон всего (создание, редактирование)
ну не знаю, может еще как то вернуть механизм, который работает, при синхронизции на создание всех свойств.(
РЕШЕНО Баг профилей синхронизации scoder.base сохранения.
если профиль не активен - не сохраняются измениия по синхрону товаров
Решение - сначала поставить галку активности, а потом галку убрать
тоже самое при создании профиля при выборе инфоблоков,
если профиль не поставить активным, то сохраняет
без инфоблоков
это после сохранения с выбранными инфоблоками и без галки активности профиля.
Баг синхронизации смены типа свойства
если у нас есть несколько профилей синхронизации
1-2
2-3
создаем новое в первом
получаем
второй
смотри профили
1-2
2-3
меняем тип свойства в первом инф
смотрим второй
смотрим третий
то есть по цепочке по событию ихзменение не произхошло
теперь нажмем на сохранить во втором профиле
смотрим третий инф снова
то есть изменение типа свойства висит только на событии сохранения профиля
синхронизации, а не событии измения свойсва инфоблока.
ЕСЛИ СОЗДАЕМ СПИСОК СРАЗУ С СОЗДАНИЕМ СВОЙСТВА, ТО ОН СОХРАНЯЕТСЯ ВЕЗДЕ
то есть функция то работает но только при создании свойтва - тогда и список синхронится везде при создании
а при добавлении свойства в уже созданное свойство типе список - только на 1 шаг вперед.
ПРОБУЕМ ТОЖЕ САМОЕ ПРИ СТАРЫХ НАСТРЙКАХ
Баг синхронизации списка свойств
добавляем свойсва в список 1 инф
сохраняем перв инф
смотрим 1 инф - свойсва сохранились
смотрим второй инф
смотрим третий
пересохраняем профиль 2-3
смотрим 3 инф
сохраняем еще раз 2 инф
смотрим 3 инф снова
не работает не на событие сохранения профиля ни на сохраненеие ифн
пробуем добавить свойсво в 1 инеф
в третьем опять ничего
пробуем изменить 2-й инф
Вывод - синхронизация срабатывает в одном профиле только при реальном изменении руками свойств инфоблока и его сохранением. В других профилях по событию тоже не работает.
на пересохранение профилей синхронизации и инфоблоков руками не реагирует
на автоматическое создание (изменение ) тоже не реагирует
Модуль обучения 1с Битрикс
баг - скрытие поля индекс сортировки влияет на сохранен страниц в модуле
если скрыть поле индекс сортировки курса,
то при попытке сохранить изменения после этого в курсе, выдает ошибку
[LearnException]
EA_PARAMS (8448)
/home/bitrix/www/bitrix/modules/learning/classes/general/clearnlesson.php:1466
#0: CLearnLesson::_EnsureArgsStrictlyCastableToIntegers(NULL)
/home/bitrix/www/bitrix/modules/learning/classes/general/clearnlesson.php:621
#1: CLearnLesson::_CanonizeAndCheckAdditionalParamsForAddCourse(array, boolean)
/home/bitrix/www/bitrix/modules/learning/classes/general/clearnlesson.php:744
#2: CLearnLesson::Update(integer, array)
/home/bitrix/www/bitrix/modules/learning/classes/general/course.php:259
#3: CCourse->Update(integer, array)
/home/bitrix/www/bitrix/modules/learning/admin/learn_course_edit.php:155
#4: require(string)
/home/bitrix/www/bitrix/admin/learn_course_edit.php:1
----------
При изменении прав на курс слетает привязка уроков
тоже эта история каким то образом связана с видимыми полями
если показать в настройках поля , которые показаны ниже, то ошибка пропадает
Баг назначения прав модуля обучения БУС
Пропадает кнопка создать урок, если в наборе прав убрать галку с правами на удаление уроков
1.
2.
3.
4.
5. Добавить выглядит так
но не смотря на отсутсвие кнопки - измения и наличия удаления- удялять не дает пользователю.
но если мы ЗАПРЕТИМ редактирование, а разрешим удаление
то кнопка выглядит так
Причем редактирование недоступно по факту, хоть кнопка и есть
Баг в том, что кнопки в меню в режиме правки отображаются не те, что должны.
БУС система баги
Отображение удаленных товаров в админке битрикс управление сайтом
Имеем такое вот товароное предложение
Смотрим товар к корому оно относится
и видим что в товаре есть 2 ТП
но наше тп в примере имеет 1069989, а такого нет
почему, потому что это тп было в свое время удалено
поищем по тп
пусто
Баги SEO фильтра аспро макс
Баг SEO фильтра при изменении свойства Аспро макс
Ошибка состоит в том, что модуль при генерировании посадочных страниц подтягивает поля значения свойств типа строка, которые были удалены при смене типа свойства с строка на список.
Номер задачи — MAX-3288
Алгоритм действий.
1. Создаем товар и пишем в свойстве тип строка значение.
2. Создаем правило для сео фильтра с этим свойством, модуль генерирует посадочные.
3. Меняем тип свойства со строки на список.
4. Задаем значения для товара уже исходя из списка значений, указанных в свойстве.
5. Пробуем сгенерировать посадочные по аналогичному правилу.
не выбираем ничего, но видно, что значений 2, значит посадочных должно быть 2, а гененрируются 4
6. Модуль генерирует посадочные согласно значениям списка и ошибочные адреса посадочных - то есть модуль видит, что у товара есть еще и значения для типа строка, но так как тип свойства поменялся, он не может их использовать и ничего не отображается в значении свойства в ЧПУ правила после генерирования.
Для типа строка - значения пишутся текстом, аналогичным значению.
Для типа список - id значений из списка в свойстве.
7. Меняем снова тип свойства на строку, снова генерируем посадочные по т ому же праилу и видим, что модуль все таки где то хранит значения товара, которые ранее были прописаны в поле строка и подтягивает эти значения, хотя по факту в товаре казаны id свойств списка.
Если оставить все как есть, то раздел для которого настроено правило сео фильтра выдает 404 ошибку. При удалении ошибочных посадочных - раздел открывается.
Временное решение
- удалять некорректные строки в ЧПУ правила.
- попробовать удалить товары и создать их по новой.
- не менять типы свойств, а удалять свойство и создавать новое с новым типом.
но все же крайне интересно, где и зачем модуль хранит уделенные значения.
Кеш чистился полностью - не помогло.
Баги модуля primepix.propertytoolkit
Баг из числа в список
При смене из числа в список модуль создает список из одинаковых значений,
хотя должен создать 1 значение.
Результат списка после преобразования свойства.
временное решение
после смены типа свойства сделать объединение значений, которое удалит дубли
Модуль видит удаленные элементы, но не понятно что с этим делать primepix.propertytoolkit
Интересной особенностью модуля является то, что он видит удаленные элементы инфоблоков
это скорее полезная информация, но проблем в том, что при каждом обращении к таком инфоблоку модуль долго думает. И логика его работы явно не работает, так как элементы инфоблоков, которые он показывает - не видны никак кроме как по прямой ссылке в админке и никак ни на что не вляют в магазине. но эти данные модулем обрабаотываются,
если обратиться к списку элементов а их тут 700 000, то открытие страницы занимает вечность, как вы понимаете
Вопросы -
зачем нам видеть то, чего по сути нет.
где это все хранится?
как это удалить (явно это типа корзины битрикса получается)
это баг модуля или фича?
Баг запоминания последнего инфоблока к которому обращались primepix.propertytoolkit
При обращении к модулю - он запоминает последний инфоблок к которму обращались, а не грузит страницу с пустыми значениями.
Все бы ничего, но иногда модуль ловит 504 ошибку при обращении к инфоблоку и тогда
все. каждый раз он обращается к тем же данным, которые привели к ошибке и все. смерть)
приходится модуль удалять, а потом ставить
Но даже если модуль удалить, а потом поставить (без стрирания), то он все равно помнить последнее обращение к инфоблоку.
Баг подсчета элементов с пустыми значениями primepix.propertytoolkit
Модуль как то видит старые значения свойств элементов.
В элементе свойство не заполнено (тип список), но модуль его считает
Эта история происходит также, если товар удалить. Число товаров показывается не корректное, а вот уже в ID товаров не подтягиваются данные, что верно.
Баги модуля легкий директ wtc.easydirect
Не показываются свойства инфоблока Легкий директ
В шаблоне объявления не показываются свойства
пробовал переустанавливать модуль после его стирания - не помогло
Баги модуля Новости в Telegram
Не работает модуль после установки
Установили модуль Новости в Telegram
Создали чат-бота, получили токен, назначили его админом для канала
Далее в настройках модуля (у нас многосайтовость) на вкладке Инфоблоки выбрали Инфоблок, заполнили данные
нажимаю сохранить и вот такой результат:
все пустое
Есть вопрос?