image_pdfimage_print

Один из способов вызвать функцию 1С из JavaScript для обычных и управляемых форм

Оригинал статьи:
http://x1c.ru/kak_visvat_1c_is_js/

Это статья для Специалистов по 1С.

Иногда к нам обращаются с вопросом по поводу того, как из JavaScript’а в ПолеHTMLДокумента вызвать функцию 1С.

В этой статье мы приведем сразу 2 примера:

  • вызов функции JavaScript в ПолеHTMLДокумента из 1С
  • вызов функции 1С из JavaScript в ПолеHTMLДокумента

В первом случае функция вызывается достаточно просто:

ЭтаФорма.Элементы.хНТМЛ.Документ.parentWindow.MyFunction ();

Второй случай чуть сложнее. Суть его реализации заключается в следующем:

  1. Объявить экспортную функцию в форме (с ключевым словом Экспорт).
  2. Передать ссылку на форму (обычную или управляемую) в переменную JavaScript.
  3. В нужный момент вызвать из JavaScript нашу экспортную функцию как обычный метод формы.

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

 

Формат 1C v8msg

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

Если Вы встретили в 1С формат v8msg

знайте это формат данных распределенных данных 1С.

Чтение таких данных осуществляется так:

Запись может осуществляться так:

При чем ПланамиОбмена можно пользоваться совместно и отдельно от выгрузки и загрузки.
При чтение: ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);

Раскрасить ТабличнуюЧасть в 1С

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

В простых формах мы перехватывали событие ПриПолученииДанных и изменяли оформление:

 

В Управляемых формах есть свойство формы УсловноеОформление. Можно его правильно настроить
http://infostart.ru/public/181336/

или использовать программно:

Прогресс не стоит на месте

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

Если у Вас не запускается в Linux apache в связке с 1С

sudo /etc/init.d/apache2 restart
* Restarting web server apache2 [fail]
* The apache2 configtest failed.
Output of config test was:
apache2: Syntax error on line 231 of /etc/apache2/apache2.conf: Cannot load /opt/1C/v8.3/i386/wsap22.so into server: /opt/1C/v8.3/i386/wsap22.so: undefined symbol: ap_rputs
Action ‘configtest’ failed.
The Apache error log may have more information.

Знайте прогресс не стоит на месте и версия 1С 8.3.6 (2015 год) и apache 2.4 (2012 год) несовместимы. Надо делать обновление до версии 2.2.

Возможно для обновления надо будет набрать:

sudo apt-get upgrade
apt-cache showpkg apache2 | grep 2.2
apt-get install apache2=2.2.22-1ubuntu1

How to check my current version of Linux Mint — cat /etc/linuxmint/info

Но практически все дистрибутивы уже не содержат apache 2.2, а выпиливать 2.4 и вставить 2.2 это надо быть фанатиком…

И последним гвоздем в ваше хорошее настроение будет то, что все нововведения от 1С

  • HTTP сервисы
  • REST интерфейс
  •   старые Web сервисы

Все работают через Веб сервер!

А кто сказал, что импортозамещение будет сделать  легко?

Регулярные выражения в 1С

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

Регулярные выражения в 1С — ИХ НЕТ!

А чем больше вы занимаетесь программированием, чем больше используете другие языки и среды тем больше Вы задаете вопрос: Почему?
Регулярные выражения это просто классика(http://www.unicode.org/reports/tr18/), но философия 1С уводит на другую дорогу. И пример этому в развитии платформы функций со строками: http://v8.1c.ru/o7/201408str/index.htm

А мы скажем спасибо Александр Орефкову за его внешнюю компоненту RexV8 http://infostart.ru/public/183084/

Для работы с юникодом V8 использует кроссплатформенную библиотеку ICU, которая помимо прочего, содержит и функционал по работе с регулярными выражениями. По какой-то неизвестной причине, 1С не «вытащила» этот функционал «наружу», и пользоваться им из языка 1С возможности нет.

Однако, как всегда, на помощь приходят ВК.

Представляю свою разработку, которая строит «мостик» из библиотеки ICU в язык 1С.

 

P.S.

Локальные решения проблемы для Windows(Новый COMОбъект(«Vbscript.RegExp»))  http://infostart.ru/public/64222/

Интересное тестирование с раскраской: http://infostart.ru/public/80508/

}{ождение по внешней компоненте 1С.

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

Если вы решили собрать внешную компоненту для 1С и уже изучили документацию 1С то самое время остановиться на некоторых нетривиальных моментах:

  1. Используем кодировку 1251. В Windows неявно, а в Linux makefile: -finput-charset=WINDOWS-1251
  2. Форматы динамических библиотек для разных компиляторов не совпадают, поэтому собираем компоненту в Windows только в Visual Studio(никакого MinGW),а Linux gcc.

 

Изучаем чужие опыты:

http://habrahabr.ru/post/191014/ — примеры с готовыми базами 1С для тестирования

http://infostart.ru/public/184119/ — how-to

 

Интересный пример написания внешних компонентов на Python(но у меня  не заработали процедуры…)

http://infostart.ru/public/186206/

 

К санкциям готов!

Доброго времени суток!
Санкции на иностранное коммерческое программное обеспечение все ближе и ближе. И надо же с этим что-то делать.

Итак подготавливаемся к импортозамещению коммерческого иностранного программного обеспчения.

Дистрибутив Linux Mint 17. Xfce. Windows 7,8,10
1С 8.3 локальные базы. Лицензирование NFC для разработчика или Бухгалтерия 3.0 измененной конфигурации.
wine для установки 1С дистрибутивов
В дистрибутиве:
LibreOffice 4.2.6.3 — Microsoft Office 2013
apache2
php 5.3
И конечно wordpress 4.0 для локальной копии блога.

Самый быстрый способ обновить платформу 1С на Linux:
1. Скачать Клиента и Сервер из 1С users.v8.1c.ru
2. Распаковать их в отдедьную папку
3. Запустить
cd Директория с пакетами
sudo dpkg -i *.deb
4. Установить HASP ключ для Linux (http://wiki.etersoft.ru/HASP?v=roe).
4. Попить кофейку.

И для начинающих — Windows версия 1С для обучения : http://online.1c.ru/catalog/programs/program/18610119

Управляемые элементы 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.
Ну вы понимаете к чему я клоню — пора делать простые игрушки.

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

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

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

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

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