|   |   | 
| 
 | Как проще разобрать такую строку? [ решено через PHP unserialize() ] | ☑ | ||
|---|---|---|---|---|
| 0
    
        Гений 1С гуру 30.06.22✎ 19:48 | 
        Строка такая: a:3:{s:3:\"zip\";s:6:\"143982\";s:8:\"selected\";b:1;s:9:\"mail_type\";s:13:\"ONLINE_PARCEL\";}
 Нужно было срочно, поэтому написал сам фукнцию, а вообще что это за формат и как его разбирать? Вроде на JSON не похоже. Функция РазбитьСтрокуФорматаДвоеточий(Знач Строка) //Пример строки: //a:3:{s:3:\"zip\";s:6:\"143982\";s:8:\"selected\";b:1;s:9:\"mail_type\";s:13:\"ONLINE_PARCEL\";} Строка = СтрЗаменить(Строка, "\""", ""); Р = Новый Структура("zip, mail_type"); М = СтрРазделить(Строка, ":;", ложь); Пред1 = Неопределено; Пред2 = Неопределено; Пред3 = Неопределено; Для Каждого Эл Из М Цикл Если Пред3 = "zip" Тогда Р.Вставить("zip", СтрЗаменить(Эл, """", "")); ИначеЕсли Пред3 = "mail_type" Тогда Р.Вставить("mail_type", СтрЗаменить(Эл, """", "")); КонецЕсли; Пред3 = Пред2; Пред2 = Пред1; Пред1 = Эл; КонецЦикла; Возврат Р; КонецФункции | |||
| 11
    
        Гений 1С гуру 30.06.22✎ 20:55 | 
        (8) там еще вложенность есть {}     | |||
| 12
    
        Гений 1С гуру 30.06.22✎ 20:55 | 
        (10) Так себе подсказки     | |||
| 13
    
        Ненавижу 1С гуру 30.06.22✎ 21:02 | 
        Начинать надо с того, где ты это взял?     | |||
| 14
    
        Волшебник 30.06.22✎ 21:28 | 
        (13) От Почты России. Написано в сабже.     | |||
| 15
    
        Ненавижу 1С гуру 30.06.22✎ 21:32 | 
        (14) я получал от почты нормальный JSON, а не вот это вот всё, поэтому и спрашиваю предисторию     | |||
| 16
    
        Волшебник 30.06.22✎ 21:32 | 
        (15) Ну ждём автора-художника-гения...     | |||
| 17
    
        youalex 01.07.22✎ 03:56 | 
        (0) Выкладывай на Хабр     | |||
| 18
    
        Маленький Вопросик 01.07.22✎ 04:15 | 
        код не смотрел, но проще разобрать через кодсимвола     | |||
| 19
    
        Anarki 01.07.22✎ 06:01 | 
        В одной теме сразу две легенды     | |||
| 20
    
        d_monah 01.07.22✎ 06:34 | 
        Хм,дочка почты России сейчас активно набирает прогов на проект(мне свалилось тоже),если Гения берут в команду,я отказываюсь!!!Вроде тольуо стабилизировались,и вот на тебе..     | |||
| 21
    
        Anarki 01.07.22✎ 07:25 | 
        (0) решается примерно так: 
 В аутлуке пишешь авторам: привет, могу с кем нибудь поговорить из технических работников? И по телефону, в режиме реального времени обговариваете форматы. А если контора в усмерть бюрократы. Тогда именно такую стойку через регулярные выражения делать (не 1с). Но лучше тупо договориться с то стороной | |||
| 22
    
        Конструктор1С 01.07.22✎ 07:42 | 
        (2) н-да. А пользоваться документацией и гуглить не пробовал?     | |||
| 23
    
        Ненавижу 1С гуру 01.07.22✎ 07:45 | 
        (22) Серёжа программирует и вообще "Нужно было срочно", какое место на инфостарте?     | |||
| 24
    
        d_monah 01.07.22✎ 07:46 | 
        (22) А что,и так можно?Спасибо,буду пробовать.Или это только для гениев?     | |||
| 25
    
        Конструктор1С 01.07.22✎ 07:47 | 
        (23) никакого учётка давно проё, новая совершенно голая     | |||
| 26
    
        d_monah 01.07.22✎ 07:47 | 
        (23) Запомните раз и навсегда.ЧЕТВЕРТОЕ!Даже я со старческим своим склерозом помню.     | |||
| 27
    
        Fish гуру 01.07.22✎ 08:28 | 
        (26) "ЧЕТВЕРТОЕ!" - А с какой стороны?     | |||
| 28
    
        d_monah 01.07.22✎ 08:35 | 
        (27) Не будьте таким душным,тем более гений про это не говорил.     | |||
| 29
    
        Гений 1С гуру 01.07.22✎ 08:36 | 
        (15) этот ответ от почты россии передает веб-программист интернет-магазина в розницу при обмене розницы с сайтом.     | |||
| 30
    
        Гений 1С гуру 01.07.22✎ 08:36 | 
        (22) не нюхал ты Уася, реальной жизни     | |||
| 31
    
        Ненавижу 1С гуру 01.07.22✎ 08:37 | 
        (29) прямо веб-программист лично передает?     | |||
| 32
    
        Ненавижу 1С гуру 01.07.22✎ 08:37 | 
        (29) какой запрос посылали, что пришел такой ответ?     | |||
| 33
    
        d_monah 01.07.22✎ 08:41 | 
        (31) Не лично,носит в Почту россии и бандеролью с описью.     | |||
| 34
    
        Ненавижу 1С гуру 01.07.22✎ 08:54 | 
        (33) не совместимое АПИ https://fixinchik.ru/russkaya-pochta-chto-ty-natvorila/     | |||
| 35
    
        mikecool 01.07.22✎ 09:11 | 
        (34) он даже в почтовые ящики вбрасывает...     | |||
| 36
    
        Kassern 01.07.22✎ 09:12 | 
        (30) (0) У Почты России офигенное API и отзывчивая поддержка. Когда я внедрял интеграцию с ней, вообще проблем не было, если были вопросы, то в течение дня (порой часов) их тех поддержка отвечала. Я так же не понимаю, откуда вы эту строку дернули.     | |||
| 37
    
        Kassern 01.07.22✎ 09:13 | 
        ну офигенное, я конечно загнул, но вполне просто с ним разобраться и работать.     | |||
| 38
    
        Гений 1С гуру 01.07.22✎ 09:14 | 
        (36) я уже писал - это не совсем почта россии, это ответ от почты россии сайту. сайт сохраняет его в своей БД и потом передает в 1С по XML     | |||
| 39
    
        Гений 1С гуру 01.07.22✎ 09:14 | 
        (37) Ну я разобрался и работаю. ;-)
 Кстати, прикольно, но в двух реализациях обмена с почтой россии видел аббревиатуру ШПИ, хотя в API такого нет. Кто-то у кого-то передирает? | |||
