По мотивам переписки о "1С + PHP + JavaScript + AJAX"

25.08.11

Интеграция - WEB-интеграция

Попалась мне на глаза статья: 1С + PHP + JavaScript + AJAX. Основы технологий удаленного взаимодействия. Прочитав ее я понял, что ни плюс поставить за нее не могу, не минус. По результатам переписки с автором приходится писать самому.

//infostart.ru/public/88559/

Что же вызвало такую реакцию? Начнем с конца так как именно он и вызывает негодование, но сначала, небольшой обзор инструменов 1С, для работы с интернет (копипаст из синтакс помошника выделен курсивом):

1. ИнтернетСоединение

Предназначен для доступа к Интернет-соединениям. Доступен только на компьютерах с установленным Internet Explorer версии 5.0 или выше.

2. ИнтернетПочта

Предназначен для доступа к почтовым серверам для отправки и получения сообщений (писем). В отличие от объекта Почта, который работает по технологии MAPI и требует от пользователя установленного почтового клиента, контекст ИнтернетПочта использует наиболее распространенные интернет протоколы SMTP и POP3 (протоколы SSL и TLS не поддерживаются). Не требует установленного почтового клиента и, если почтовый клиент все же установлен, работает с ним(и) параллельно.

3. Почта

Предназначен для доступа к почтовой системе, установленной на компьютере. Используется технология MAPI.

MAPI - mail application programming interface (почтовый прикладной интерфес) и если меня не подводит память, то клиенты обладающие этим API должны реализовать 12 функций.

4. ИнтернетПрокси

Описывает параметры прокси-серверов для различных протоколов. Допустимые протоколы для использования в объекте ИнтернетПрокси задаются строками http, https и ftp.
Позволяет использовать аутентификацию по имени пользователя и паролю или NTLM (Integrated Security) аутентификацию (в версии 1С:Предприятия под Windows).
NTLM аутентификация используется по умолчанию для прокси-серверов, поддерживающих данный способ аутентификации, и не требует дополнительных настроек, т.е. NTLM аутентификация будет использоваться, если в конструкторе объекта HTTPСоединение прокси не задан или задан, но без указания имени пользователя и пароля. Задание в конструкторе объекта HTTPСоединение прокси с указанным именем пользователя и паролем отключает NTLM аутентификацию, для аутентификации в этом случае используется HTTP Basic аутентификация.

Прокси - это некая программа посредник, которая использует так называемое тройное рукапожатие. То есть клиент обращается к прокси серверу с запросом, а тот в свою очередь передает запрос дальше (но может и не передавать) и получает ответ. этот ответ прокси сервер и передает клиенту. Зачем же нужен этот посредник. А нужен он для целей:

1. Прокси сервер - это брандмауэр уровня приложений. Он может в зависимости от прав пользователя или других параметров дать или не дать доступ. Проверить ответ на наличие вирусов (перенаправив антивирусу). Ну в общем может все, на что его заточит администратор.

2. Прокси сервер - может кэшировать ответы серверов и не повторять запросы если ответ есть в его кэше и он актуален, что может дать хороший прирост производительности.

3. Прокси сервер - это система аудита. Кто, куда и когда ходил.

5. HTTPСоединение

 

Предназначен для работы с файлами на http-серверах.
Позволяет использовать аутентификацию по имени пользователя и паролю или NTLM (Integrated Security) аутентификацию (в версии 1С:Предприятия под Windows).
NTLM аутентификация используется по умолчанию для прокси-серверов, поддерживающих, данный способ аутентификации, и не требует дополнительных настроек, т.е. NTLM аутентификация будет использоваться, если в конструкторе объекта HTTPСоединение прокси не задан или задан, но без указания имени пользователя и пароля. Задание в конструкторе объекта HTTPСоединение прокси с указанным именем пользователя и паролем отключает NTLM аутентификацию, для аутентификации в этом случае используется HTTP Basic аутентификация.
Поддерживаются следующие протоколы: HTTP 1.0, HTTP 1.1, SSL 3.0, TLS 1.0.

Из всех инструментов 1С для работы с интернетом, автор статьи причины публикации, описал только этот. Может быть потому, что это единственный из способов в 1С отправить POST или GET запрос на веб сервер не используя COM расширений или объектов интерфейса пользователя.

Что же тут такого?

Давайте остановимся на том, что такое POST запрос, а что такое GET запрос.

Общее для обоих запросов:

Оба запроса передают на сервер некие параметры и получают ответ.

Различия:

GET передает параметры в строке запроса, а POST в теле.

