Местоположения в Битрикс имеют узконаправленный кейс использования и для того чтобы начать их использовать в широком смысле, нужны значительные доработки.
Нужно импортировать координаты и с этим все достаточно просто. Но нужно так же хранить обширные дополнительные данные и вот тут у меня есть некоторые затруднения:
1 Из-за того, что структурой не предусмотрено хранить склонения названий, необходим сторонний механизм хранения таких данных. Возможно я бы мог задействовать таблицу названий и хранить там альтернативные названия как названия на другом языке, например ru_gen для родительного падежа, но совершенно не ясно как получить эти данные из таблицы. Я могу получить названия только для одного языка - [CODE]$res = \Bitrix\Sale\Location\LocationTable::getList(array(
'filter' => array(
'=ID' => intval($id),
'=NAME.LANGUAGE_ID' => 'ru'
),
'select' => array(
'ID',
'NAME_RU' => 'NAME.NAME'
)
));
if ($arLocation = $res->fetch()) {
if ($childrens) {
$arLocation['CHILDRENS'] = $this->getChildrensById($arLocation['ID']);
}
return $arLocation;
}
[/CODE]А как проделать то же самое для двух языков?
2 Кроме того мне необходимы символьные коды для использования их в url. Очевидно для этого подойдет таблица ext. Я бы мог добавить внешний сервис URL_CODE например... Но теперь я хочу получить местоположение с этим кодом и индексом. С индексом понятно:[CODE]$res = \Bitrix\Sale\Location\LocationTable::getList(array(
'filter' => array(
'=ID' => intval($id),
'=NAME.LANGUAGE_ID' => 'ru',
'=EXTERNAL.SERVICE_ID' => 1
),
'select' => array(
'ID',
'NAME_RU' => 'NAME.NAME',
'ZIP' => 'EXTERNAL.XML_ID'
)
));
[/CODE]С момим кодом примерно то же:[CODE]$res = \Bitrix\Sale\Location\LocationTable::getList(array(
'filter' => array(
'=ID' => intval($id),
'=NAME.LANGUAGE_ID' => 'ru',
'=EXTERNAL.SERVICE_ID' => идМоегоСервиса
),
'select' => array(
'ID',
'NAME_RU' => 'NAME.NAME',
'URL_CODE' => 'EXTERNAL.XML_ID'
[/CODE]А как с тем и другим?
Вообще говоря все проблемы - как сделать select по таблице без фильтрации по ней?
Можно это как-то решить или просто взять и использовать свою сущность под местоположения?
P.S.
Что такое CODE применительно к местоположениям? Не смог найти коды чего это.