/paint-to-onec

Вдруг захотелось порисовать в paint, а его использование заблокировано корпоративными политиками. Бывало такое? Тогда вам тут будет интересно...

Primary Language1C Enterprise

Рисуем в 1С

В обработке показан небольшой пример, как можно использовать js в 1C.
Реализована возможность выбирать цвет и размер пера для рисования.
Работает в тонком клиенте, веб-клиенте и в тонком клиенте мобильного приложения.

Подобным решением можно реализовать решение задач, например:

  • для систем учета задач сделать возможным выделять на скриншотах WTF участки для людей, получивших задачу, или ЧЯДНТ для самих авторов задач
  • ввод рукописного текста с сенсорных экранов (а вдруг...)

При этом получается, что нет необходимости запускать стороннюю программу, все делаем в 1С.

В js части есть:

function saveCanvas() {
    imageCopy = canvas.toDataURL();
}

Как ее можно использовать в 1С:

&НаКлиенте
Процедура Сохранить(Команда)
	
	ОкноБраузера = ПолучитьОкноБраузера();
	ОкноБраузера.saveCanvas();
	СырыеДанные = ОкноБраузера.imageCopy;
	СтрокаДанные = СтрЗаменить(СырыеДанные, "data:image/png;base64,", "");
	
	Если Модифицированность Тогда
		ДвоичныеДанные = Base64Значение(СтрокаДанные);
		Каталог = КаталогВременныхФайлов();
		ИмяФайла = Строка(Новый УникальныйИдентификатор) + ".png";
		ИмяПромежуточногоФайла = Каталог + ИмяФайла;		
		ДвоичныеДанные.Записать(ИмяПромежуточногоФайла);
		сообщить("данные сохранены");
	Иначе
		сообщить("нет данных для сохранения");
	КонецЕсли; 
	
КонецПроцедуры

&НаКлиенте
Функция ПолучитьОкноБраузера()
	ДокументПервогоБраузера = Элементы.Реквизит1.Документ;
	ОкноБраузера = ДокументПервогоБраузера.defaultView; // webkit
	Возврат ОкноБраузера;
КонецФункции