А теперь можно краем глаза глянуть статью: //infostart.ru/public/20017/ (Передача файлов и данных на веб-сервер средствами 1С:Предприятие 8.X методом POST) и понять, что легкого пути не будет. Я позволю сразу сделать выводы о минусах данного способа передачи:

1. Для простого запроса нужны операции записи на диск и чтения с диска. Что не повышает производительность.

2. Использование данного инструммента далеко не тривиально.

3. Если внимательно изучить синтакс-помощник, то окажется, что заголовки ответа мы получить не сможем. А значит если в ответе есть переадресация, то мы ее не увидим. Пример: попробуйте с помощью данного метода авторизоватья на сайте вконтакте по протоколу oAuth.

4. Если сайт использует самодельный сертификат, то надо взять в руки бубен, для добавления исключения.

6. FTPСоединение

Предназначен для работы с файлами и каталогами на ftp-серверах.

FTP - это file transfer protocol (протокол передачи файлов). Протокол давно устарел. Использует два порта 20 для передачи файлов и 21 для передачи управляющих инструкций. Передает пароль и логин в открытом виде, что привела к рекомендациям использовать анонимного пользователя. За NAT-ом не работает (в пассивном режиме), а в активном режиме не позволяет работать пользователям находящимися за NAT-ом.

По переписке с alexqc:

 


Например, ftp не работает через "простой" NAT из-за того что значения ip и порта переданные в команде PORT не соответствуют таковым после NATа. Очевидное решение - отлавливать команду PORT и подменять ее на нужную. Именно этим "хитрые" NATы и занимаются. В часности, для iptables (netfilter linux) например есть модуль, который так и называется - ip_nat_ftp Smile. Аналогичный функционал есть и в многих виндовых фаерволах (если не ошибаюсь как пример можно взять kerio route), и даже в "мелких" аппаратных роутерах (в принципе, там в прошивке часто тот же линух) - как стоящий у меня дома GetNet не-помню-какой-модели.
То же самое делается и для других протоколов, не выдерживающих "простой" NAT - например широковещательный IGMP (IPTV).

 


От себя могу добавить что в PF данный модуль называется ftp_proxy. По опыту могу добавить, что без допила он не работает с ftp серверами работующими на нестандартных портах.

 

 

 

По моему я произнес несколько непонятных слов NAT и порт.

1. NAT - это Network Address Translation (преобразование сетевых адресов).  Механизм, позволяющий преобразовывать IP-адреса. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.

2. IP адрес - это уникальный номер который в интернете определяет адрес устройства. Когда они появились, то считалось, что шесть миллиардов адресов хватит, однако просчтитались. NAT как раз и позволяет нескольким устройствам в  сети использовать один IP адрес.

3. Порт - это некий идентификатор по которому операционная система понимает какой программе надо передать данные пришедшие к ней. Идентификатором является целое число от 0 до 65535. При чем порты с номерами ниже 1024 считаются привелегерованными. То есть такими, которые могут использоваться только программами с правами администратора или связывать эти номера с программами может только администратор.

Альтернатива данному протоколу уже давно существует - это sftp (secure file transfer protocol) не путать с ftps (это тот же ftp протокол только через SSL). sftp - это часть ssh (secure shell), которая позволяет:

1. Выполнять на удаленных компьютерах команды.

2. Перемещать файлы. Как ftp, но имеет один большой плюс - поддерживает файловые транзакции, то есть у вас не будет никогда части файла. Либо все, либо ничего. И синхронизацию.

3. Строить тунели. То есть позволяет обратиться к серверу из другой сети так, как будто бы он находился в локальной сети.

SSH сервер входил во все дистрибутивы UNIX like которые я видел. Под windows так же существуют сервера SSH, в том числе и бесплатные.

UNIX like - это UNIX подобные операционные системы. Да UNIX - это операционные системы которые никакого отношения к Linux не имеют. Что бы быть UNIX - надо пройти сертификацию, которая стоит много убитых енотов.  Из таковых мне на память приходят HPUX, IRIX, AUX, SUN System V. BSD системы имеют корни UNIX, но начиная с выхода версии BSD Lite - таковыми не являются из-за удаления из BSD 4.3 кода AT&T. Ядро Linux основано на операционной системе MINIX, а за основу дистрибутивов (Linux это только ядро) взят SUN System V.

Как же скрестить наш 1С с SSH? А все очень просто. Есть два варианта:

1. Синхранизация каталогов на локальном и удаленном сервере. WinSCP (очень хорошая программа для работы с SSH, поддерживающия скрипты).

