Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)

#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
1) Я тоже, если правильно Вас понял, придерживаюсь той точки зрения, что если кого-то в чем то хочется упрекнуть, то проблема в тебе самом. Я подумаю и приму меры к себе на будущее
2) Пишу туда, где чаще отвечают. Если нет возможности вести двойную, ответе куда-нибудь.
3) Вопросы задаю, потому что есть желание разобраться в работе системы.
4) Мне кажется, что форум не только не филиал поддержки, но и не замена документации. Странно, что в своих ответах в тех. поддержке и на форуме Ваши специалисты ссылаются не на актуальную, выверенную документацию, а на посты на форуме, зачастую даже без точной ссылки, приходится кучу всего перерывать и перепроверять.
5) третий день жду консультации по функции или какого-то альтернативного варианта. Был бы доступен исходник посмотрел бы там. Мне в принципе все равно куда ответите, на форум или в поддержку.
#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
genasan писал(а):
OR писать?
- да, конечно, между свойствами, требующими их одновременного выполнения, нужно OR указывать. Здесь моя ошибка.
genasan писал(а):
Остался открытым вопрос по более полной документации функции GetExternalInformationSystemItem
- данный метод первым параметром($select) принимает ассоциативный массив, ключами которого являются поля таблицы information_items_table(базы данных), а вторым параметром - массив $param(через него можно передать только два элемента: $param['Order'] и $param['OrderField']). Т.е. выбрать с помощью этого метода элементы с учетом их ограничений по доп. свойствам невозможно в приниципе. Поэтому мы рекомендуем использовать метод ShowInformationSystem.
genasan писал(а):
да, причем не только тех, которые попали на текущую страницу
- вообще метод ShowInformationSystem возращает(помимо того, что строит отображение) массив идентификаторов инфоэлементов, которые он выбрал для отображения. Поэтому можно добавить еще один вызов этого метода, передав в него все необходимые параметры(для фильтрации по доп. свойствам, например), а также передать заведомо большое значение в качестве параметра $items_on_page. Результат вызова следует сохранить в переменную(массив). Для того, чтобы т.о. не произошел показ списка элементов еще раз, можно вызвать метод после включения буферезации вывода.
#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
Спасибо, за исчерпывающий ответ. Лучше тогда напрямую через &singleton('DataBase' сделаю
#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
Пожалуйста.
genasan писал(а):
Лучше тогда напрямую через &singleton('DataBase' сделаю
- в таком способе есть один недостаток: если нами будет изменена структура таблиц базы, то методы мы также изменим соответствующим образом. А запросы вам придется переписывать.
#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
А так, чтобы сформировать списки задействованных доп. параметров нужно сделать выборку не просто этих параметров, а полностью всех элементов, не разбивая на куски по страницам, со всеми полями, сформировать из этого xml потенциально на несколько мегабайт, через xls вытащить из него параметры.
#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
genasan писал(а):
сформировать из этого xml потенциально на несколько мегабайт, через xls вытащить из него параметры
- да, можно так. Но это действительно может быть трудозатратно, поэтому, возможно, и лучше будет сделать запросом: т.е. получить список идентификаторов инфоэлементов, подлежащих отображению, а затем выполнить запрос к таблице со значениями свойств, чтобы выбрать только те значения, которые используются для этих элементов.
#
Re: Получение елементов ИС через API (предполагаю GetExternalInformationSystemItem)
А вариант добавить функционал метода ShowInformationSystem по части фильтрации элементов в метод GetExternalInformationSystemItem вами совсем не рассматривается?
Авторизация