image_pdfimage_print

Управляемые элементы 1С. Невидимый элемент и центрирование.

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

Если кто-то считает, что для создания невидимого элемента в управляемых формах 1С достаточно  убрать флаг видимость. Его ждет глубокое разочарование. Элемент не просто не стал видимым — его совсем не стало в интерфейсе.

Это новая концепция интерфейса — «Если суслика не видно — значит его пристрелили когда перешли на клиента!»

1. НЕВИДИМЫЙ

Как же нас сделать существующий элемент, но которого мы не видим?

Берем Группу страницы, одну страницу(«Группа») делаем нормально, другую «ГруппаТехническая» делаем Доступность Ложь. Если нужно активизировать какой-то элемент на странице «ГруппаТехническая» пишем следующий код:

2. ЦЕНТРИРОВАНИЕ

И центрировать элемент в управляемой форме тоже не все так просто.
Для вертикального центрирования надо создать вертикальную группу и расположить элемент между надо поместить элемент между декорациями(надпись). Декорациям указать растяжение — Да.

Для вертикального центрирования надо сделать вертикальную группу и тоже обложить декларациями.

Для полной централизации это надо сделать каскадом.

 

3. КНОПКА в РАЗМЕР ФОРМЫ

Рецептов нет, только использовать декорацию вместо кнопок. www.forum.mista.ru/topic.php?id=694909

 

И как пример всего вышесказанного — обработка для вывода звука в 1С на infostart.ru: http://infostart.ru/public/248770/

 

 

Включаем звук в 1С. Доступно и всерьез.

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

Просматривая возможности вывода звука в html5 http://w3schools.com/html/html5_audio.asp я задумался как с этим  обстоит дело в 1С.

Начнем по порядку.