2. КомандаСистемы(plink.exe [команды для выполнения на удаленном компьютере] [> log.txt])

7. Web сервисы

Тут я даже не хочу копипастить синтекс-помошник (так как слишком много) попробую обойтись своими словами.

Идея веб сервисов заключается не в том что бы дать инструмент для создания веб интерфейса, как описано в статье причине, а в том что бы решить следующую задачу: "Обмен информацией между системами написаных на разных языках, работующих на разных операционных системах, находящихся в разных концах земного шара.". Веб сервисы бываю REST и SOAP.

Если кратко, то отличие REST от SOAP - это как отличие католиков от православных. И те и другие верят в единого создателя (работают поверх http), но попробуйте назвать православного католиком и сразу же услышите, что это разные веры (идеологии). REST это протокол получения ресурсов, а SOAP протокол удаленного вызова процедур. Более подробно об этих протоколах можно почитать на википедии.

1С нативно поддерживает только SOAP(WSСсылки, WebСервисы, WSПрокси). Для REST нужен бубен (можно теоритически, но на практике сложно).

8. Интерфейсные объекты (ПолеHTMLДокумента)

ПолеHTMLДокумента - не что иное как надстройка над COM объектом Internet Explorer, или браузером в случае отображения в браузере (ВнешнийОбъект). Если не требуется работа на сервере, то это один из самых удобных способов работать с интернет.

9. COM, Native API и КомандаСистемы

У 1С со времен седьмой версии есть хорошее свойство - это расширяемость с помощью внешних компонент написаных на других языках програмирования или скриптов (программ) поддерживающих параметры вызова. Не сложно написать COM на C# или Visual Basic и расширить свойства 1С. К тому же есть бесплатные инструменты Visual Studio Express, MonoDevelop. Кто знаком с С++ может поковыряться с Native API. А для совсем ленивых есть cmd или Power Shell. Да и Jscript и VBScript можно как ком объекты использовать. Все это ограничивает возможности 1С только фантазией и знаниями конкретного разработчика.

Эпилог

Оказывается в 1С для работы с интернет  существует гораздо больше объектов нежели описано в статье моей или в статье причине в пункте 6. Но почему пункт 6 статьи причины вреден для начинающих? Из-за цитирую:

 


 

И пусть вас не смущает, что в платформе 8.2 появилась возможность работать с 1С из браузера и может показаться, что данная тематика неактуальна. Уверяю вас - это далеко не так. Управляемый интерфейс 8.2 очень сильно шаблонизирован и повлиять на него разработчик практически никак не может. Чтобы делать действительно красивые, функциональные и юзабилити-мощные интерфейсы придется пользоваться описанными технологиями.

 


 

Из этих слов можно сделать только выводы:

1. Шаблоны зло.

2. Управляемые формы нельзя настроить.

3. Других технологий кроме описаных в статье не существует.

Это не так.

1. Шаблоны - это инструмент. А как известно инструмент в руках проффессионала творит чудеса.

2. Управляемые формы имеют ограничения, но нет такой задачи которую нельзя реализовать за Т времени и N денег. Управляемые формы поддерживают поле HTML документа, а значит все что может показывать браузер, можно отобразить с помощью управляемых форм. Нужны специалисты, деньги и время.

3. Даже я в своей статье поленился описывать все что знаю. А ведь знаю я даже не половину того что есть на просторах технологий. Например мне абсолютно неизвестно о Flash или SilverLight. Точнее я знаю что это, но не умею с этим работать.

 


 

Можно обмениваться произвольными XML-сообщениями, что повышает безопасность такого взаимодействия, в отличие от применения обмена, основанного на выгрузке/загрузке файлов, когда файл по пути могут подменить.

 


 

Это то же ложь.

1. XML сообщение это открытый текстовый формат. Его так же по пути можно подменять, как и двоичные данные файла.

К сожалению автор не захотел изменять статью, а предложил написать мне собственную. Что я и сделал. Надеюсь она не будет совсем бесполезным куском информации на просторах интернета, а принесет кому-нибудь пользу.

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17786    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19863    13    17    

16

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14426    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1176    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. awk 744 26.08.11 07:56 Сейчас в теме
Попалась мне на глаза статья: 1С + PHP + JavaScript + AJAX. Основы технологий удаленного взаимодействия. Прочитав ее я понял, что ни плюс поставить за нее не могу, не минус. По результатам переписки с автором приходится писать самому.

Перейти к публикации

