image_pdfimage_print

Безопасность и удобство это концы одной палки.

Поймали ковбои трех индейцев: вождя племени, простого индейца и индейца по прозвищу Орлиный Глаз, заперли их в сарае и поставили охрану. День проходит, второй проходит, на третий день смотрят — сбежали индейцы. Ковбои в погоню, поймали их и спрашивают, как им удалось сбежать. А вождь им отвечает: «День мы сидим, другой день сидим, а на третий день Орлиный Глаз заметил, что у сарая нет одной стены.»

Доброго времени суток!

Безопасный режим в 1С(http://its.1c.ru/db/v83doc#bookmark:dev:TI000000185)  это хорошо.

Наверное для кого-то будет откровением, но безопасный режим работает только на Сервере!!!

ВНИМАНИЕ! В клиент-серверном варианте вызов метода не оказывает влияния при работе на стороне клиента.

Если директор на своем компьютере из тонкого клиента запускает безопасную обработку в которой есть данный код:

То все его локальные файлы в данной директории будут скопированны в внутрь базы 1C. Все будет работать в безопасном режиме!!!

И напоследок запись файла на компьютер пользователя в безопасном режиме без согласования с пользователем в базу 1С:

Обсуждение на мисте: https://fotki.yandex.ru/next/users/sikuda/album/160087/view/560276?page=0  закрыто Волшебником и ник заблокирован за «публикацию алгоритма взлома» на языке 1С.

Если рассматривать 1С тонкий клиент подключенный через интернет базе 1с по аналогии с web вэб браузером, который открыл страницу html. То в вэб-браузере на клиенте из открытой страницы Вы не сможете сделать запрос к другому сайту. Принцип одинакового источника (англ. same origin policy). В тонком же клиенте в среде 1С вы имеете доступ к базе и к любому источнику в Интернете.
В браузере зайдя на плохой сайт Вы не боитесь потерять данные, в тонком клиенте Вы не сможете запускать чужой не проверенный код явно или косвенно.

Все вышеприведенное нормальное поведение программы в локальной сети. Но если мы влезаем в интернет, то по безопасности тонкий клиент 1С я не рекомендую к использованию. И если использовать, то с дополнительной настройкой VPN.

Тонкий клиент в безопасном режиме легко сможет передать ваши файлы в Интернет на любой сервис принимающий файлы. И это никого не беспокоит. Об этом похоже никто не задумывается.

praemonitus praemunitus.

А то пишут, пишут… («Межсайтовый скриптинг») конгресс, немцы какие-то… Голова пухнет. Взять все, да и поделить(бери и работай)!

 

Предыдущее исследование безопасности: http://sikuda.ru/archives/1074

P.S.

Кстати функция НайтиФайлы наWindows 10 не работает — вылетает исключение.

 

Вначале Internet Explorer 11 и 1C были не вместе.

 

Доброго времени суток!

Движения в сторону новых браузеров Microsoft фирма 1С стала совершать( IE10 http://sikuda.ru/internet-explorer-10-dlya-windows-7-vyishel/) . Но мир не стоит не месте. появился новый IE11 и Microsoft всем обновила браузер на компьютере.

Сначала IE11 не входил в список поддерживаемых браузеров 1С.
Bad1CBrowser

 

 

 

 

 

Теперь он добавлен в список Microsoft Internet Explorer 8.0, 9.0(x86), 10(x86), 11(x86) для Windows (http://v8.1c.ru/requirements/)

Ключевой особенностью этого браузера является то, что стандартно определить этот браузер по свойству userAgent не возможно. Выдает типа:

«Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko»

Или вообще прикинуться Chome

Chome — userAgent «Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36»

Это мы оставим на разборки MS — Google, а сами займемся 1С.

 

Что-же у нас в тонком клиенте:  У нас все стабильно и это хорошо:

UserAgent1C

 

И если некоторые и предлагают для html поля прописывать строчку совместимости с новой версией <meta http-equiv=’X-UA-Compatible’ content=’IE=Edge’ /> то это меняет картину только отчасти:

UserAgent1C-Comp

Да первая инициализация поля html происходит с новым userAgent, но выполнение основного контента и обработка событий внутри поля находиться в режиме совместимости IE7.  Так. что воздержимся от таких половинчатых решений и будем жить в режиме совместимости и надеяться на 1С 8.5 и выше

Обработка 1С для проверки на сайте Инфостарт:  http://infostart.ru/public/171763/

IE глазами дизайнера
Internet Explorer

 

 

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

«Делегаты! Если у меня когда-нибудь будут дети, я повешу им на стену портрет прокуратора Иудеи Понтия Пилата, чтобы дети росли чистоплотными. Прокуратор Понтий Пилат стоит и умывает руки — вот какой это будет портрет.»

Венедикт Ерофеев. Москва-Петушки

Доброго времени суток!

Здесь на форуме Mista.ru я стокнулся с формулировкой вопроса «как отобразить картинку, лежащую на локальном диске пользователя» И понял, что понимание безопасности в интернете у 1С людей отсутствует как класс. Поэтому еще раз здесь приведу пример, того как должна работать интернет безопасность и что не так в 1С.

Человек не понимал, что ActiveX в интернете не работает. НИКАК!

Он пытался из браузера вызвать следующий код

Что же нам выдают браузеры при запуске локального файла на компьютере:

IE10 при запуске локального файла 1) спрашивает запуска небезопасных элементов 2) И делает свое темное дело.

ActiveX-IE10

Firefox — ошибка

ActiveX-FirefoxChrome — ошибка

ActiveX-ChromeА заходя на старницу сайта из интернета http://sikuda.ru/1c/activeX_Oblom.html получаем ошибку для всех браузеров (смотреть в отладке — F12)

ActiveX-IE10-out1

 

А теперь о том что не так в 1С: 1. Да браузер не может загружать Вашу страницу в интернете и одновреммено показать Вам и например локальную картинку. http://sikuda.ru/1c/chudaki.html

1. Потому, что он работает с сайтом и у него нет одновременного доступа к локальным данным!

БраузерЛюбой

2. В тонком клиенте Windows 1C это не так. Здесь Вы видите одновременно и картинку с сайта и локальную картинку на диске пользователя.То есть внутри тонкого клиента 1с код обработки может получить доступ к локальному ресурсу. То есть прочитать данные Вашего компьютера без вашего мнения. Это плохо!

ТонкийКлиент1С

Для недоверчевых пишем инструкцию, как это проверить:

1. Создадим картинку на локальном диске C:TempBadIE.jpg
2. Берем обработку из статьи http://sikuda.ru/vstroennyj-brauzer-v-1s-kto-zdes/
3. Заходим в тонким клиентом 1С 8.2.18.102 на ws=»http://trade.demo.1c.ru/trade»;;
4. Открываем обработку 1. Вводим  адрес http://sikuda.ru/1c/chudaki.html .

 

Здесь мы имеем ситуацию смены идеологии безопасности. Когда на смену локальным и локально сетевым информационным системам приходят глобальные системы. Для большинства естественно, что запускаемая программа имеет полный доступ к локальному диску. Но если эта программа берет данные из интернета? А если эта программа может выполнить код загруженный из интернета? И передать ваши локальные данные в интернет? Это меняет идеологию безопастности программы полностью. Видим ли в 1С озабоченность безопасностью клиентов? У них только движения по безопасности сервера.

А в сухом остатке это класический открытый XSS. в поле html.

Если мы начинаем смотреть на 1С как на сервис https://1cfresh.com то неконтролируемое взаимодействие локальных и интернет ресурсов будет огромной дырой в безопасности.
Но всем некогда, все работают http://www.forum.mista.ru/topic.php?id=679824 и мне это напоминает историю с безопасностью Windows при распространении интернета.

Продолжение исследование безопасности: http://sikuda.ru/archives/1715
Р.S.

Вот такие рожицы! Символ небезопасного старого Internet Explorer! Недоверяйте Вашу безопастность никому и спите спокойно.

Воронка продаж современными средствами SVG графики.

Доброго времени суток!

Задела меня статья на мисте о воронке продаж «Воронка продаж типовыми средствами 1С (без использования Html, .Net etc.)» Задела не тем, что там все хорошо и есть что изучать, а тем что большинство не изучая методы и средства конкретной реализации пытаются найти способы реализовать графику средствами исключительно внутри 1С. Не объясняя и не показывая поэтапно, как сделана эта графика. На какой библиотеке она основана и как реализована. А тайную информацию про ImageMagik читаем в руководстве администратора стр.238. Если посмотреть на эту графику 1C в веб клиенте через средства разработки (есть уже во всех браузерах), то легко заметим что график это просто картинка:

voronka0

Поэтому в 1С до 8.3.3.721 графики всегда строются на сервере и передаются картинкой. А хотелось бы равняться на современные тенденции и строить графики на клиенте передавая с сервера только данных для построения графика.

Поэтому мы пойдем по другому пути. Пойдем от стандартной графики в интернете основанной на Scalable Vector Graphics (SVG) и затем ее уже будем реализовывать в 1С в поле HtmlДокумента.

Для начала прочитаем вступительную статью про SVG графику например: http://ruseller.com/lessons.php?rub=28&id=1602

Итак, начнем по шагам:

  1. Сначала нарисуем эллипсы, из которых будет состоять наша воронка (из оригинала).  Точнее только верхная крышка у нас эллипс. В htmlполе надо записать в body следующий код:
    <svg viewBox=»0 0 1400 1400″ xmlns=»http://www.w3.org/2000/svg» version=»1.1″>
    <ellipse cx=»200″ cy=»100″ rx=»100″ ry=»20″
    style=»fill:yellow;stroke:purple;stroke-width:1″/>
    </svg>В 1С в тонком клиенте Windows 8.3.3.721 так не будет работать, в вэб клиенте все работает. В библиотеке raphaeljs для старого движка IE есть методы работы с SVG элементами. Добавляем в функцию onload:

    voronka1
  2. Остальные уровни это не полные эллипсы а только нижние дуги от эллипсов. В htmlполе надо записать в body следующий код:

    <svg viewBox=»0 0 1400 1400″ xmlns=»http://www.w3.org/2000/svg» version=»1.1″>
    <path d=»M 100 200
    A 100 20 0 1 0 300 200″
    fill=»none» stroke=»red» stroke-width=»1″ />
    </svg>
    В 1С в тонком клиенте Windows 8.3.3.721 так не будет работать, в вэб клиенте все нормально. В библиотеке raphaeljs для старого движка IE есть методы работы с SVG элементами. Добавляем в функцию onload:

    voronka2
  3. Теперь построим боковые стороны от вернего полуэлипса до нижнего. В htmlполе надо записать в body следующий код:
    <svg viewBox=»0 0 1400 1400″ xmlns=»http://www.w3.org/2000/svg» version=»1.1″>
    <path d=»M 50 100
    A 150 20 0 1 0 350 100
    L 300, 200
    A 100 20 0 0 1 100 200Z»
    fill = «none» stroke=»red» stroke-width=»1″ />
    </svg>
    В 1С в тонком клиенте Вы сами понимаете… Добавляем в функцию onload и градиент раскраски для оживления (fill: «0-#f00-#400»):

    voronka3
  4. Теперь собираем весь код для обработки для библиотеке Рафаэля:
    [wpdm_file id=12]
    Код для вставки:

    voronka4

    Получилось патриотично!

Да мы не рассказали, а как так волшебным образом SVG графика заработала в старом движке. Просто раньше у Microsoft развивала библиотеку VML и ее приоритетная реализация работает со старыми движками. А библиотека raphaeljs позволила нам сделать шаг от старых браузеров в новые открытые стандарты HTML.

Для очень ленивых обработка для 1С (требует подключение к интернету — берет скрипты с этого сайта) на infostart.ru http://infostart.ru/public/199275/

Когда размер имеет значение. Определение размера поля html в 1С в пикселях.

Доброго времени суток!

Играясь с полем html внутри тонкого клиента 1с, встала задача определение его размеров. Именно реальных размеров в пикселях, а не виртуальных в символах, которые устанавливаются в 1С. Эти размеры могут меняться. Меняться могут как самой программой, так и пользователями. Надо обрабатывать событие изменение размера и менять вывод поля. Привязывать решение внутри самой 1С не хотелось. 1С это просто вэб-клиент привело к следующему решению:

  1. Определяем размер для разных режимов
  2. Проверяем на 0.
  3. Инициализация элемента html проходит несколько этапов, но именно последний выдаст нам не нулевой размер контейнера.
  4. Вызываем этот код в функциях window.onload = function() и window.onresize = function() в javascript.

Кусок кода на javascript для html поля:

P.S. Вот так можно потихонечку можно обжиться внутри 1С с программирование на javascript.

Встроенный браузер в 1С. Надеемся на webkit?

Доброго времени суток!

В первые увидев ПолеHTML документа в обычном приложении можно подумать, что это полноценный браузер в 1С. Что-то подсказывает, что нет.

Проверим что нам напишет по поводу браузера простая проверка или внутреннее свойство ИнформацияПрограммыПросмотра (8.2.17.153):

  1. Локальная машина — Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
  2. Толстый клиент — Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
  3. Тонкий клиент — Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
  4. Web-клиент — Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

Без комментариев. Смотрим у думаем.

Для тех кто не верит, дадим ссылку на особенности IE7: http://htmlbook.ru/content/khaki-dlya-ie7

Пробуем написать простой браузер для толстого клиента(прикрепленный ВэбБрайзер1С.epf) и начнем тестировать. Введем www.1c.ru и сразу получим ошибку стилей…(обычная корпоративная система Win7x64, IE9).

И воспроизвести ошибку в режиме ie7 не удастся. Значит дело не в номере движка. Погуляем еще по сайтам и заметим, что ошибки не так уж заметны. v8.1c.ru и Инфостарт не выдают ошибок…

Залезаем в документацию 1C толстого клиента: Описание объекта, в целом, определяется стандартом World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1 (http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/) Но, объект имеет особенности, связанные с реализацией. ПолеHTMLДокумента реализовано с использованием WebBrowser Control https://msdn.microsoft.com/en-us/library/aa752127(v=vs.85).aspx. Тип свойства документ соотвествует типу HTMLDocument http://msdn.microsoft.com/en-us/library/ms531073(VS.85).aspx. Вот где здесь точно собака порылась…

Кто любит аналоги с исходными кодами — отсылаю в примеры Qt: http://doc.qt.io/qt-5/activeqt-activeqt-webbrowser-example.html

Ошибки это плохо. Сделаем новую форму ФормаОбычнаяActivеX. И вставим туда ActiveX элемент Browser. Немного поколдуем с кнопками, что выглядело как в первоначальной форме. Запускаем www.1c.ru баз, опять ошибка. Нет ну так не пойдет. По логике интернет программирования, есть ошибка она просто что-то не делает, а не напрягает пользователя. Поэтому отыскиваем в нашем объекте свойство Silent и устанавливаем его в Истина. Ура! Момент истины, www.1c.ru открывается без ошибок. Поставим эту форму по умолчанию. И посмотрим на версию движка: «Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)» — а он старый.

Теперь займемся тонким клиентом. Здесь у нас есть только свойство Данные типа строка, типа текст страницы. Посмотрим как это сделано в типовых конфигурациях. Внутренние ссылки работают, а внешние вызываются по ПерейтиПоСсылке во внешнем браузере. Что это значит, это не облом, это философия такая. И разумное объяснение может упирается в безопасность и рабоспособность старого движка, а не разумное в маркетинг(Наш тонкий клиент круче чем все вэб-браузеры мира…). Но даже по безопасности видна явная дырка. Скрипты на странице работают, если их загрузить отдельно. Пока в версии 8.3.3.721 так и ничто не говорит чтобы что-то измениться.

Для любителей смотреть ошибки в скриптах — сделаем эту возможность в тонком клиенте. Поставим начальную страницу, чтобы сразу не ругался v8.1c.ru. Скачивайте — наслаждайтесь. Даже можно запустить демо 8.3 внутри тонкого клиента (про вынос мозга — см. выше).

Такси внутри
Браузер тонкого клиента с такси внутри.

 

Обработку можно скачать на инфостарте http://infostart.ru/public/191248/

Установка принудительной эмуляции IE11:
1. Устанавливаем Internet Explorer 11
2. Идем в реестр: HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATUR E_BROWSER_EMULATION
3. Добавляем 1cv8.exe — REG_DWORD — 11001

Работа динамического списка в 1С

Доброго времени суток!

Задумываясь над выводом больших и огромных данных в 1С типа полного журнала документов. Понимаешь,  что получить ты его сможешь, а показать все сразу, ну никак не получиться. Только  если Вы не безумный печатный маньяк и Вас не уволили с предыдущего места работы за растрату бумаги.

А как сама 1С выводит такие большие списки. Можно же просто открыть журнал расходных накладных. Браузер нам в руки, а там есть средства разработчика. Будем смотреть:

На реальных данных не смогу показывать, а в демонстрационных базах 1С данных немного. Лучше посмотреть на своей тестовой базе. Открываем какой-нибудь список. Пролистываем его вниз и о чудо — получаем вторую порцию данных:

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

Да это именно, то что 1С именует динамическим списком. Им не можно, а нужно пользоваться в 1С. Жаль, что внешнего API для него нет, да нам не привыкать…

Так, что: Знания — сила. Ф. Бекон (англ. философ)

JQuery Mobile

Доброго времени суток!

Вы не понимаете почему так много говорят о мобильной разработке, мобильной версии сайтов. Все просто. Откройте данный сайт на своем телефоне. Да на этом маленьком экранчике. Или откройте один из приведенных сайтов на телефоне или планшете:

А теперь попробуйте это сделать с сайтами по тематике 1С:

Теперь Вам стало понятна разница между удобно и нельзя пользоваться. Можно много говорить о том, что это пока не для работы, что планшеты и телефоны это больше для развлечений. И забыть о том как на самом деле захватывали рынок персональные компьютеры. Мы этого делать не будем.

Мы посмотрим  на 1С-Битрикс ,которая идет усиленная работа над мобильной версией сайта.

 

И дадим ссылку на одну из популярных библиотек для этих целей:

JQueryMobile: http://jquerymobile.com

Видео

Новшества в v1.3 (русское описание)

http://ruseller.com/lessons.php?id=1650

И подождем появления 1С 8.3.5. Что она сможет нам показать в этом плане.

 

HTML5 Canvas в 1С 8.3 или Google нам поможет.

Доброго времени суток!

Добрался я для написания маленьких тестов для 1С в плане web графики. Версии 1С 8.2.61 и 8.3.3.641.

Зайдем на http://www.w3schools.com/html/html5_canvas.asp и перенесем примеры в обработку 1С.

Скачать обработкe можно на инфостарте http://infostart.ru/public/174856

Результаты не радуют. 1С в Internet Explorer, как и в тонком клиенте Windows не работает ничего. Видно проверка в 1С идет именно на IE и все замещается и не работает. Без библиотеки excanvas.js она просто ругается, но и она не спасает. Все остальные браузеры показывают правильный результат. Видно руки 1С туда не дошли, как и в тонком клиенте на Linux.

HTML51CIE9
Меня 1C научила никогда не отступать от решения задачи, насколько сложной она не казалась с первого раза. Для этого надо понять, а как работает библиотека excanvas. Посмотреть на пример в http://infostart.ru/public/57648/. Да вспомнить, что до html5 Microsoft усиленно толкала свою систему VML (http://msdn.microsoft.com/en-us/library/ee384217%28v=vs.85%29.aspx). Вот она и прекрасно работает со старыми версиями движков IE. И excanvas это эмуляция функций обрисовки графиков html5 через эту систему. Значит 1С надо немного помочь. Посмотрев как эта библиотека работает в старых IE, получилось решение что нужно добавить в для 1С. Делаем дополнительный флаг «Довесок для 1С». Тестируем обработку HTML5-1С-min (см. вложение к статье). Ура, заработало. Делаем 1С ближе к HTML5.

Любителям «Такси» тоже сделаем картинку, пусть проверяютHTML51CThinkTaxiGood

Но таким методом не получиться протащить видео и звук в HTML5. Здесь мы отсылаем читателя к дальнейшим разработкам:  Звук и Видео на Windows.

 

И из дополнительного, что очень хочется сделать — показ катринок заменяя значение src в поле image.

СтраницаНТML = »
|< html >
|< head >
|< /head >
|< body >
|< div > Тест страницы < /div >
|< div > < img src='»+СсылкаНаКартинку+»‘/ > Тест картинки < / div >
|< / body >
|< / html > «;

А переменной СсылкаНаКартинку можно получить с помощью функций:

  • ПолучитьНавигационнуюСсылку
  • ПоместитьВоВременноеХранилище

И для полноты картины посмотрим как сама 1С выводит свои графики:

 

 

 

 

Просто делает динамически картинку во временном хранилище и ее показываем.

Под капотом 1С и СКД. Отслеживаем запросы 1С.

Доброго времени суток!

Все больше и больше появляется инструментов для изучения, тестирования и отладки вэб-приложений. Ведущие производители браузеров от популярных своих расширений (Firebug и др..) перешли к созданию встроенных средств в сами браузеры. Посмотрите  — Firefox(Web developer  Shift+F2), Chrome (Инструменты разработчика Ctrl+Shift+I) и даже Internet Explorer 9-10 (Средства разработчика F12). Смотри и отлаживай сколько хочешь.

Посмотрим внутрь 1С. Там свои закрытые объекты взаимодействия..

Напишем на 1С кусочек, выполним:

Добавляет в дерево такой элемент:

 

Интересно еще посмотреть, а как отсылает 1С запрос в отчет СКД и получает данные:

requestSCD  (запрос на выполнение отчета)

responceSCD  (первый ответ сервера, чтобы понять принцип достаточно )

 

Да это уже можно посмотреть просто в браузере. Видео по использованию:

Видео