| 40
    
        d_monah 01.07.22✎ 09:15 | 
        (34) Ну,ну это чересчур!))),был бы он сильным просто сломал бы ящик.     | |||
| 41
    
        Гений 1С гуру 01.07.22✎ 09:15 | 
        (32) пользователь на сайте выбирает адрес и тариф, веб-программмист передает в 1С дополнительно индекс и тариф.     | |||
| 42
    
        Kassern 01.07.22✎ 09:15 | 
        (38) ну так ответ-то должен быть по api и с четкой структурой, которая задокументирована. Получается, что уже сайт таким образом сконвертировал ответ от почты, а не она его таким выплюнула.     | |||
| 43
    
        Гений 1С гуру 01.07.22✎ 09:15 | 
        (40) я перешел на ЭДО в знак протеста     | |||
| 44
    
        Гений 1С гуру 01.07.22✎ 09:15 | 
        (42) все так.     | |||
| 45
    
        mikecool 01.07.22✎ 09:16 | 
        (38) а причем тогда почта России?     | |||
| 46
    
        Kassern 01.07.22✎ 09:17 | 
        (44) зачем тогда писать, что строка от почты россии? Вы тем самым ввели людей в заблуждение. По факту, это строка от левого сайта, а откуда она ее собрал и состряпал в контексте задачи уже не важно     | |||
| 47
    
        Ненавижу 1С гуру 01.07.22✎ 09:21 | 
        (38) а нормальное АПИ использовать нельзя? без вот этих вот сайтов?     | |||
| 48
    
        Kassern 01.07.22✎ 09:23 | 
        (47) как я понял, в контексте хотелки гени, это не нужно. Надо лишь пнуть кодера со стороны сайта, чтобы грузил данные в 1с с сайта в нормальном формате. Смысл с 2х мест стучать на почту, когда сайт уже все получил?     | |||
| 49
    
        PLUT гуру 01.07.22✎ 09:26 | 
        слоган Почты России: еще не всё потеряно!     | |||