1. perforator 26.08.11 07:56 Сейчас в теме
Статья хорошая.
Заголовок неплохо бы поближе к теме сделать.
3. awk 744 26.08.11 08:13 Сейчас в теме
(1)(2) Я не против, давайте обсудим. У меня в голове идей на этот счет мало (пока).
6. hogik 443 26.08.11 15:14 Сейчас в теме
(3)
По мотивам переписки о/про "1С + PHP + JavaScript + AJAX".
;-)
2. artbear 1563 26.08.11 08:01 Сейчас в теме
Да, заголовок исправить нужно
4. alexburn 39 26.08.11 09:23 Сейчас в теме
А я бы с удовольствием почитал мануалы по связкам 1С и WEB-сервисов, только никак не могу найти хорошие мануалы (если есть у кого, может поделитесь :) )
А так-мне обе статьи понравились:)
7. Трактор 1254 29.08.11 14:36 Сейчас в теме
(4)
alexburn пишет:
А я бы с удовольствием почитал мануалы по связкам 1С и WEB-сервисов, только никак не могу найти хорошие мануалы (если есть у кого, может поделитесь )

Работающие примеры понятнее справочников. Вот моё
http://infostart.ru/public/84674/
http://infostart.ru/public/59207/
http://infostart.ru/public/16001/
И других публикаций на Инфостарте множество.
5. Ish_2 1112 26.08.11 10:03 Сейчас в теме
Название статьи желательно сделать более информационным.
8. alexburn 39 29.08.11 20:42 Сейчас в теме
Спасибо большое за подборочку, будем изучать :idea:
9. Autodafe 91 30.08.11 13:13 Сейчас в теме
8 пункт выделяется из списка, точнее совсем не виден )
10. awk 744 30.08.11 13:25 Сейчас в теме
(9) Спасибо, исправил...)))
11. Autodafe 91 30.08.11 13:27 Сейчас в теме
awk пишет:

(9) Спасибо, исправил...)))


Неа )))

1С нативно поддерживает только SOAP(WSСсылки, WebСервисы, WSПрокси). Для REST нужен бубен (можно теоритически, но на практике сложно).

8. Интерфейсные объекты (ПолеHTMLДокумента)

ПолеHTMLДокумента - не что иное как надстройка над COM объектом Internet Explorer, или браузером в случае отображения в браузере (ВнешнийОбъект). Если не требуется работа на сервере, то это один из самых удобных способов работать с интернет.
8. COM, Native API и КомандаСистемы
12. aximo 2100 31.08.11 08:04 Сейчас в теме
я думал что-то практическое будет здесь...
13. alexqc 150 31.08.11 15:22 Сейчас в теме
Статья непонятно о чем. Типа поспорить со "статьей-причиной"?
По самой форме:
Сначала идет "вода" из синтакс помошника+небольшое к-во инфы не имеющее ценности (кто работает с инетом- это итак знает, а для начинающих она обрывочна), и только в "Эпилоге" проясняется суть! Обычно в эпилогах какие-то результаты показывают.

По содержанию:
1. Объект ИнтернетСоединение - абсолютно не раскрыто что это. Если верить синтакс помошнику - вся работа с ним состоит только в установлении и разрыве соединения. не описано ни что это, ни для чего применяется. Вы же, также не говоря что это, позиционируете его как альтернативу "п.6 статьи-причины". Что, не так? А из Эпилога как раз следует, что вы позиционируете свои пп.1-8 как средства работы с инетом, аналогично указанным в статье-причине сервисам 1С.
Между тем, ИнтернетСоединение - средство управления подключениями к интернету - т.е. диалапом, VPN и проч., что указано на вкладке "подключения" свойств ИЕ. И к работе интернет-сервисов отношение имеет ну очень косвенное.

2. ФТП. Во-первых, обилие ftp-серверов в инете говорит о том, что даже если протокол и устарел, сбрасывать его со счетов еще не время. Во-вторых, точно также как ftp передается открытым текстом, открытым же текстом передается и http, и smtp - так что это не только его недостаток, тогда почему он упомянут только в ФТП.
В третьих, не понятно что тут делают NAT, порты и прочая TCP/IP-хрень. Если уж решили описывать НАТ, почему бы не вынести в отдельный блок, т.к. это задачи совсем другого уровня.
В 4-тых, что значит "ФТП за НАТ не работает"? ФТП-сервер? - так я вас удивлю, любой сервер во внутренней сети наружу за НАТ работать не будет - и почта, и веб, и 1Совские сервисы в том числе. А чтоб работало, надо "прокинуть порт" (сделать Port forwarding).
Если имеется ввиду ftp-клиент - то он прекрасно работает через NAT, и в активном, и в пассивном режиме, только NAT чуть хитрее должен быть А если у вас не работает - пинайте админа.
В 5-тых - при чем тут SSH? У нас 1С с SSH работать может? А, ну да это можно сделать внешней компонентой/командой системы. Но тогда что он тут делает, а не в п.8?

