Closed MarsMinerstone closed 4 months ago
Спасибо, посмотрю попозже
А можете приложить полный лог выполнения вышеописанного кода?
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - INFO - fast_bitrix24 - Starting call((<fast_bitrix24.bitrix.BitrixAsync object at 0x7180daf60c90>, 'crm.item.update', {'entityTypeId': 133, 'id': 247, 'fields': {'ufCRM_30_1714103630': None}}), {})
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - fast_bitrix24 version: 1.7.2
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - No IPython found
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - Concurrent requests increased: {'mcr_cur_limit': 50}
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,334 - DEBUG - fast_bitrix24 - Requesting {'method': batch, 'params': {'halt': 0, 'cmd': {'order0000000000': 'crm.item.update?__order=order0000000000&entityTypeId=133&id=247&fields[ufCRM_30_1714103630]=None&'}}}
May 21 12:14:27 ruvds-5d49q python[98072]: 2024-05-21 12:14:27,524 - DEBUG - fast_bitrix24 - Response: {'result': {'result': {'order0000000000': {'item': {'id': 247, 'xmlId': '', 'title': 'Андрей Макарцев\n', 'createdBy': 6511, 'updatedBy': 6511, 'movedBy': 6511, 'createdTime': '2024-05-21T15:14:26+03:00', 'updatedTime': '2024-05-21T15:14:27+03:00', 'movedTime': '2024-05-21T15:14:26+03:00', 'categoryId': 122, 'opened': 'N', 'stageId': 'DT133_122:NEW', 'previousStageId': '', 'begindate': '2024-05-21T03:00:00+03:00', 'closedate': '2024-05-28T03:00:00+03:00', 'companyId': 0, 'contactId': 0, 'opportunity': 0, 'isManualOpportunity': 'N', 'taxValue': 0, 'currencyId': 'RUB', 'opportunityAccount': 0, 'taxValueAccount': 0, 'accountCurrencyId': 'RUB', 'mycompanyId': 0, 'sourceId': 'CALLBACK', 'sourceDescription': '', 'webformId': 0, 'ufCrm30I': 'Макарцев', 'ufCrm30F': 'Андрей', 'ufCrm_30_': 'celfi@mail.ru', 'ufCrm30Gorod': 'Свердловская область Екатеринбург', 'ufCrm30Tg': '@sdfsdfsfd', 'ufCrm30Spes': 'Управление HR, Служба развития новых площадок (СРНП), ', 'ufCrm30Dr': '1995-03-14T03:00:00+03:00', 'ufCrm30_1713945028': None, 'ufCrm30_1713945184': 3445, 'ufCrm30_1713945484': None, 'ufCrm30_1713945543': None, 'ufCrm30_1713945562': None, 'ufCrm30_1713956150473': None, 'ufCrm30_1714103168': '29', 'ufCrm30_1714103555': None, 'ufCrm30_1714103618': 'None', 'ufCRM_30_1714103630': None, 'ufCrm30_1714104884176': None, 'ufCrm30_1714106355377': None, 'ufCrm30_1714111271': None, 'ufCrm30_1714112298027': None, 'ufCrm30_1714113441': None, 'ufCrm30_1714122056': 'Андреевич', 'ufCrm30_1714131633': None, 'ufCrm30_1714131799': None, 'ufCrm30_1714131815': None, 'ufCrm30_1714131831': '', 'ufCrm30_1714131841': 79991111111, 'ufCrm30_1714204151': None, 'assignedById': 6511, 'lastActivityBy': 6511, 'lastActivityTime': '2024-05-21T15:14:26+03:00', 'utmSource': None, 'utmMedium': None, 'utmCampaign': None, 'utmContent': None, 'utmTerm': None, 'observers': [], 'contactIds': [], 'entityTypeId': 133}}}, 'result_error': [], 'result_total': [], 'result_next': [], 'result_time': {'order0000000000': {'start': 1716293667.476324, 'finish': 1716293667.52081, 'duration': 0.04448580741882324, 'processing': 0.04400205612182617, 'date_start': '2024-05-21T15:14:27+03:00', 'date_finish': '2024-05-21T15:14:27+03:00'}}}, 'time': {'start': 1716293667.454244, 'finish': 1716293667.52083, 'duration': 0.06658601760864258, 'processing': 0.04455399513244629, 'date_start': '2024-05-21T15:14:27+03:00', 'date_finish': '2024-05-21T15:14:27+03:00'}}
что-то типа такого
Проблема в методе
extract_from_batch_response
, в файлеfast_bitrix24/server_response.py
.Код, который я выполняю:
Вот ссылка на используемый мной метод Bitrix24 REST API: https://dev.1c-bitrix.ru/rest_help/crm/dynamic/methodscrmitem/crm_item_add.php
Вот такой результат я получаю:
"item"
Следуя по шагам выполнения, выясняю, что в функцию
extract_from_batch_response
приходит данный словарь, что в целом приемлемый для меня ответ от api, и с которым я бы мог работать:однако после условия:
if self.is_nested(first_item) or isinstance(first_item, list):
результатом метода становится один из ключей"item"
.Конкретно, весь словарь обрезается в момент:
result_list = list(chain(*result_list))
Избавившись от этого преобразования, у меня получилось получить то, что я хотел. Но я понимаю, что в этой части кода был какой-то смысл, поэтому жду ответа от вас.Думаю проблема в том, что это взаимодействие с каким-то кастомным смарт-процессом, и подобный вывод не был предусмотрен в разработки библиотеки.