| 50
    
        Ненавижу 1С гуру 01.07.22✎ 09:30 | 
        (48) смысл получать данные в 1С через сайты, если есть АПИ Почты России?     | |||
| 51
    
        Гений 1С гуру 01.07.22✎ 09:31 | 
        (47) где? Пользователь делает заказ на сайте именно и потом уже сайт сообщает мне, какой тариф и адрес выбрал пользователь. Так что в данном случае не понимаю, почему ты завел канитель про нормальное API     | |||
| 52
    
        Гений 1С гуру 01.07.22✎ 09:32 | 
        (50) потому что клиент делает заказ на сайте, а не в 1С, гыгыгы. Это же элементарно, Ватсон     | |||
| 53
    
        Kassern 01.07.22✎ 09:33 | 
        (50) да все просто. Покупатель на сайте делает заказ и выбирает нужный способ доставки, сайт стучит на почту передает адрес с весом, та ему возвращает стоимость доставки. Эти данные он показывает покупателю. Он делает заказ, который уже грузиться в 1с. Так вот в этом заказе и нужно передать данные в нормально формате полученные с почты. Это будет лучше чем потом 1ска еще раз постучится и снова будет получать стоимость доставки.     | |||
| 54
    
        Kassern 01.07.22✎ 09:34 | 
        (52) в любом случае потом из 1ски придется не раз еще почту России дергать (выгрузка посылки, этикетки, пререрасчет доставки и т.д.)     | |||
| 55
    
        Kassern 01.07.22✎ 09:34 | 
        Поэтому API со стороны 1с в любом случае желательно.     | |||
| 56
    
        Kassern 01.07.22✎ 09:35 | 
        да та же формализация адреса удобная штука у почты     | |||
| 57
    
        Ненавижу 1С гуру 01.07.22✎ 09:36 | 
        (52) я не могу читать мысли твоих тараканов     | |||
| 58
    
        Гений 1С гуру 01.07.22✎ 09:39 | 
        (57) читай мои комменты, я уже раз пять описал схему.     | |||
| 59
    
        Гений 1С гуру 01.07.22✎ 09:40 | 
        (54) это да, там используется API, ага     | |||
| 60
    
        Гений 1С гуру 01.07.22✎ 09:40 | 
        (53) тут вопрос не в том лучше или хуже, а в том, чтобы пользователю доставили именно тем тарифом и по той цене, что ему сказал сайт.
 Это и для СДЭК актуально. Пока не ковырялся в этом говнище, и не знал, что это важно. | |||
| 61
    
        Ненавижу 1С гуру 01.07.22✎ 09:41 | 
        (58) в топике ничего не было, а это говорит об умении формулировать задачи     | |||
| 62
    
        Гений 1С гуру 01.07.22✎ 09:42 | 
        (61) надо читать не только топик, но и уточнения. Ну или не читать, если моё умение формулировать задачи не устраивает. ага     | |||
| 63
    
        Fragster гуру 01.07.22✎ 09:42 | ||||
| 64
    
        Fragster гуру 01.07.22✎ 09:42 | 
        итого - сделать прокладку на php, которая вернет json     | |||
| 65
    
        Конструктор1С 01.07.22✎ 09:46 | 
        (30) в отличии от тебя я читаю доку     | |||
| 66
    
        PLUT гуру 01.07.22✎ 09:50 | 
        (63) что-то не на одноэсном. эта сложна. вот в (0) всё панятно     | |||
| 67
    
        Конструктор1С 01.07.22✎ 09:50 | 
        (47) где Г1С и где нормально. "Делать без костылей, писать код нормально, читать документацию?.. Да ну, бред какой-то"     | |||
| 68
    
        Ненавижу 1С гуру 01.07.22✎ 09:52 | 
        (67) "в бюджет не впишемся" ))     | |||
| 69
    
        PLUT гуру 01.07.22✎ 09:52 | 
        (66) магия! нажал Run code и  
 array ( 'zip' => '143982', 'selected' => true, 'mail_type' => 'ONLINE_PARCEL', ) | |||
| 70
    
        Kassern 01.07.22✎ 09:55 | 
        ну хочется ТСу через гланды информацию получать для 1с, ну бог с ним. По мне так, если есть возможность пнуть кодера со стороны сайта, то это лучший вариант. В противном случае, я бы с 1ски API почты дергал. Парсить внутрянку перехваченных ответов сайта - это какой-то изврат     | |||