1. Когда в 1С не было управляемых форм, вывод звука основывался на системных вызовах Windows. Можно было зарегистрировать специальный ActiveX и вызвать его специальную функцию (http://www.modber.ru/catalog/item2121.html, http://infostart.ru/public/58136/). Например в http://infostart.ru/public/85155/ используется DynamicWrapperX и следующий код:

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

2. Поэтому, вооружившись только средствами интернета, будем воспроизводить звуки в 1С.
Начнем работать с  тэгом audio. В интернете у всех уже современные браузеры и все работает. Но мы же будем звучать из 1С. Значит первое что нам надо — это воспроизвести звук в тонком клиенте. Так как поле HTML в 1С работает в режиме совместимости IE7, то мы воспользуемся старый тэгом для IE bgsound.

Мы можем хранить звук в виде макетов двоичных данных. И использовать их внутри HTML поля. подобным образом:

/* И добавить скрипт в страницу */

Можно использовать вместо тэга bgsound использовать embed или object, но это все-таки неявные ActiveX элементы (http://infostart.ru/public/90660)

3. А как нам работать в web клиенте? Правильно, в web клиенте 1С работает все по другому, ближе к современным стандартам. Возьмем в руки тэг audio, попробуем сделать данные во временном хранилище и получим полным облом. Так пока сделать звук не удалось.

Но мы используем другой метод, не столь распространенный. Надо превратить звук в текст. Скажете сказки? Нет читаем спецификации и доделываем.
http://jsfiddle.net/sikuda/eY8Ba/

Обработка доступна на Инфостарте  http://infostart.ru/public/248770/

Р.S.
Ну вы понимаете к чему я клоню — пора делать простые игрушки.

Вначале 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! Недоверяйте Вашу безопастность никому и спите спокойно.

Жизнь на Марсе и ActiveX в тонком клиенте Windows 1C 8.3.6

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

Есть ли жизнь на Марсе, это пусть исследуют ученые, а мы займемся земными вещами и попытаемся ответить на вопрос: Если ActiveX в тонком клиенте Windows?

Ортодоксы 1С сразу приведут ссылку на ITS: http://its.1c.ru/db/metod81#content:3266:1 и будут неправы.

Мы люди недоверчивые, словам не верим. Внутреннее устройство платформы 1С это тайна за семью печатями. Которой получается только пользоваться, но не изучать. Поэтому возьмем ПолеHTML и посмортим есть ли там ActiveX. В Windows это поле основано на технологиях Microsoft IE. И внутри 1С это поле показывает версию IE 7, значит ActiveX есть.

Сейчас глядеть в старые версии IE, уже не модно и не нужно, но историю надо знать. В IE7 мир ActiveX хотели сделать более безопасными и поэтому ввели два понятия:
— «Безопасные ActiveX» — очень безопасные, от известных производителей (см. ниже) работают везде.
— KillBit — установлен для убийственно небезопасных ActiveX (пример — ADODB.Stream). Отключаем по умолчанию.
И в сам движок IE добавили безопасный режим выполнения — http://msdn.microsoft.com/en-us/library/bb250462%28v=vs.85%29.aspx#wpm_fliwl

Вот первый тип ActiveX перешел и работает в тонком клиенте Windows 1С! А вы ожидали webkit или blink. Я вместе с вами.

Приведем список самых популярных безопасных ActiveX:

  • MS Media player 9 — 6BF52A52-394A-11d3-B153-00C04F79FAA6
  • MS Media player 6.4 — 22D6f312-B0F6-11D0-94AB-0080C74C7E95
  • Adobe Player — D27CDB6E-AE6D-11cf-96B8-444553540000
  • Adobe PDF — CA*A9780-280D-11CF-A24D-444553540000

Они у вас включены по умолчанию. Не доверяйте — поверьте.

Если вы не доверяете ActiveX  на своем компьютере, можно их временно отключить http://support.microsoft.com/kb/240797/ru или удалить http://support.microsoft.com/kb/154850/ru

 

Р.S.

1С последнее время упорно лезет в интернет.  Уже предлагая использовать только своего тонкого клиента 1С. А если она такая популярная, то сразу возникает вопрос с безопасностью такой работы. С другой стороны все мы привыкли считать Windows не безопасной системой. А антивирус и другая защита у нас входит в обязательный комплект установки после покупки компьютера. И хотя в плане безопасности Microsoft сделала правильные шаги, но осадочек остался.

Думайте сами и тестируйте безопасность ваших решений!
Для ленивых обработки 1С на infostart.ru http://infostart.ru/public/235751/

Пропуски в графиках 1С.

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

Никак не понимал как делаются отступы и пропуски в графиках 1С. Но все оказалось намного проще чем я думал.
У графика есть два специальных свойства
БазовоеЗначение = Значение(0, 315…)
ПропускатьБазовоеЗначение = Истина или Ложь

 

Если мы в точках где не должно быть графика ставим Значение равное Базовое значение и для всего графика ПропускатьБазовоеЗначение = Истина. Получаем то что нужно.

ПробелыВГрафиках

Источник:
http://www.forum.mista.ru/topic.php?id=682997

 

В 1С 8.3.1 появились плавные линии графиков. Это новый свойства: РежимСглаживания(Булево) и НатяжениеСглаживания(0..100). Теперь у нас графики более плавные.

И для полной картины установим максисальное и минимальное значение, которые ведут себя несколько странно:

LinesMaxMin

И под конец рецепт установки вертикалых подписей в шкале принудительно:

VertLabels

Градиенты градиенты, а я маленький такой.

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

Рисование графики в 1С с помощью javascript библиотеки Raphael затягивает. И сегодня мы более подробно осветим тему заполнение цветом различных фигур и использовании градиентов.

Начальная обработка для 1С на infostart: http://infostart.ru/public/191248/

 

А теперь в поле для заполнения кода вставим:

Ну подумаешь красный шар. Эка невидаль. Его нарисовать можно и другими средствами. Их целый вагон.
Хорошо. А теперь последнюю строку заменим на другую:

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

red_ball

В документации к Raphael написано:

Линейный градиент пишется в формате: “‹угол›-‹цвет›[-‹цвет›[:смещение (‹offset›]]*-‹цвет”, например: “90-#fff-#000” — наклон 90° градиент от белого к черному или “0-#fff-#f00:20-#000” — наклон 0° градиент от белого через красный (на 20%) до черного.
Радиальный градиент записывается: “r[(‹fx›, ‹fy›)]‹цвет›[-‹цвет›[:смещение (‹offset›]]*-‹цвет”, например: “r#fff-#000” — градиент от белого к черному или “r(0.25, 0.75)#fff-#000” градиент от белого до черного с точки фокусировки на 0.25, 0.75. Точка фокуса координаты находятся в диапазоне 0..1. Радиальные градиенты могут быть применены только к кругу и эллипсу.

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

<svg xmlns=»http://www.w3.org/2000/svg» style=»left: 0px; top: 0px; overflow: hidden; position: absolute;» width=»640″ height=»480″ version=»1.1″ xmlns=»http://www.w3.org/2000/svg»><desc>Created with Rapha?l 2.1.0</desc>
<defs>
<radialGradient id=»0r_0.25__0.75__f00-_400″ fx=»0.25″ fy=»0.75″>
<stop stop-color=»#ff0000″ offset=»0%» />
<stop stop-color=»#440000″ offset=»100%» />
</radialGradient>
</defs>
<circle style=»opacity: 1; fill-opacity: 1;» opacity=»1″ fill=»url(#0r_0.25__0.75__f00-_400)» fill-opacity=»1″ stroke=»#000″ cx=»200″ cy=»200″ r=»150″ />
</svg>

Здесь я советую на будущее погрузиться и узнать немного о CSS3 и SVG для градиентов: htmlbook, www.w3schools.com

 

И сделаем имитацию, как это работает внутри тонкого клиента 1С. Переустанавливаем(F12) режим браузера в совместимый и режим документов в IE7:

<?xml:namespace prefix = «rvml» ns = «urn:schemas-microsoft-com:vml» />
<rvml:shape style=»HEIGHT: 1px; POSITION: absolute; LEFT: 0px; FILTER: ; TOP: 0px; WIDTH: 1px» raphael=»true» raphaelid=»0″ coordsize = «21600,21600» filled = «t» fillcolor = «red» stroked = «t» strokecolor = «black» path = » ar1080000,1080000,7560000,7560000,4320000,1080000,4320000,1080000 x e»><rvml:stroke opacity = «1» miterlimit = «8»></rvml:stroke>
<rvml:skew on = «t» matrix = «1,0,0,1,0,0» offset = «-.5,-.5»></rvml:skew>
<rvml:fill rotate=»false» type = «gradientTitle» color2 = «#400» angle = «0» focus = «100%» focusposition = «.25,.75» focussize = «0,0» method = «none» colors = «0 red»></rvml:fill>
</rvml:shape>

Технологии Microsoft VML и Raphael помогают нам, получить практически такую-же картинку, что и в предыдущем примере.

Но одно разочарование нас все-таки ждет. В тонком клиенте 1C Linux градиент не работает. Может там просто webkit старый? Ну как обычно поворчим на 1С…

id=»0r_0.25__0.75__f00-_400″ fx=»0.25″ fy=»0.75″>

Воронка продаж современными средствами 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/

5-я международная конференция «Решения 1С для корпоративных клиентов»

Доброе время суток!

Куда сама 1С направляет развитие своих продуктов.
Материалы с презентациями и видео.  http://www.v8.1c.ru/konf0613/

 

Обсуждение http://www.forum.mista.ru/topic.php?id=672299

Ссылка на список видео: Видео на youtube

 

Некоторые видео из списка:

Развитие архитектуры платформы «1С:Предприятие 8.3» для корпоративного рынка.
Докладчик: Нуралиев Сергей Георгиевич, «1С» Видео

Новый продукт «1С:Управление предприятием (ERP) 2.0» для крупного бизнеса. Основные новации по сравнению с «1С:УПП 1.3», позиционирование в линейке решений.
Докладчик: Нестеров Алексей Анатольевич, «1С» Видео

Развитие «1С:Бухгалтерии 8»: редакция 3.0 — новое в продукте.
Докладчик: Фогель Олег Владимирович, «1С» Видео

Отчеты в фоновом режиме 1С

Источник: http://programmist1s.ru/otchetyi-v-fonovom-rezhime-1s/

Простой пример кoда:

ЭтаФорма.СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый);

Для очень длительных и сложных отчетов это простой метод запустить их и оставить программу доступной для пользователя.

Есть способ сделать тоже не для системы компоновки данных, но это получиться намного сложнее.