Да, можете попробовать. Увидите привычный PHP в немножко другом исполнении. Symfony неплохой дизайн для архитектуры приложения предлагает, хороший повод прокачаться в этом направлении :)
KonataDev, при правильном применении Symfony может позволить вам выйти на новый качественный уровень и на новый уровень задач, потому что многие вещи фреймворк делает за вас и вы уже фактически занимаетесь решением непосредственно бизнес-задачи (минусы тоже будут - ибо фреймворк диктует и кое-какие ограничения архитектуры приложения).
Дмитрий Кинаш: да, было бы неплохо именно так и сделать. Только, если я опять же правильно понимаю, все будет выполняться в одном и том же потоке; поэтому пока вся эта "магия" происходит, пользователь будет наблюдать зависшую форму, что не очень хорошо. Лучше наверное "Фоновое задание" запускать.
Дмитрий Кинаш видите почему я вцепился в этот "План обмена" и очень хочу его использовать - платформа за меня решает две важные задачи: автоматически регистрируются только изменившиеся данные и они хранятся до момента их доставки в конечную систему. Если я просто подпишусь на событие и в обработчике буду выполнять выгрузку, конвертацию и отправку данных внешнему сервису, то в случае его недоступности, мне придется решать задачу описанную выше - запоминать изменения, которые имели место, и отправить их при следующей синхронизации. Или я может опять что-то не так понимаю? :)
Дмитрий Кинаш видимо мы с Вами продолжаем наш предыдущий диалог) Можете подсказать ссылки на эту самую документацию и справку? Я не знаю, либо я гуглить не умею, либо еще что-то, но все статьи, что я вижу описывают это всё несколько поверхностно. По поводу выборки изменений - то есть автоматом нельзя настроить, чтобы все работало примерно так: "появились изменения -> сформировался пакет -> попытались его отправить"? Придется мне делать что-то типа регламентного задания, которое каждые N минут/часов будет делать вызов "ПланыОбмена.ВыбратьИзменения"? JSON безусловно удобнее, но исходя из того, что XDTO - это фактически XSD тут я убиваю двух зайцев одним выстрелом - и в удобном для меня виде формируют пакет для отправки данных на внешний сервер, и произвожу валидацию по этой же схеме данных, поступающих на сервер. В целом я вообще в верном направлении мыслю? Про то, что у меня некорректное представление о работе платформы, Вы безусловно правы, т.к я пытаюсь с нуля разобраться во всем этом с совсем недавнего времени.
Дмитрий Кинаш: спасибо за такой подробный ответ! И все-таки я правильно понимаю, что используя данный подход как раз могу обращаться из 1С к API своего внешнего сервиса? Настраиваю "План обмена" на автоматическую отправку данных при изменении некоторых справочников, настраиваю протокол взаимодействия с моим сервисом и в результате получаю почти мгновенную синхронизацию изменений, да еще и с проверкой того, что данные были доставлены. Если так, то звучит очень неплохо и значительно упрощает мою задачу.
Еще хотелось разобраться в таком моменте: где в 1С хранятся данные для доступа к сторонним сервисам? Есть какой-то общепринятый подход или мне нужно свои костыли городить?
Дмитрий Кинаш я нашел еще функционал под названием "План обмена". Судя по описанию это то, что мне нужно. Не можете ничего рассказать про него? Возможно есть какие-то подводные камни, из-за которых данное решение мне не подойдет?
Дело в том, что целевая система и 1С будут расположены на отдельных серверах, поэтому работа по COM не очень подходит. Тем более источником данных и инициатором взаимодействия как раз будет выступать 1С. Для меня удобнее всего было бы использовать REST, т.е 1С просто вызывает заранее оговоренный набор методов. Просто опять же я не знаю - так вообще делают?
odj: куда больше конкретики то? IP адрес одного из серверов AWS CloudFront заблокирован. Могу ли я каким-то образом настроить AWS для того, чтобы данный адрес не отдавался моим пользователям?
Myateznik: да, так действительно можно сделать ) но это придется переписать очень много кода. Пока все-таки принято решение выставлять document.domain везде, где это необходимо. В любом случае, большое спасибо за Вашу помощь!
Myateznik: это бы решило проблему, если бы не одно но - мы получаем из iframe ссылку на конкретный объект для последующего взаимодействия с ним. postMessage не сможет нам передать объект в таком виде :(
К сожалению, "Access-Control-Allow-Origin" отвечает лишь за возможность обращаться с определенных доменов в плане запросов. У меня же происходит кроссфреймовое JS взаимодействие, к которому данный заголовок, увы, отношения не имеет.