3. В форматах сервисов можно упомянуть еще XML-RPC и JSON-RPC, и при этом стоит сказать, что качестве поставщика сервисов 1С может отдавать только SOAP. REST и остальное реализуется не просто через "танцы с бубном", а фактически это написание своего клиента. Вариантом же сервера может быть лишь использование стороннего приложения которое будет дергать эску через тот же COM (собственно, даже нативный SOAP-сервер лишь компонента к внешнему апачу/ИИСу).

про сам Эпилог - дальше.
GorDAn; vano-ekt; djvu; 1cspecialist; cool.vlad4; +5 Ответить
16. cool.vlad4 2 31.08.11 16:33 Сейчас в теме
(13) насчет ssh, у путти есть командная shell, так, что некоторый функционал возможен и без компонент.
17. alexqc 150 31.08.11 17:18 Сейчас в теме
(16)Автор разграничивает средства работы самой 1Ской, и внешними средствами (OLE/COM,внеш. компоненты,команда системы). Соответственно и работающему через командную строку SSH - место там же. (иначе в работу с вебом можно было бы вписать например, wget).

(15) Первоисточник просто сказал, что интерфейс 1С-управляемое приложение слишком "шаблонный" т.е. в значении "фиксированный", "не гибкий". Это автор статьи начал говорить, мол это значит "шаблоны - зло", введя таким образом новую сущность.

про безопасность - по описанной в начальной статье в сравнении между работой с веб-сервисом 1С (посылкой soap, т.е. xml,-пакета сразу через http) и работой через файл (т.к. даже http post-запрос 1C формирует только через файлы - файл тела запроса и файл ответа) говорится, что через файл "менее безопасно". На это автор статьи-ответа говорит что это ложь. Ну я и показал, что хоть формально, но через файл таки "менее безопасно".
18. awk 744 31.08.11 18:08 Сейчас в теме
(13) Да я бы не писал, не настой автор предыдущий статьи.
Сначала идет "вода" из синтакс помошника+небольшое к-во инфы не имеющее ценности (кто работает с инетом- это итак знает, а для начинающих она обрывочна)..


Да именно по этому я хотел закончить в комментариях в той статье, а не писать новую - на принцип пошел.
1. не работал - не хочу врать ограничился синтакс помощником.
2.
открытым же текстом передается и http, и smtp
Не всегда.
3. Это я "круть" показывал сколько я буковок знаю... :))) NAT, TCP/IP и прочая хрень - это то, на чем основан интернет. Что работает под уровнем AJAX и т.д.
4.
только NAT чуть хитрее должен быть
Хитрее - это как?
5. SSH в пункте как аналог/замена FTP.
6. Про XML-RPC и JSON-RPC - не понял. это предложение дописать не нужное?
(14)
1.
работая с шаблоном выйти за его рамки сложно либо вообще нельзя
Почему нельзя? Зачем выходить?
2.
а. Закладки легко рисуются, просто немного не так выглядеть будут.
б. Согласен, хотя - HTML вряд ли можно назвать платформой.
в. А зачем в 1С круглые окна в стиле winamp?
3. При превосходстве функционала не учитываются затраты. Сравниваются яблоки с грушами. У яблок и груш разная цена и разный вкус. Кто-то любит одно, кто-то другое. Нет превосходства яблок над грушами при всей схожести - это разные фрукты.
Если вывод натянут(неправильный) - это не минус мне, это минус человеку который излагает мысли. Я раз 10 написал, что так можно воспринять, а данное восприятие опасно для новичков.

4. Преувеличение очень большое. Цепь не крепче самого слабого звена. А самое слабое звено - это открытые и неконтролируемые каналы связи. (15) Не понял правильно. Я то же слабо представляю рассуждения про безопасность в контексте 1С.

Случай из жизни:

Не так давно была рейдерская атака на одну из фирм. Причем, этой фирме об надвигающийся атаке было известно. Они потратили 10 000$ на защиту реестра акционеров, а рейдеры купили его за 1000$ в налоговой.

Т.е. перехватить ("прослушать" поток) можно, а подменить - проблематично.
И прослушать и прервать и подменить если ты между легко - достаточно иметь доступ )))).

Формально может и прав. Но формально и после вашего трактования, а не:
Можно обмениваться произвольными XML-сообщениями, что повышает безопасность такого взаимодействия, в отличие от применения обмена, основанного на выгрузке/загрузке файлов, когда файл по пути могут подменить.
Ключевая фраза "по пути".

А вообще я сильно сомневаюсь в полезности таких статей, как у меня вышла или как вышла у моего оппонента. Лучше писать мало, но по делу.
19. alexqc 150 31.08.11 20:30 Сейчас в теме
(18) ИМХО, вам таки стоило бы ограничится комментариями, как статья это действительно... лишнее, чтоли.
только NAT чуть хитрее должен быть
----
Хитрее - это как?

Не должен ограничиваться подменой адреса-источника, а менять и внутренность пакета. Например, ftp не работает через "простой" NAT из-за того что значения ip и порта переданные в команде PORT не соответствуют таковым после NATа. Очевидное решение - отлавливать команду PORT и подменять ее на нужную. Именно этим "хитрые" NATы и занимаются. В часности, для iptables (netfilter linux) например есть модуль, который так и называется - ip_nat_ftp :). Аналогичный функционал есть и в многих виндовых фаерволах (если не ошибаюсь как пример можно взять kerio route), и даже в "мелких" аппаратных роутерах (в принципе, там в прошивке часто тот же линух) - как стоящий у меня дома GetNet не-помню-какой-модели.
То же самое делается и для других протоколов, не выдерживающих "простой" NAT - например широковещательный IGMP (IPTV).



6. Про XML-RPC и JSON-RPC - не понял. это предложение дописать не нужное?

Ну, упомянув REST (которого не было в исходной) вы ж чем-то руководствовались? Я и предложил про другие протоколы сказать. Кстати, json не в пример легче основанных на xml протоколах, и в 8.2 обмен с веб-клиентом идет как раз таки не на xml, а на js-объектах. И, туда же, хоть у вас в названии ajax присутствует, про сам ajax в статье ни слова (понимаю что название с исходной статьи взято, но можно было б помянуть, хотя бы в контексте перечисления возможностей, ведь web-интерфейс 82 на ajax'е построен).

б. Согласен, хотя - HTML вряд ли можно назвать платформой.

Дело ж не в платформе, а в том что все равно надо писать функционал 1Сом не предусмотренный. Так почему бы не написать его на чем-то ином (PHP?), что имеет больше возможностей чем веб-клиент 1С.

в. А зачем в 1С круглые окна в стиле winamp?

Не знаю, я такого и не предлагал. Мож клиентов на сайт завлекать ;).

3. При превосходстве функционала не учитываются затраты. Сравниваются яблоки с грушами. У яблок и груш разная цена и разный вкус. Кто-то любит одно, кто-то другое. Нет превосходства яблок над грушами при всей схожести - это разные фрукты.

Вот так и знал что про затраты вспомните. Так речь-то не о затратах, а о результате. Позволю себе еще раз процитировать
Управляемый интерфейс 8.2 очень сильно шаблонизирован и повлиять на него разработчик практически никак не может. Чтобы делать действительно красивые, функциональные и юзабилити-мощные интерфейсы придется пользоваться описанными технологиями.

ну не идет тут речь о сравнении ни по затратам, ни по "вообще", только о "красивости,функциональности,мощности". А то что для более "красивого" нужны большие затраты - обычно итак понятно. И ведь когда сравнивают GUI с командной строкой - не сравнивают затрат на реализацию. Я вообще предполагаю, что до этого места та статья вас устраивает, я прав?

Про безопасность не буду, т.к. это тут действительно не в тему.

Если вывод натянут(неправильный) - это не минус мне, это минус человеку который излагает мысли. Я раз 10 написал, что так можно воспринять, а данное восприятие опасно для новичков.
Ну это ж вы его натянули. Вот мне как раз кажется, все там можно воспринять нормально. Даже новичку.
Если бы вы поспорили с тем, что интерфейс 82 назван недостаточно мощным - это было бы понятно. Но вы ж сказали, что судя по статье его "вообще не существует"!

А вообще я сильно сомневаюсь в полезности таких статей, как у меня вышла или как вышла у моего оппонента.

У вашего оппонента получилась вполне нормальная обзорная статья (и как раз для новичков). Единственное хреновое место - наезд на интерфейс 8.2 (тут можно поспорить) и пассаж про безопасность (в приведенном виде это вообще лишнее). Не определяя объема, навскидку предположу что это едва ли 2% всей статьи. Да, вы правы критикуя его за это, но критикуете не так :). Не конструктивно :).
20. awk 744 01.09.11 10:36 Сейчас в теме
(19)
1. Хитрый нат выходит за рамки нат и становится скорее прокси. В FreeBSD есть FTP PROXY.