| 71
    
        PLUT гуру 01.07.22✎ 09:56 | 
        (70) ну в (0) похоже сериализованная пыхыпыщная строка (63) на сайте хранится? пинать нужно пыхаря на сайте, чтобы жысон гению возвращал?     | |||
| 72
    
        Kassern 01.07.22✎ 09:58 | 
        (71) конечно пинать пыхаря, чтобы он в json/xml выгружал данные о заказе, в том числе стоимость доставки, траспортную компанию, индекс и т.д.     | |||
| 73
    
        Fragster гуру 01.07.22✎ 10:21 | 
        скорее всего там просто заменить serialize на json_encode     | |||
| 74
    
        Гений 1С гуру 01.07.22✎ 10:32 | 
        (63) офигеть. ;-) значит на сейте кодит любитель пыхапе.     | |||
| 75
    
        Гений 1С гуру 01.07.22✎ 10:33 | 
        (73) раз это умеет разобрать пыхапе, то и 1с сможет, уже нащупали формат, отлично     | |||
| 76
    
        Kassern 01.07.22✎ 10:34 | 
        (75) походу это не излечимо...     | |||
| 77
    
        Гений 1С гуру 01.07.22✎ 10:44 | 
        (70) вот мне чисто инетерсно, что ты собрался с Почты дергать, если выбранный пользователем тариф и адрес хранятся на сайте интернет-магазина? Вот жутко любопытно.     | |||
| 78
    
        Гений 1С гуру 01.07.22✎ 10:46 | 
        в общем, благодаря сообчеству мы формат строки определили - это пышпэшная сериализованная структура.
 Можно поискать готовую функцию конвертации такой структуры в структуру 1С, но пожалуй не буду, оставлю так. Да, пыхапыря сайта нагнуть сложно - их там два. Один плагины прикручивает, другой в 1С передает. Проще выцепить что дают. | |||
| 79
    
        Кирпич 01.07.22✎ 10:48 | 
        Чо там разбирать. СтрНайти и в кассу. Начали тут PHP.... API... Как разобрать....     | |||
| 80
    
        Волшебник 01.07.22✎ 10:50 | 
        (63) Гениально     | |||
| 81
    
        Fragster гуру 01.07.22✎ 10:53 | 
        (78) -> (73)     | |||
| 82
    
        Fragster гуру 01.07.22✎ 10:53 | 
        поменять вызываемую функцию     | |||
| 83
    
        Fish гуру 01.07.22✎ 10:55 | 
        Так что? Гениальная функция из (0) оказалась не нужна? Ну вот, так всегда - "на самом интересном месте..." (с)     | |||
| 84
    
        Kassern 01.07.22✎ 10:57 | 
        (77) я бы дернул разработчика сайта, чтобы он мне выгрузил данные заказа корректно, а не изобретал велосипеды.     | |||
| 85
    
        Kassern 01.07.22✎ 10:58 | 
        там делов на считанные минуты, добавить в готовую выгрузку доп поля по заказу     | |||
| 86
    
        Гений 1С гуру 01.07.22✎ 11:02 | 
        (85) всегда ржу, когда слышу "делов на считанные минуты".     | |||
| 87
    
        Гений 1С гуру 01.07.22✎ 11:03 | 
        (83) в смысле не нужна? Готовой то функции Unserialize на 1С нет. Так что очень даже нужна и работает. ;-)     | |||
| 88
    
        Гений 1С гуру 01.07.22✎ 11:03 | 
        (84) да там сложно дергать. Удёргаешься     | |||
| 89
    
        Kassern 01.07.22✎ 11:04 | 
        (86) я по личному опыту сужу, множество обменов с сайтами написал и с подобными задачами часто сталкивался. Обычно адекватные разработчики сайтов попадались, оперативно вопрос решали.     | |||
| 90
    
        Kassern 01.07.22✎ 11:07 | 
        (88) ну так есть хозя, который денюшку платит этому разрабу, через него и дергается, раз на прямую не можешь. Надо разграничивать задачи, по факту это не задача для 1с, пытаться выхватить у сайта инфу, как там заказали, а работа для разработчика сайта, чтобы он доработал обмен со своей стороны и выгрузил данные корректно. Тем более интеграция с ТК (транспортными компаниями) у него уже есть, данные у него в базе хранятся (как заказ был сделан), все что осталось в текущий обмен добавить пару тегов и все.     | |||
