Встроил на страницу компонент basket.line
Выдает ошибку базы данных.
[CODE][Bitrix\Main\DB\SqlQueryException] Mysql query error: Unknown column 'sale_internals_discount_group.ACTIVE' in 'where clause' (400)
SEL ECT
`sale_internals_discount_group`.`DISCOUNT_ID` AS `DISCOUNT_ID`
FR OM `b_sale_discount_group` `sale_internals_discount_group`
WHERE `sale_internals_discount_group`.`GROUP_ID` IN (1,3,4,2)
AND UPPER(`sale_internals_discount_group`.`ACTIVE`) like upper('Y')
/var/www/site/data/www/site-k.ru/bitrix/modules/main/lib/db/mysqlconnection.php:104
#0: Bitrix\Main\DB\MysqlConnection->queryInternal(string, array, object)
/var/www/site/data/www/site-k.ru/bitrix/modules/main/lib/db/connection.php:332
#1: Bitrix\Main\DB\Connection->query(string)
/var/www/site/data/www/site-k.ru/bitrix/modules/main/lib/entity/query.php:1735
#2: Bitrix\Main\Entity\Query->query(string)
/var/www/site/data/www/site-k.ru/bitrix/modules/main/lib/entity/query.php:450
#3: Bitrix\Main\Entity\Query->exec()
/var/www/site/data/www/site-k.ru/bitrix/modules/main/lib/entity/datamanager.php:230
#4: Bitrix\Main\Entity\DataManager::getList(array)
/var/www/site/data/www/site-k.ru/bitrix/modules/sale/general/discount.php:34
#5: CAllSaleDiscount:DoProcessOrder(array, array, array)
/var/www/site/data/www/site-k.ru/bitrix/components/bitrix/sale.basket.basket.line/class.php:272
#6: SaleBasketLineComponent->calculateOrder(array)
/var/www/site/data/www/site-k.ru/bitrix/components/bitrix/sale.basket.basket.line/class.php:240
#7: SaleBasketLineComponent->getTotalPrice()
/var/www/site/data/www/site-k.ru/bitrix/components/bitrix/sale.basket.basket.line/class.php:152
#8: SaleBasketLineComponent->executeComponent()
/var/www/site/data/www/site-k.ru/bitrix/modules/main/classes/general/component.php:506
#9: CBitrixComponent->includeComponent(string, array, NULL)
/var/www/site/data/www/site-k.ru/bitrix/modules/main/classes/general/main.php:1011
#10: CAllMain->IncludeComponent(string, string, array)
/var/www/site/data/www/site-k.dev.test.ru/private/shop/index.php:16[/CODE]
Несуществующее поле [B]ACTIVE[/B] в таблице [COLOR=#2d2d2d][B]b_sale_discount_group.
[/B][/COLOR]Версия Битрикса 15.0.6, установлены все стабильные обновления.
Посмотрел на более старом сайте где версия 15.0.2 с такой же редакцией (Бизнес)
Различаются файлы
[B]/bitrix/sale/general/discount.php
[/B]
В частности место где происходит неправильный запрос
Новая версия: (ссылка на скриншот)
[URL=http://joxi.ru/bmokYPJfExPXmy]http://joxi.ru/bmokYPJfExPXmy[/URL]
Старая версия (ссылка на скриншот)
[URL=http://joxi.ru/DrlNzYBSkvwj2P]http://joxi.ru/DrlNzYBSkvwj2P[/URL]
Очевидно что ошибка происходит из-за новой логики в этом файле, написаной в соответствии с ядром D7, при этом в таблице [B]b_sale_discount_group [/B]отсутствует новое поле [B]ACTIVE[/B] необходимое для этой логики.
Также я нашел описательный файл для сущности этой таблицы. В нем присутствует поле [B]ACTIVE
[/B][B]/bitrix/modules/sale/lib/internals/discountgroup.php
[/B]
(ссылка на скриншот)
[URL=http://joxi.ru/brRLeXKhdJj421]http://joxi.ru/brRLeXKhdJj421[/URL]
Вот как таблица выглядит сейчас у меня
(ссылка на скриншот)
[URL=http://joxi.ru/4AkvzPlfByOG2q]http://joxi.ru/4AkvzPlfByOG2q[/URL]
Также я проверил логику добавления привязки скидок к группам. Это делается в админке в скрипте
[B]/bitrix/modules/catalog/admin/cat_discount_edit.php
[/B]
При этом методы GetList и Add используются старые, не через сущность, и не используют выборку или добавление по полю [B]ACTIVE
[/B]
ссылки на скриншоты
[URL=http://joxi.ru/4AkvzPlfBy6G2q]http://joxi.ru/4AkvzPlfBy6G2q[/URL] - Add в админке
[URL=http://joxi.ru/E2pVePpFJ9ZPrY]http://joxi.ru/E2pVePpFJ9ZPrY[/URL] - GetList в админке
Единственное решение, которое я сейчас вижу - добавить вручную поле ACTIVE в эту таблицу
Правильно ли я поступаю или это можно решить по другому?