Не должен ограничиваться подменой адреса-источника, а менять и внутренность пакета. Например, ftp не работает через "простой" NAT из-за того что значения ip и порта переданные в команде PORT не соответствуют таковым после NATа. Очевидное решение - отлавливать команду PORT и подменять ее на нужную. Именно этим "хитрые" NATы и занимаются. В часности, для iptables (netfilter linux) например есть модуль, который так и называется - ip_nat_ftp smile:). Аналогичный функционал есть и в многих виндовых фаерволах (если не ошибаюсь как пример можно взять kerio route), и даже в "мелких" аппаратных роутерах (в принципе, там в прошивке часто тот же линух) - как стоящий у меня дома GetNet не-помню-какой-модели.
То же самое делается и для других протоколов, не выдерживающих "простой" NAT - например широковещательный IGMP (IPTV).
Можно я этим куском дополню статью?

2. Упомянув REST, я хотел рассказать о том, что SOAP - это не стандарт единоличный или самый популярный, это один из... Но проводить ночь в их описаниях не хотелось...

вообще предполагаю, что до этого места та статья вас устраивает, я прав?
Да с этого момента я перестал читать по диагонали и перечитал статью внимательно.

Ну это ж вы его натянули.
Нет. Я так понял слова автора (первое чтение). Был случай:
Выпустили в России Капитал Карла Маркса. И стал он настольной книгой предпринимателя. Но его запретили. Обоснование: "Из десяти прочитавших, один устроит революцию".

Так речь-то не о затратах, а о результате.
Результата без затрат не бывает.

P.S. Спасибо, за то что читали не по диагонали. Это приятно.
14. alexqc 150 31.08.11 16:09 Сейчас в теме
Итак, про эпилог (или основную часть статьи :)?):

---
Управляемый интерфейс 8.2 очень сильно шаблонизирован и повлиять на него разработчик практически никак не может. Чтобы делать действительно красивые, функциональные и юзабилити-мощные интерфейсы придется пользоваться описанными технологиями.
---
Из этих слов можно сделать только выводы:

1. Шаблоны зло.
2. Управляемые формы нельзя настроить.
3. Других технологий кроме описаных в статье не существует.


Ваши выводы сильно натянуты
1. Неверно. Вывод в том, что работая с шаблоном выйти за его рамки сложно либо вообще нельзя
2. Да, управляемые формы нельзя настроить иначе, как это делает 1С. например, в 8.2.14 релизе появились "закладки", до этого их не было. вы бы сомгли организовать те же закладки до 14го релтиза? И не надо говорить мол "есть HTML-поле, значит все можно сделать". Во первых, возится с HTML-полем практически то же самое что писать интерфейс на иной платформе. Во-вторых, от 1Сочного обрамления этого поля все равно никуда не денешься.
3. Неверно. Правильный вывод - описанные технологии позволяют сделать "крутые" интерфейсы, в отличие от предусмотренного 1С. Не споря о "крутости" 1Сочного интерфейса отмечу, что вывод подразумевает лишь превосходство "описанных технологий" и лишь над 1С.

Можно обмениваться произвольными XML-сообщениями, что повышает безопасность такого взаимодействия, в отличие от применения обмена, основанного на выгрузке/загрузке файлов, когда файл по пути могут подменить.
------
Это то же ложь.
XML сообщение это открытый текстовый формат. Его так же по пути можно подменять, как и двоичные данные файла.

Тут не ложь, а некое преувеличение.
Итак: обмен через сервис состоит из:
1. Формирования сообщения
2. Передачи его по сети.
Обмен через файл:
1. Формирования сообщения
2. Сохранение его как файл
3. Передача

либо (более экзотический вариант)
2. Сохранение его в файл на ФТП сервера
3. Сигнал серверу что готовый файл лежит у него.

Даже поверхностный взгляд показывает что файл-дополнительный шаг, и значит есть доп. возможность атаки. Но есть и еще кое-что: передаваемое сообщение можно подменить только если ты сидишь между передатчиком и приемником, и принимаешь его целиком а потом передаешь. Иначе - это поток данных, который существует лишь в момент передачи. Т.е. перехватить ("прослушать" поток) можно, а подменить - проблематично.
В то же время чтобы подменить файл достаточно лишь иметь доступ к тому месту куда файл кладется, и успеть его заменить пока он "бесхозный".
Т.е. формально автор исходной статьи прав - вариант с файлом "более дыряв", но фактически эта "дыра" где-то глубоко внутри и извне в норме недоступна. И соответственно вы неправы - вариант с файлом действительно "менее безопасный".
1cspecialist; +1 Ответить
15. cool.vlad4 2 31.08.11 16:31 Сейчас в теме
(14) А вообще о какой безопасности идет речь в 1С? Чего там за подмены двоичных данных и xml сообщений? И какая разница между файлом(суть тот же набор двоичных данных) и потоком?.. файл хранится в памяти, ну и поток тоже...вообще считаю спор переписчиков некорректным ибо как вопрос спора не ясен. Да и вообще в контексте 1С, представляется сидят бушки и перехватывают траффик, дебажат, ищут уязвимости ;) По мне так шифрование(если необходимо) и часть вопросов отпадет.

...Насчет шаблонов вообще не понял, о чем имел ввиду первоисточник (1специалист кажется)...ну, шаблоны, и? и что имеется ввиду под шаблонами?
21. alexqc 150 01.09.11 11:36 Сейчас в теме
Можно я этим куском дополню статью?

Да пожалуйста. Тока его наверно чуть причесать надо.

2. Упомянув REST, я хотел рассказать о том, что SOAP - это не стандарт единоличный или самый популярный, это один из...

Я бы всеж советовал дополнить про json (даже без RPC, хотя бы просто как формат, отличный от xml). В исходной статье о нем ни слова (в принципе понятно, она опирается на предоставляемый платформой SOAP), между тем у него куча плюсов, по сравнению с основанными на xml форматами. И как я выше говорил, сама 8.2 работает по json а не по xml (кстати, интересный факт - поскольку X в AJAX - это XML, то AJAX работающий через JSON правильнее было бы называть AJAJ, однако AJAX уже сильно устоявшийся термин).

Выпустили в России Капитал Карла Маркса
Это точно не анекдот?
22. awk 744 01.09.11 14:11 Сейчас в теме
(21)
1. Спасибо. Вечером доработаю.
2. Некорректно вставлять про JSON и не вставлять про XML и YAML. Если SOAP vs REST, с натягом, но можно сравнивать (SOAP протокол, REST идеология на базе которой строятся веб сервисы). То JSON это формат.
3. Историчка в 1996 или 95 году на уроке рассказывала. У нее это было из разряда забавные факты в истории России.
23. baclanov 28.08.12 10:44 Сейчас в теме
Хотелось бы уточнить автор сам использовал NTLM аутентификацию или прочитал в синтакс-помощнике?

5. HTTPСоединение

Предназначен для работы с файлами на http-серверах.
Позволяет использовать аутентификацию по имени пользователя и паролю или NTLM (Integrated Security) аутентификацию (в версии 1С:Предприятия под Windows).
NTLM аутентификация используется по умолчанию для прокси-серверов, поддерживающих, данный способ аутентификации, и не требует дополнительных настроек, т.е. NTLM аутентификация будет использоваться, если в конструкторе объекта HTTPСоединение прокси не задан или задан, но без указания имени пользователя и пароля. Задание в конструкторе объекта HTTPСоединение прокси с указанным именем пользователя и паролем отключает NTLM аутентификацию, для аутентификации в этом случае используется HTTP Basic аутентификация.
Поддерживаются следующие протоколы: HTTP 1.0, HTTP 1.1, SSL 3.0, TLS 1.0.


Версия 1С:Предприятие 8.2 (8.2.15.310)
24. awk 744 28.08.12 10:54 Сейчас в теме
(23) baclanov, И читал и использовал. А что конкретно интересует? Данная часть из синтакс-помошника сtrl-с сtrl-v 1:1.
25. baclanov 28.08.12 12:53 Сейчас в теме
Пытаюсь присоединить SharePoint 2010 (адрес типа http://сайт/_vti_bin/Webs.asmx?WSDL) как WS-ссылку в конфигураторе, пароль соответственно оставляю пустым вываливается ошибка "Аутентификация не выполнена", по-видимому пытается подсоединиться с параметрами: Proxy-Support: Session-Based-Authentication, как заставить не использовать прокси не понятно. Спасибо.
26. awk 744 28.08.12 13:26 Сейчас в теме
(25) baclanov, Сохрани WSDL на диск, да открой как file://...
27. baclanov 28.08.12 13:45 Сейчас в теме
Спасибо, все получилось :-)
Оставьте свое сообщение