| 91
    
        Гений 1С гуру 01.07.22✎ 11:16 | 
        (84) про разработчика понятно, но ты там собирался АПИ Почты дергать, вот я и спросил. АПИ Почты тут дергать нет смысла, ОК
 (90) Это прописные истины. Но в данном случае проще разобрать чем дернуть. | |||
| 92
    
        Гений 1С гуру 01.07.22✎ 11:17 | 
        (89) в IT нет "считанных минут", пора уже это понимать. Как минимум, тестировать надо после каждой такой "пятиминутки"     | |||
| 93
    
        Kassern 01.07.22✎ 11:20 | 
        (92) "считанных минут" - это фактическое время, чтобы добавить тег в выгрузку с данными, которые легко из базы получить. Особенно, когда у тебя код с выгрузкой перед глазами открыт. Чуть больше времени нужно, чтобы этот тег корректно в 1с загрузить.     | |||
| 94
    
        Fragster гуру 01.07.22✎ 11:28 | 
        (88) лучше, конечно, потратить минимум несколько часов на создание глючного велосипеда (а тестировать ты его будешь на соответствие спецификации? сколько это займет? один рабочий день? два?), чем поменять/добавить такой же но другой эндпоинт с использованием другой типовой функции     | |||
| 95
    
        Kassern 01.07.22✎ 11:29 | 
        (94) фиксин -логика, создать проблему и героически ее решить. При этом выкатить клиенту счет за потраченные часы.     | |||
| 96
    
        PLUT гуру 01.07.22✎ 11:31 | 
        (92) с тебя 2,5 килорубля за час работы одноэсника, ггггыы
 УФ: Как в поле ввода (колонка таблицы) активизировать выбор значения? | |||
| 97
    
        Kassern 01.07.22✎ 11:32 | 
        хотя Хозя мог по факту заплатить час работы программисту сайта и час работы 1снику и сделать все красиво, если бы ТС это предложил. И час тут не фактическое время, а минимальное для оплаты.     | |||
| 98
    
        Kassern 01.07.22✎ 11:32 | 
        Можно даже сделать универсально для всех ТК с которыми обмен, это будет еще лучше     | |||
| 99
    
        Kassern 01.07.22✎ 11:33 | 
        В итоге получится, ТС что-то там без ведома разраба сайта стянул, а разраб через недельку взял, да формат поменял, так как не в курсе, что 1ска там что-то дергает из внутрянки. А потом хозя волосы на груди рвет, почему обмен заказов встал, а ТС в отпуск свалил)     | |||
| 100
    
        Кирпич 01.07.22✎ 11:39 | 
        а у меня гугл работает
 https://reks.biz/?p=2368 | |||
| 101
    
        Кирпич 01.07.22✎ 11:50 | 
        Но там тоже какой то гений писал. Так что лучше (0)     | |||
| 102
    
        Kassern 01.07.22✎ 11:52 | 
        (101) (100) не открывается ссылка...     | |||
| 103
    
        Кирпич 01.07.22✎ 11:56 | 
        (102) позвони админу :)     | |||
| 104
    
        Конструктор1С 01.07.22✎ 11:57 | 
        (99) ТС постановит: "ггг... кризис вайти"     | |||
| 105
    
        Кирпич 01.07.22✎ 11:57 | 
        Код отсюда https://reks.biz/?p=2368
 
 | |||
| 106
    
        Кирпич 01.07.22✎ 11:59 | 
        только оно не понимает экранирование ковычки. нужно сначала заменить все \"     | |||
| 107
    
        PLUT гуру 01.07.22✎ 12:05 | 
        (105) надо просто подождать выхода новой платформы. наверн добавят скоро (по просьбам?)
 джысона тоже когда-то в платформе не было, был программный парсер | |||
| 108
    
        Гений 1С гуру 10.07.22✎ 19:37 | 
        Кстати, нашел сериализатор/десерилазатор PHP: https://reks.biz/?p=2368     | |||
| 109
    
        Гений 1С гуру 10.07.22✎ 19:37 | 
        (100) о, держи пять, параллельно нашли     | |||
| 110
    
        Гений 1С гуру 10.07.22✎ 19:55 | 
        Правда, пришлось сперва убирать экранированные кавычки:
 Функция ДесериализоватьРНРСЭкранированнойКавычкой(Знач СтрокаСериализации) Экспорт СтрокаСериализации = СтрЗаменить(СтрокаСериализации, "\""", """"); Возврат ДесериализоватьРНР(СтрокаСериализации); КонецФункции | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |