В обработке показан небольшой пример, как можно использовать js в 1C.
Реализована возможность выбирать цвет и размер пера для рисования.
Работает в тонком клиенте, веб-клиенте и в тонком клиенте мобильного приложения.
Подобным решением можно реализовать решение задач, например:
- для систем учета задач сделать возможным выделять на скриншотах WTF участки для людей, получивших задачу, или ЧЯДНТ для самих авторов задач
- ввод рукописного текста с сенсорных экранов (а вдруг...)
При этом получается, что нет необходимости запускать стороннюю программу, все делаем в 1С.
В js части есть:
function saveCanvas() {
imageCopy = canvas.toDataURL();
}
Как ее можно использовать в 1С:
&НаКлиенте
Процедура Сохранить(Команда)
ОкноБраузера = ПолучитьОкноБраузера();
ОкноБраузера.saveCanvas();
СырыеДанные = ОкноБраузера.imageCopy;
СтрокаДанные = СтрЗаменить(СырыеДанные, "data:image/png;base64,", "");
Если Модифицированность Тогда
ДвоичныеДанные = Base64Значение(СтрокаДанные);
Каталог = КаталогВременныхФайлов();
ИмяФайла = Строка(Новый УникальныйИдентификатор) + ".png";
ИмяПромежуточногоФайла = Каталог + ИмяФайла;
ДвоичныеДанные.Записать(ИмяПромежуточногоФайла);
сообщить("данные сохранены");
Иначе
сообщить("нет данных для сохранения");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьОкноБраузера()
ДокументПервогоБраузера = Элементы.Реквизит1.Документ;
ОкноБраузера = ДокументПервогоБраузера.defaultView; // webkit
Возврат ОкноБраузера;
КонецФункции