NativeDraw: Компонента рисования для 1С [V2.6.2]

Публикация № 378415

Разработка - Разработка внешних компонент

1c native draw dll gdi+ c++

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

Возможности и характеристики

  1. Данная внешняя компонента сделана по технологии NativeAPI, можно подключать прямо из макета и лишних регистраций
  2. Отрисовка происходит в памяти, результат получаем в виде двоичных данных, которые можно преобразовать в картинку и встроить куда угодно: на форму или даже на кнопку
  3. Возможность рисования с учётом полупрозрачности
  4. Работа с изображениями и буфером обмена
  5. Возможность задания собственного таймера отрисовки. Будет приходить внешнее событие
  6. Работа с клавиатурой, мышкой, окнами
  7. Компонента работает как со старой платформой 8.2.x-8.3.5, так и с новой 8.3.6
  8. Доступны открытые исходники, сама отрисовка сделана через библиотеку GDI+, всё структурировано, и можно легко добавлять свои методы
  9. Visual Studio 2015 / C++
Описание методов

[Число ФорматВыводимойКартинки]
0 - BMP
1 - PNG
2 - GIF
3 - JPG
4 - TIFF
5 - ICO

[Строка БуферОбмена]
БуферОбмена

[Строка Цвет]
Красный
Оранжевый
Жёлтый
Зелёный
Синий
Феолетовый
Серый
Белый
Чёрный

[Строка Координаты]
Последовательность из |%04X:%04X|,
где %04X - 4 знаковое HEX число. То есть:
|0001:0002||0064:0064||0100:0101| это
1. X = 1 / Y = 2
2. X = 100 / Y = 100
3. X = 256 / Y = 257


[Число Выравнивание]
0 - Лево / Верх
1 - Центр
2 - Право / Низ

[Строка Шрифт]
Arial
Tahoma
Times New Roman
и др.

[Число СтильШрифта]
0 - Нет
1 - Жирный
2 - Курсив
3 - Жирный + Курсив
4 - Подчёркнутый
8 - Зачёркнутый

[Строка ДействиеКлавиши]
НажатиеКлавиши
ПовторКлавиши
ОтпусканиеКлавиши

[Строка ДействиеМыши]
ДвижениеМыши
НажатиеЛевойКнопкиМыши
ОтпусканиеЛевойКнопкиМыши
ДвойнойКликЛевойКнопкиМыши
НажатиеПравойКнопкиМыши
ОтпусканиеПравойКнопкиМыши
ДвойнойКликПравойКнопкиМыши
НажатиеСреднейКнопкиМыши
ОтпусканиеСреднейКнопкиМыши
ДвойнойКликСреднейКнопкиМыши
НажатиеXКнопкиМыши
ОтпусканиеXКнопкиМыши
ДвойнойКликXКнопкиМыши
ДвижениеКолесаМыши

[Строка СобытиеОкна]
ОкноИзменено
ОкноРазвёрнуто
ОкноСвёрнуто
ОкноВосстановлено

[Число СовместноНажатыеСМышьюКнопки]
1 - Левая кнопка мыши
2 - Правая кнопка мыши
4 - SHIFT
8 - CTRL
16 - Средняя кнопка мыши
32 - Кнопка мыши X1
64 - Кнопка мыши X2

//Холст (Canvas)

[Строка Холст]
Холст_Создать(Число Ширина, Число Высота, Число ФорматВыводимойКартинки);

[ДвоичныеДанные Картинка]
Холст_ДвоичныеДанные(Строка Холст);

[ДвоичныеДанные Картинка]
Холст_УчастокДвоичныеДанные(Строка Холст, Число X, Число Y, Число W, Число H);

[Булево Результат]
Холст_Удалить(Строка Холст);

//Изображение (Image)

[Строка Изображение]
Изображение_Создать(Строка Холст_Изображение_БуферОбмена_ПутьКФайлу);

[Булево Результат]
Изображение_ИзменитьРазмер(Строка Изображение, Число Ширина, Число Высота);

[Булево Результат]
Изображение_Повернуть(Строка Изображение, Число Угол, Булево ИзменятьРазрешение);

[Булево Результат]
Изображение_Отразить(Строка Изображение, Булево X, Булево Y);

[Булево Результат]
Изображение_Обрезать(Строка Изображение, Число X, Число Y, Число W, Число H);

[Булево Результат]
Изображение_ВБуферОбмена(Строка Изображение);

[Число Ширина]
Изображение_ПолучитьШирину(Строка Изображение);

[Число Высота]
Изображение_ПолучитьВысоту(Строка Изображение);

[ДвоичныеДанные Картинка]
Изображение_ДвоичныеДанные(Строка Изображение, Число ФорматВыводимойКартинки);

[ДвоичныеДанные Картинка]
Изображение_УчастокДвоичныеДанные(Строка Изображение, Число ФорматВыводимойКартинки, Число X, Число Y, Число W, Число H);

[Булево Результат]
Изображение_Удалить(Строка Изображение);

//Рисование (Draw)

[Строка Цвет]
Рисование_ПолучитьЦвет(Число A, Число R, Число G, Число B);

[Строка Координаты]
Рисование_ДобавитьТочки(Строка Координаты, Число X, Число Y);

[Процедура]
Рисование_Точка(Строка Холст, Число X, Число Y, Строка Цвет);

[Процедура]
Рисование_Линия(Строка Холст, Число X1, Число Y1, Число X2, Число Y2, Число Толщина, Строка Цвет);

[Процедура]
Рисование_Эллипс(Строка Холст, Число X, Число Y, Число W, Число H, Число Толщина, Строка Цвет);

[Процедура]
Рисование_ЗаполненныйЭллипс(Строка Холст, Число X, Число Y, Число W, Число H, Строка Цвет);

[Процедура]
Рисование_Прямоугольник(Строка Холст, Число X, Число Y, Число W, Число H, Число Толщина, Строка Цвет);

[Процедура]
Рисование_ЗаполненныйПрямоугольник(Строка Холст, Число X, Число Y, Число W, Число H, Строка Цвет);

[Процедура]
Рисование_Треугольник(Строка Холст, Число X1, Число Y1, Число X2, Число Y2, Число X3, Число Y3, Число Толщина, Строка Цвет);

[Процедура]
Рисование_ЗаполненныйТреугольник(Строка Холст, Число X1, Число Y1, Число X2, Число Y2, Число X3, Число Y3, Строка Цвет);

[Процедура]
Рисование_Многоугольник(Строка Холст, Строка Координаты, Число Толщина, Строка Цвет);

[Процедура]
Рисование_ЗаполненныйМногоугольник(Строка Холст, Строка Координаты, Строка Цвет);

[Процедура]
Рисование_Текст(Строка Холст, Строка Текст, Число X, Число Y, Число W, Число H, Число ВертикальноеВыравнивание, Число ГоризонтальноеВыравнивание, Строка Шрифт, Число РазмерШрифта, Число СтильШрифта, Строка Цвет);

[Процедура]
Рисование_Изображение(Строка Холст, Строка Изображение, Число X, Число Y, Число W, Число H, Число Угол, Булево Отразить_X, Булево Отразить_Y);

//Таймер (Timer)

[Строка Таймер]
Таймер_Запустить(Число Период);

[Булево Результат]
Таймер_Остановить(Строка Таймер);

//Перехват (Hook)

[Булево Результат]
Перехват_Установить();

[Булево Результат]
Перехват_Убрать();

[Булево Результат]
Перехват_Установлен();

//Ввод (Input)

[Булево Результат]
Ввод_АктивироватьПерехватКлавиатуры();

[Булево Результат]
Ввод_ЗадатьПерехватКлавиши(Число VK_KEY, Булево Блокировать);

[Булево Результат]
Ввод_УбратьПерехватКлавиши(Число VK_KEY);

[Булево Результат]
Ввод_ДеактивироватьПерехватКлавиатуры();

[Булево Результат]
Ввод_АктивироватьПерехватМыши();

[Булево Результат]
Ввод_ЗадатьПерехватДействияМыши(Строка ДействиеМыши, Булево Блокировать);

[Булево Результат]
Ввод_УбратьПерехватДействияМыши(Строка ДействиеМыши);

[Булево Результат]
Ввод_ДеактивироватьПерехватМыши();

// Окно (Window)

[Строка Окно]
Окно_Главное();

[Строка Окно]
Окно_ПолучитьПоЗаголовку(Строка Заголовок);

[Булево Результат]
Окно_Дочернее(Строка Окно);

[Булево Результат]
Окно_ПолучитьКоординаты(Строка Окно, Число X1, Число Y1, Число X2, Число Y2);

[Булево Результат]
Окно_ВОтносительныеКоординаты(Строка Окно, Число X, Число Y);

[Булево Результат]
Окно_Переместить(Строка Окно, Число X1, Число Y1, Число X2, Число Y2);

[Булево Результат]
Окно_АктивироватьПерехват();

[Булево Результат]
Окно_ЗадатьПерехват(Строка Окно);

[Булево Результат]
Окно_УбратьПерехват(Строка Окно);

[Булево Результат]
Окно_ДеактивироватьПерехват();

//Тест (Test)

[Булево Результат]
Тест_ВнешнееСобытие(Строка Источник, Строка Событие, Строка Данные);

// Внешние события

Источник
	"NativeDraw"

[Таймер]
Cобытие
	"СистемныйТаймер"
Данные
	Таймер

[Клавиатура]
Cобытие
	ДействиеКлавиши
Данные
	Окно|0|0|КодКлавиши|0

[Мышь]
Cобытие
	ДействиеМыши
Данные
	Окно|X|Y|СовместноНажатыеСМышьюКнопки|ЗначениеКолесаМыши

[Окно]
Cобытие
	СобытиеОкна
Данные
	Окно

Примеры
Танк
Управление 
W - Вперёд / S - Назад / A - Влево / D - Вправо / F - Выстрел
 
Поворот изображения
 
Буфер обмена
Отрисовка примитивов
EAN-13
Отрисовка штрих-кода EAN13. Важно знать, сама компонента не генерирует изображение штрих-кода. Всё сделано средствами 1С, от компоненты было лишь рисование линий и текста
 
Ввод, Хуки, Окна
Выделение мышкой, отлов клавиш
В 
Проекты с использованием компоненты
История версий
  • 1.0 - Первая публичная версия
  • 1.1 - Адаптировано для новых платформ
  • 2.0 - Добавлена работа с изображениями, таймеры теперь не часть региона рисования, фиксы, переименование ф-ий
  • 2.1 - Фиксы, добавлена работа с буфером обмена (Изображения)
  • 2.2 - Добавлена ф-ия Изображение_ИзменитьРазмер(), в DLL-файле теперь прописана версия
  • 2.3 - Переделана работа с хуками, добавлена поддержка мыши, добавлены некоторые функции получения окон (для вычисления координат для мыши), переименованы события
  • 2.4 - Несколько проверок в коде, тестовая функция для внешнего события
  • 2.5 - Переделан немного вывод картинки, добавлено несколько форматов выводимой картинки, добавлены 2 функции для получения двоичных данных сразу с изображений
  • 2.5.1 - Фиксы
  • 2.6 - Переделана архитектура компоненты в части работы с хуками. Хуки теперь не часть ввода. Добавлены функции и события для отлова событий окон. (Пример: Ввод, Хуки, Окна)
  • 2.6.1 - Исправлены ошибки в ф-иях буфера обмена
  • 2.6.2 - Добавлена отрисовка многоугольников, перекомпиляция для работы с Windows 7
Внимание

В файлах-примерах внешняя компонента уже вшита, но не всегда последняя.
Последнюю версию можно скачать отдельным файлом или скомпилировать исходники.
В файлах-примерах внешняя компонента подгружается из макета, но 1С иногда это как-то
криво делает и может загрузить старую версию вместо новой (у компоненты есть свойство "Версия").
Для устранения проблемы почистите кеш.

Скачать файлы

Наименование Файл Версия Размер
NativeDraw Исходники (VS2015)

.rar 12,60Mb
12.08.16
84
.rar 2.6.2 12,60Mb 84 Скачать
Пример "Танк"

.epf 1,20Mb
12.08.16
59
.epf 2.6.2 1,20Mb 59 Скачать
Пример "Примитивы"

.epf 136,10Kb
12.08.16
70
.epf 2.6.2 136,10Kb 70 Скачать
Пример "Изображения: Поворот, Отражение, Изменение размера"

.epf 154,17Kb
12.08.16
36
.epf 2.6.2 154,17Kb 36 Скачать
Пример "Изображения: Буфер обмена"

.epf 325,06Kb
12.08.16
33
.epf 2.6.2 325,06Kb 33 Скачать
Пример "Хуки, окна, выделение мышью"

.epf 147,14Kb
12.08.16
58
.epf 2.6.2 147,14Kb 58 Скачать
Пример "Отрисовка EAN13"

.epf 138,89Kb
12.08.16
24
.epf 2.6.2 138,89Kb 24 Скачать
Внешняя компонента NativeDraw

.dll 179,50Kb
12.08.16
100
.dll 2.6.2 179,50Kb 100 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ПерваяСистема 568 22.07.15 01:04 Сейчас в теме
Сделал небольшой примерчик, что можно будет делать с новой версией
http://www.youtube.com/watch?v=7_thbqRG7AY
26. kao_andi 20 19.12.15 22:34 Сейчас в теме
(1) Слушай блин, все отлично даже бы задонатил, но не хватает мануала, который бы описывал что какая метода делает и какие последствия. А так зачет.
27. ПерваяСистема 568 19.12.15 22:47 Сейчас в теме
(26) kao_andi, поэтому есть миллион примеров)
2. Steelvan 5 27.07.15 13:41 Сейчас в теме
4. ПерваяСистема 568 27.07.15 13:47 Сейчас в теме
(2) Steelvan, видео в статье (http://www.youtube.com/watch?v=lSGjrKYnQuo). а то что было в комментах я удалил (ибо уже устарело)
3. RomanBor 115 27.07.15 13:46 Сейчас в теме
Братан не фига ты заморочился :)
rhtr; SiAl; +2 Ответить
5. AlexanderKai 27.07.15 16:37 Сейчас в теме
Танчики мегакруто! :)
adhocprog; +1 Ответить
6. Johny_v 129 29.07.15 11:03 Сейчас в теме
Добрый день.
Интересная разработка. А в ней есть возможность открыть или вставить изображение из буфера обмена?
7. ПерваяСистема 568 29.07.15 12:44 Сейчас в теме
(6) Johny_v, хм, такого сейчас нет, но я думаю можно добавить без особо лишних телодвижений)
8. Johny_v 129 31.07.15 09:45 Сейчас в теме
(7)Было бы очень полезно, как и открытие изображение из файла.
Буду ждать этих функций... Спасибо.
9. ПерваяСистема 568 31.07.15 12:46 Сейчас в теме
(8) Johny_v, да, попробуем сделать ..
10. ПерваяСистема 568 01.08.15 17:08 Сейчас в теме
(8) Johny_v, добавил, то что просили (даже видео сделал)
13. Johny_v 129 06.08.15 15:09 Сейчас в теме
11. cool.vlad4 45 01.08.15 17:39 Сейчас в теме
по моему крутая штука, судя по комментариям. но даже плюс (не то что посмотреть публикацию) поставить не смог. "публикация была удалена"(
12. ПерваяСистема 568 01.08.15 17:52 Сейчас в теме
(11) cool.vlad4, да нет, наверное, просто вы попали в момент когда публикация была на модерации после обновления. Сейчас всё должно быть хорошо
cool.vlad4; +1 Ответить
14. ignor 222 13.10.15 11:26 Сейчас в теме
Очень приятное впечатление. Вдвойне приятно наличие исходников. Сам хотел заморочится в сторону черепашьей графики ибо дочке уже 8 лет и пора бы ей уже программировать и кодить.
15. ПерваяСистема 568 13.10.15 11:34 Сейчас в теме
(14) ignor, да вот жишь, иногда попадаются компоненты интересные, а что-то поправить в них уже не судьба.
16. гыук320 17 16.10.15 10:39 Сейчас в теме
Добрый день! Не могу получить координаты мыши на управляемых формах, игнорируется внешнее событие.

&НаКлиенте
Перем Драйвер, Мышь;

//В форме в " ВнешнееСобытие" прописал
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
	стр=1; //поставил точку останова что бы посмотреть "Данные" но в неё не заходить
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии()
          ПодключитьКомпоненту();
КонецПроцедуры

&НаСервере
Процедура	ПодключитьКомпоненту()
Попытка
Адрес	=	ПоместитьВоВременноеХранилище(Обработки.РедакторОконУФ.ПолучитьМакет("NativeDraw_2_3"));	
Если ПодключитьВнешнююКомпоненту(Адрес, "КомпонентаРисования", ТипВнешнейКомпоненты.Native) Тогда
		Драйвер = Новый("AddIn.КомпонентаРисования.NativeDraw");
		Драйвер.Ввод_УстановитьПерехват();
		Драйвер.Ввод_АктивироватьПерехватМыши();
		Мышь = Новый СписокЗначений;	
		Мышь.Добавить("ДвижениеМыши");	
		Мышь.Добавить("НажатиеЛевойКнопкиМыши");	
		Мышь.Добавить("ОтпусканиеЛевойКнопкиМыши");
		Для каждого Элемент Из Мышь Цикл
			Драйвер.Ввод_ЗадатьПерехватДействияМыши(Элемент.Значение, Ложь);
		КонецЦикла;
		Сообщить(Драйвер.Версия);	 // сообщение выводится 
                Иначе
				Отказ			=	Истина;
		КонецЕсли;
	Исключение
		Отказ			=	Истина;
	КонецПопытки;
	
КонецПроцедуры

Показать

Кто знает почему не срабатывает точка останова на УФ ? Второй день мучаюсь!!!
С уважением, Андрей.
17. ПерваяСистема 568 16.10.15 11:39 Сейчас в теме
18. ПерваяСистема 568 16.10.15 12:27 Сейчас в теме
(16) гыук320, так беглым взглядом пробежался, объект Драйвер при завершении процедуры ПодключитьКомпоненту "разрушается" и соответственно срабатывает ф-ия деинициализации всего в компоненте. Т.е. в процедуре эта переменная как бы локальная у вас.
Надо вам переменную драйвер хранить в другом месте. Позднее постараюсь сделать пример с управляемыми формами
19. ПерваяСистема 568 17.10.15 13:33 Сейчас в теме
(16) гыук320, я тут тыкал-тыкал, замучился, но решение оказалось простым, в твоём случае нужно процедуру ПодключитьКомпоненту() исполнять на клиенте
вот так, как предлагаю:


&НаКлиенте
Перем Драйвер;

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Попытка
		
		Если ПодключитьВнешнююКомпоненту("D:\Develop\win32\FrameWork_1C\NativeAPI\bind\NativeDraw.dll", "КомпонентаРисования", ТипВнешнейКомпоненты.Native) Тогда
			
			Драйвер	=	Новый("AddIn.КомпонентаРисования.NativeDraw");
			
			Драйвер.Ввод_УстановитьПерехват();
			Драйвер.Ввод_АктивироватьПерехватМыши();

			Драйвер.Ввод_ЗадатьПерехватДействияМыши("ДвижениеМыши", ЛОЖЬ);
			Драйвер.Ввод_ЗадатьПерехватДействияМыши("НажатиеЛевойКнопкиМыши", ЛОЖЬ);
			Драйвер.Ввод_ЗадатьПерехватДействияМыши("ОтпусканиеЛевойКнопкиМыши", ЛОЖЬ);
			
		КонецЕсли;


	Исключение
		
		Сообщить(ОписаниеОшибки());
		Отказ			=	Истина;
		
	КонецПопытки;

	
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)

	Сообщить(Данные);

КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии()
	
	Драйвер.Ввод_УбратьПерехват();
	Драйвер	= NULL;
	
КонецПроцедуры


Показать
20. Natalex95 10.11.15 16:55 Сейчас в теме
ДД. Библиотека огонь. Сама идея очень красивая.
Но столкнулся в своей задаче (хотелке) с небольшой трудностью. Я хочу масштабировать графики в зависимости от изменения размера формы. Сможете подсказать как, это можно реализовать....

можно конечно через задержки, но данное решение не красивое. Может имеет смысл к библиотеке дописать инструментарий, например вызов внешнего события при изменении размера формы...(если конечно такое возможно)
22. ПерваяСистема 568 10.11.15 17:11 Сейчас в теме
(20) Natalex95, ну вообще это возможно, но почему бы не сделать просто обработчик ожидания?
Может быть сделаю, по внешнему событию)
23. Natalex95 11.11.15 02:28 Сейчас в теме
(22) Потому что с точки зрения объектного программирование это правильный подход. Произошло событие - вызове процедуру. Не нужно в каждой форме писать кучу одинакового кода по отлавливанию тех или иных событий, если нужно событие обработать оно просто вызывается.

p.s. мне до сих пор не понятно, почему в 1С не делают некоторых событий у объектов. Иногда хочется сделать бантик для пользователя, а приходиться отказывать потому что нужно наворотить просто уйму сложного и не понятного кода.

24. ПерваяСистема 568 15.11.15 15:51 Сейчас в теме
(20) Natalex95, сделал такую штуку как отлов событий окон. Если окно переместилось или изменило размер, то придёт событие (предварительно вы должны установить перехват и указать какое окно вам нужно отслеживать).
21. Xershi 1045 10.11.15 17:02 Сейчас в теме
Забавная штука, кому то на курсовую сойдет, а может даже на диплом.
25. ПерваяСистема 568 27.11.15 11:14 Сейчас в теме
28. Steelvan 5 02.04.16 11:03 Сейчас в теме
Вариант использования, за который можно получить хоть какую-то копеечку ?
29. ПерваяСистема 568 02.04.16 12:00 Сейчас в теме
(28) Steelvan, используйте как хотите, только саму по себе компоненту не продавайте. Ну и не должно быть публикаций с вашей стороны, где вы как просто раздаёте компоненту, так и продаёте за $m c примером.
А какую-нибудь полезную обработку, где вы используете компоненту - пожалуйста.
30. oleg_km 06.04.16 09:28 Сейчас в теме
Тоже делал библиотеку для рисования, но после того как подрубил к 1С .NET по методу Сергея Смирнова - просто пользую классы Grafics и Bitmap из 1С напрямую
31. ПерваяСистема 568 06.04.16 12:53 Сейчас в теме
(30) oleg_km, да видел, прикольно, круто и интересно. Но это нужен .NET и, на мой взгляд, как-то код выглядит не красиво. Кроме того, компонента ещё включает таймер, ввод, хуки, окна ...
32. pvlunegov 163 10.04.16 14:06 Сейчас в теме
Большое спасибо за вашу огромную работу, которая пригодится мне лично для моей задачи.
На рынке есть товарищи, которые сделали внешнюю компоненту для работы с графикой из 1с.
НО! Они продают ее за деньги. БОЛЬШИЕ!
Это неправильно не мой взгляд. Такая политика обречена.

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

У меня предложение к вам. Пожалуйста, упакуйте ваши материалы в 1 архив и выложите. Пусть он будет условно за 5 sm. На мой взгляд, ваша работа стоит и больше.
Внешнюю компоненту предлагаю выложить БЕСПЛАТНО.
Кто хочет - пусть пользуют, Кому надо, скачают ваши примеры за sm.
33. pvlunegov 163 10.04.16 14:37 Сейчас в теме
Ни одна обработка не открывается в 1с.
В попытке при подключении внешней компоненты происходит ошибка.

Что делать?

Процедура	ПередОткрытием(Отказ, СтандартнаяОбработка)	
	Попытка		
		//Адрес	=	"D:\Develop\win32\NativeDraw\NativeAPI\bind\NativeDraw.dll";
		Адрес	=	ПоместитьВоВременноеХранилище(ПолучитьМакет("NativeDraw_2_5"));
		Если ПодключитьВнешнююКомпоненту(Адрес, "КомпонентаРисования", ТипВнешнейКомпоненты.Native) Тогда			
			ND = Новый("AddIn.КомпонентаРисования.NativeDraw");		
			ЭлементыФормы.КоманднаяПанель.Кнопки.Версия.Текст	=	ND.Версия;	
		Иначе			
			Отказ			=	Истина;
			Возврат;			
		КонецЕсли;
	Исключение		
		Отказ			=	Истина;		
	КонецПопытки;
КонецПроцедуры
Показать
34. pvlunegov 163 10.04.16 14:38 Сейчас в теме
Отключил попытку. Выскочило описание ошибки. Во всех обработках, при подключении внешней компоненты одна и та-же ошибка:

{Форма.Форма.Форма(373)}: Ошибка при вызове метода контекста (ПодключитьВнешнююКомпоненту)
Если ПодключитьВнешнююКомпоненту(Адрес, "КомпонентаРисования", ТипВнешнейКомпоненты.Native) Тогда
по причине:
Использование синхронных методов на клиенте запрещено!
35. ПерваяСистема 568 10.04.16 14:42 Сейчас в теме
(34) pvlunegov, если что, то все обработки-примеры под обычные формы. Но и на управляемых формах тоже всё работает
36. pvlunegov 163 10.04.16 14:42 Сейчас в теме
Открыл типовую конфигурацию БП 2.0 - все обработки запускаются нормально.
В пустой тестовой конфигурации ни одна обработка не запускается.
Автор, просьба объяснить странное поведение.

Как я понимаю, в типовой конфигурации при старте какие-то типовые вещи что-то делают возможным подключение внешних компонент?
37. ПерваяСистема 568 10.04.16 14:48 Сейчас в теме
(36) pvlunegov, нет, просто надо переключить тестовую конфигурацию в режим запуска "Обычное приложение"
38. ПерваяСистема 568 10.04.16 14:55 Сейчас в теме
(36) pvlunegov, а не это новый прикол от 1С
решается так
в свойствах конфигурации в категории "Совместимость" нужно установить подходящее свойство для "режим использования синхронных вызовов".
Ну или юзать НачатьПодключениеВнешнейКомпоненты
39. pvlunegov 163 10.04.16 17:41 Сейчас в теме
Я открывал ваши обработки в обычном режиме. Дело в том, что обработки заработали только в типовой конфигурации, в пустой ничего не запускается.
ПерваяСистема, ваш совет по поводу синхронных вызовов сработал, заработало!
Хорошо бы было в ваших обработках добавить управляемые формы, с дублированием функционала, но это так, плюшка.
Самое главное, что все работает.

НЕпонятное поведение - после запуска обработки "Буфер обмена", в которой более новая версия dll, обработка "Танк" перестала работать. Пишет ошибку
"{Форма.Форма.Форма(465)}: Метод объекта не обнаружен (Ввод_УстановитьПерехват)
ND.Ввод_УстановитьПерехват();
"
Пробовал прямо в обработке заменить файл dll на более свежую версию, не работает все равно.
Помогает только очистка кеша.

Просьба пояснить, как быть. Как использовать все функции всех обработок? Включены ли все эти функции в самую свежую версию dll?
Или нужно использовать под каждую функцию свою версию dll ?
40. ПерваяСистема 568 10.04.16 18:00 Сейчас в теме
(39) pvlunegov, ну пример "Танк" самый винрарный, там все ф-ии под старую dll, которая вшита в обработку. Подключение компоненты из макета вот так вот глючит да. Для 1с это одна и та же компонента ...

Чтобы все примеры работали под новую компоненту, надо все старые переписать. Там изменений очень мало
41. pvlunegov 163 10.04.16 18:18 Сейчас в теме
Как понять, вшита в обработку?
В обработке танк, используется макет, в котором двоичный файл dll.
Если его заменить, будет другая версия dll "вшитая" в обработку. Верно?
Таким образом, если заменить макет на файл новой версии dll, мы "обновим" версию dll "вшитую" в обработку. Верно?

Или может, в обработке используется старый синтаксис функций, которые в новой версии dll либо отсутствуют, либо заменены?

Как же вы пишите вашу dll, если новые версии не поддерживают старый синтаксис?
А как же ключевое понятие совместимости версий, краеугольный камень всего здания поддержки dll ?

Прошу вас ответить на мои вопросы и исправить эти косяки.
Вы просите денег за вашу dll поэтому я, как потребитель, имею право требовать определенные базовые вещи.
42. ПерваяСистема 568 10.04.16 18:34 Сейчас в теме
Или может, в обработке используется старый синтаксис функций, которые в новой версии dll либо отсутствуют, либо заменены?

- Да


Как же вы пишите вашу dll, если новые версии не поддерживают старый синтаксис?
А как же ключевое понятие совместимости версий, краеугольный камень всего здания поддержки dll ?


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

Прошу вас ответить на мои вопросы и исправить эти косяки.
Вы просите денег за вашу dll поэтому я, как потребитель, имею право требовать определенные базовые вещи.


- Спасибо, посмеялся
43. Dvornik 25 06.05.16 12:00 Сейчас в теме
Отлично, надо скачать. Я так понял это единственное готовое решение для рисования работающее сразу и на управляемых формах и на толстых.
.
44. ПерваяСистема 568 06.05.16 12:05 Сейчас в теме
(43) Dvornik, единственное или не единственное, подключение компонент на 8.2 и 8.3 не отличается.
Единственное, в 8.3.6 они там что то сделали с памятью и я переделал. Но работает и там и там
45. Dvornik 25 18.05.16 13:57 Сейчас в теме
А Холст_Создать ( х, ,у, ФорматВыводимойКартинки) точно работает, при ФорматВыводимойКартинки=3 ?

Делаю так:
	Холст			=	Драйвер.Холст_Создать(300, 300, 3);
	Драйвер.Рисование_ЗаполненныйПрямоугольник(Холст, 0,0, 300,300, "Белый");	
	Драйвер.Рисование_ЗаполненныйПрямоугольник(Холст, 30,100, 100, 5, "Зеленый");
	ЭлементыФормы.Холст.Картинка
		=	Новый Картинка(Драйвер.Холст_ДвоичныеДанные(Холст));


Жму на картинке "сохранить как" и выдает только Формат bmp
46. Dvornik 25 19.05.16 06:55 Сейчас в теме
У меня оказывается была не последняя версия (2_2). Скачал последнюю, теперь при подключении (ПодключитьВнешнююКомпоненту) вся база просто виснет.
49. ПерваяСистема 568 19.05.16 12:00 Сейчас в теме
(46) Dvornik, хрен знает, проверю
47. monkbest 110 19.05.16 10:28 Сейчас в теме
А можете пояснить, 32 или 64 для Native надо отделять. И если да, то какая версия тут?
48. ПерваяСистема 568 19.05.16 12:00 Сейчас в теме
(47) monkbest, ну компонента под x32, это означает что она работает как на x32 винде, так и на x64
50. monkbest 110 19.05.16 12:54 Сейчас в теме
Возник вопрос по буферу обмена. Если в буфере не картинка, то следующий код ломает буфер обмена, пока я 1С не закрою.

Выглядит так:
1. копирую строку из текстового редактора
2. жму кнопку в 1С (код ниже)
После этого я ни в одном приложении не могу ни ставить ту строчку из буфера, ни скопировать что-то новое.
3. закрываю 1С Предприятие (не просто обработку, а предприятие полностью)
Все опять работает

Если же в буфере картинка, то работает на УРА
	Изобр	= Драйвер.Изображение_Создать("БуферОбмена");
	Если СокрЛП(Изобр) = "" Тогда
		Возврат;
	КонецЕсли;
	Ширина = Драйвер.Изображение_ПолучитьШирину(Изобр);
	Высота = Драйвер.Изображение_ПолучитьВысоту(Изобр);
	Холст = Драйвер.Холст_Создать(Ширина, Высота, 0);
	Драйвер.Рисование_Изображение(Холст, Изобр, 0, 0, Ширина, Высота, 0, 0, 0);

	двоичныеДанные = Драйвер.Холст_ДвоичныеДанные(Холст);
	КартинкаИзБуфера = Новый Картинка(двоичныеДанные);
	изБуфера = ПоместитьВоВременноеХранилище(двоичныеДанные);
	
	Драйвер.Изображение_Удалить(Изобр);
	Драйвер.Холст_Удалить(Холст);
Показать

Драйвер - внешняя компонента
изБуфера - переменная формы типа строка для отображения картинки на экране
51. monkbest 110 19.05.16 12:56 Сейчас в теме
(50) monkbest, собственно Ваша обработка (NativeDraw_БуферОбмена) тоже ломается, если в буфере не картинка
55. ПерваяСистема 568 19.05.16 14:40 Сейчас в теме
(51) monkbest, нормально всё, я взял обработку заменил компоненту на новую 2.6.1, при копировании текста ничего не ломается и не виснет, платформа 8.3.8
57. monkbest 110 20.05.16 08:06 Сейчас в теме
(55) не понял, а в каком из примеров какие версии библиотеки?
было бы неплохо в именах файлов для скачивания написать версии dll
я скачал Пример "Изображения: Буфер обмена" и Пример "Танк"
собственно в первой ошибка проявляется, я сохранил макет на жесткий диск и в свойствах файла на закладке "подробно" увидел 2.5.0.0
где взять 2.6.1?
52. Dvornik 25 19.05.16 13:49 Сейчас в теме
Порылся в интернете, получается в управляемом приложении, нельзя загружать картинку в декорации!
Можно только брать из библиотеки.
Элементы.Декорация1.Картинка=БиблиотекаКартинок.БизнесПроцесс;

Я так понял в управляемых формах , придется выводить картинку в табличный документ...

Да, попробовал версии. 2_2 - работает. 2_6_1 намертво, вешает 1с. Может что-то надо установить?
53. ПерваяСистема 568 19.05.16 14:30 Сейчас в теме
(52) Dvornik, можно, берёшь картинку (не файл, а объект), кладёшь во временное хранилище, получаешь адрес, этот адрес приравниваешь к декорации (она строка)
54. ПерваяСистема 568 19.05.16 14:35 Сейчас в теме
(52) Dvornik, установить может и надо, распространяемые пакеты для VS2015
Ибо у меня работает всё норм, ничего не падает
56. Dvornik 25 20.05.16 05:37 Сейчас в теме
(54) Не знаю даже, что мне поставить на сервер 1с теперь и скольки разрядное.
59. monkbest 110 20.05.16 09:02 Сейчас в теме
(52) Dvornik, вот рабочий код по отображению картинки:
на форме переменная формы строка неограниченной длины "изБуфера", которую я поместил на форму, у поля указал вид "полеКартинки"
Все работает с dll 2.5, с 2.6.1 зависает при инициализации как у Вас
	Изобр	= Драйвер.Изображение_Создать("БуферОбмена");
	Если СокрЛП(Изобр) = "" Тогда
		Сообщить("не то");
		Возврат;
	КонецЕсли;
	Ширина = Драйвер.Изображение_ПолучитьШирину(Изобр);
	Высота = Драйвер.Изображение_ПолучитьВысоту(Изобр);
	Холст = Драйвер.Холст_Создать(Ширина, Высота, 0);
	Драйвер.Рисование_Изображение(Холст, Изобр, 0, 0, Ширина, Высота, 0, 0, 0);

	двоичныеДанные = Драйвер.Холст_ДвоичныеДанные(Холст);
	изБуфера = ПоместитьВоВременноеХранилище(двоичныеДанные);
	
	Драйвер.Изображение_Удалить(Изобр);
	Драйвер.Холст_Удалить(Холст);
Показать
pvlunegov; +1 Ответить
58. monkbest 110 20.05.16 08:59 Сейчас в теме
Скачал dll отдельно, там был 2.6.1.
Заменил в своей обработке (с 2.5 она в принципе работала, но падала, если в буфере обмена не картинка)
При открытии стало зависать намертво, т.е. 2.6.1 не инициализируется, а 2.5 инициализируется в УФ на ура
УФ, 1С:Предприятие 8.3 (8.3.7.1860)
Прилепил саму обработку
Вот код инициализации:
&НаСервере
Функция ПолучитьМакетСКомпонентой()
	Возврат ПолучитьОбщийМакет("NativeDraw_2_6_1");
КонецФункции
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Попытка
		#Если ТолстыйКлиентУправляемоеПриложение Тогда
			ПутьККомпоненте = "ОбщийМакет.NativeDraw_2_6_1";
		#Иначе
			Макет = ПолучитьМакетСКомпонентой();
			Каталог = КаталогВременныхФайлов();
			ПутьККомпоненте = Каталог + "NativeDraw_2_6_1.dll";
			Макет.Записать(ПутьККомпоненте);
		#КонецЕсли
		//Макет = ПолучитьМакетСКомпонентой();
		//Адрес	=	ПоместитьВоВременноеХранилище(Макет);
		//УстановитьВнешнююКомпоненту("ОбщийМакет.NativeDraw_2_5");
        Если ПодключитьВнешнююКомпоненту(ПутьККомпоненте, "КомпонентаРисования", ТипВнешнейКомпоненты.Native) Тогда
            
            Драйвер    =    Новый("AddIn.КомпонентаРисования.NativeDraw");
            
		Иначе
			
        КонецЕсли;


    Исключение
        
        Сообщить(ОписаниеОшибки());
        Отказ            =    Истина;
        
    КонецПопытки;
КонецПроцедуры
Показать
pvlunegov; +1 Ответить
60. ПерваяСистема 568 20.05.16 13:46 Сейчас в теме
61. monkbest 110 20.05.16 14:11 Сейчас в теме
62. ПерваяСистема 568 20.05.16 15:52 Сейчас в теме
вот, 2.6.1 запустился и работает ...
63. Dvornik 25 23.05.16 05:48 Сейчас в теме
vc_redist.x64 Установил, не помогло.
Можно мне 2.5 версию? Если она работает, мне бы хватило.
64. ПерваяСистема 568 23.05.16 10:20 Сейчас в теме
(63) Dvornik, у меня нет предыдущих версий ...
65. ПерваяСистема 568 23.05.16 10:22 Сейчас в теме
(63) Dvornik, а какая операционка у вас?
75. sherbv 508 04.07.16 09:36 Сейчас в теме
(63) Dvornik, Добрый день!
Что-нибудь получилось с этой обработкой для управляемых форм?
У меня пока не взлетает.
66. Dvornik 25 24.05.16 07:04 Сейчас в теме
Использую 7. Хочу ещё сегодня обновить платформу 1с, может из-за неё.
67. monkbest 110 24.05.16 08:20 Сейчас в теме
(66) Dvornik, не знаю, кажется, что дело не в винде и не в платформе. Я пробовал на 8.3.5 8.3.6 и 8.3.7, win 7 и win 10, с установленным VS 2015 и без.

Сдается мне, что проблема в разрядности. Автор писал, что она 32.

В мануалах написано, что надо в архив класть файл манифеста и версии компонент разной разрядности и ОС.
Еще в мануалах написано, что для работы Native в тонком клиенте (УФ) надо вызвать метод УстановитьВнешнююКомпоненту(...), этот метод материться, что компонента не та

Пробовал исходники скомпилить по 64, но студия меня послал лесом с кучей errrr. Не силяен в этой IDE и не знаю, что надо переделать в проекте, чтобы сделать 64х компоненту для теста.

Но эта версия не дает ответа на вопрос о том, почему 2.5 работает, в итоге 6sm$ выкинул на ветер, т.к. хотел реализовать в своей базе багтрекере вставку принтскринов. 2.5 плохо работает с буфером, 2.6.1 не работает
Прикрепленные файлы:
69. ПерваяСистема 568 26.05.16 14:32 Сейчас в теме
(67) monkbest, опишите какая винда какая конфигурация (или самописная?) какая платформа (желательно чтобы последняя) попробую у себя создать такие же условия
148. ru_hawk 19.05.20 18:22 Сейчас в теме
(67) чтобы собиралось под x64, надо в настройках проекта установить кодировку юникод.
68. Dvornik 25 25.05.16 08:04 Сейчас в теме
А я попробовал и в файловом варианте и в 8.2, и в 8.3, и в серверном, и на разных компьютерах. К слову на всех 64-разрядная система. Ошибка, можно сказать, та же, "установка не выполнена."
70. ПерваяСистема 568 26.05.16 14:53 Сейчас в теме
(68) Dvornik, (67) monkbest,
серверная винда x64, серверная 1ска 8.3.8 (постгрес), пустая конфигурация, всё работает
Прикрепленные файлы:
71. ПерваяСистема 568 26.05.16 15:41 Сейчас в теме
вот буфер обмена под управляемые формы
Прикрепленные файлы:
72. monkbest 110 27.05.16 09:22 Сейчас в теме
(71) выложи пример, получишь лишние SM, а мы рабочий пример. Я не исключаю возможности, что я криво написал подключение.
73. sherbv 508 04.07.16 09:20 Сейчас в теме
(71) Добрый день!
А можете выложить пример для управляемых форм.
Пока на управляемых формах заработала компонента из примера ""Тест компоненты", да и то частично.
объект создается, а на любую попытку нарисовать что-то программно ругается:

{Форма.ФормаУпраляемая.Форма(36)}: Ошибка при вызове метода контекста (Рисование_Треугольник)
Драйвер.Рисование_Треугольник(Холст, 170, 619, 81, 757, 262, 753, 1, Драйвер.Рисование_ПолучитьЦвет(200, 255, 0, 0));
по причине:
Неверный аргумент
76. grinhan 04.07.16 19:22 Сейчас в теме
(71) а можно ли получить рисунок с прозрачным фоном? У холста нет свойства прозрачности, в незакрашенных местах он получается черным.
77. ПерваяСистема 568 05.07.16 09:45 Сейчас в теме
(76) grinhan, так, в данной реализации нет, но я посмотрю что можно сделать
78. grinhan 05.07.16 14:46 Сейчас в теме
(77) буду ждать, заранее спасибо!
74. sherbv 508 04.07.16 09:25 Сейчас в теме
А версия 2.6 действительно зависает при инициализации на управляемых формах
79. newdigger 06.07.16 08:47 Сейчас в теме
Очень не хватает метода рисования залитых многоугольников. Можно ли будет добавить эту возможность?
81. Dvornik 25 07.07.16 08:10 Сейчас в теме
Добрый день.
(79) newdigger, так вы рисуйте линии потолще, мне подошло.
(75) sherbv, у меня версия 2.6 не взлетела, жду решения. Windows 10 поставить не могу.
проблема, как заметил newdigger :
при подключении компоненты версии 2.6.1 намертво виснет на ПодключитьВнешнююКомпоненту. (платформы пробовал 8.2 и 8.3)
80. newdigger 06.07.16 09:12 Сейчас в теме
Еще, при подключении компоненты версии 2.6.1 намертво виснет на ПодключитьВнешнююКомпоненту.
Хотя при подключении компоненты, которая входит в макет обработки NativeDraw_ТестКомпоненты.epf - не виснет.
ОС Windows Server 2008 R2 (под учеткой администратора)
1C 8.3.8.1784
Толстый клиент
Режим: Серверный (сжатие: усиленное)

На Windows 10 все нормально
82. newdigger 08.07.16 15:17 Сейчас в теме
Заметил еще одну неприятную особенность.
Строка моего кода:
ЭлементыФормы.Холст.Картинка = Новый Картинка(Драйвер.Холст_ДвоичныеДанные(Холст));

Здесь возникает утечка памяти. Если постоянно перерисовывать картинку, то при каждом проходе этой строки выделяется память.
Я думал, что что-то делаю не так. Но в примере с танком тоже идет утечка памяти.
83. ПерваяСистема 568 12.07.16 12:31 Сейчас в теме
(82) newdigger, та да, только это не утечка, но то есть это со стороны 1С такая фигня, но она полностью очищается если памяти не хватает (вызывается сборщик мусора), это всё на стороне платформы
84. newdigger 13.07.16 09:14 Сейчас в теме
(83)
на счет многоугольников залитых: я уже добавил эту возможность самостоятельно. Спасибо Вам за структуированный код.
85. ПерваяСистема 568 13.07.16 15:11 Сейчас в теме
86. newdigger 22.07.16 10:07 Сейчас в теме
(85) и все таки, у Вас есть какие-нибудь соображения по поводу того, что компонента не загружается на Windows Server 2008 R2?
У меня, например, Visual Studio 2015 предлагает компиляцию только на две платформы - W8 И W10. Может быть с этим связано?
87. ПерваяСистема 568 22.07.16 16:17 Сейчас в теме
(86) newdigger, ага, ща попробовал на 7ке, действительно виснет, перекомпилил на Visual Studio 2015 - Windows XP (v140_xp) и вроде заработало, кстати сделал отрисовку многоугольников
88. newdigger 25.07.16 10:42 Сейчас в теме
89. pvb2003 30.07.16 20:17 Сейчас в теме
(87) не заработала в режиме управляемого приложения.
1С:Предприятие 8.3 (8.3.6.2237) Бухгалтерия предприятия, редакция 3.0 (3.0.42.37) Win 7 максимальная х64

Вот одна из попыток запуска (Модуль управляемого приложения, ПриНачалеРаботыСистемы):

АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище("ОбщиеМакеты.NativeDraw_2_6");
	Результат=ПодключитьВнешнююКомпоненту(АдресВнешнейКомпоненты,"КомпонентаРисования");
	#Если ТонкийКлиент Тогда
		Если Не Результат Тогда
			НачатьУстановкуВнешнейКомпоненты(,АдресВнешнейКомпоненты);
			Результат=ПодключитьВнешнююКомпоненту(АдресВнешнейКомпоненты,"КомпонентаРисования");
		КонецЕсли;
	#КонецЕсли
Показать


В этом варианте закинул dll в зип вместе с манифестом и загрузил в общий макет. Пляшу долго уже. При запуске в тонком клиенте выдает:
"Установка внешней компоненты не выполнена. В процессе установки произошла ошибка. Возможно, отсутствует компонента для используемого клиентского приложения."
При запуске в толстом клиенте виснет намертво, а если подождать пару минут, так еще и конфигуратор зависает.





90. ПерваяСистема 568 01.08.16 07:37 Сейчас в теме
pvb2003, первым делом попробуйте поставить https://www.microsoft.com/ru-ru/download/details.aspx?id=48145 / vc_redist.x64.exe
Для Windows 7 нужно использовать самую последнюю версию компоненты, т.е. 2.6.2
93. pvb2003 06.08.16 16:48 Сейчас в теме
(90) у меня vc_redist.x64 стоит версии 14.0.23.506 (твоя ссылка на более раннюю версию). Попробовал исходники компилировать, слишком много ошибок критических выдает 2_6_2. Жаль нет времени пока разбираться. Но я прям ОЧЕНЬ хочу этот продукт в рабочем виде xD
94. ПерваяСистема 568 07.08.16 08:41 Сейчас в теме
(93) pvb2003, а пример примитивы тоже виснет?
95. pvb2003 07.08.16 13:11 Сейчас в теме
(94) я их не качал, зачем тратить драгоценные денюшки, коле всё остальное не работает xD
Качал танк и ввод, взлетел только танк в обычном приложении, ввод не взлетел ни в каком
96. ПерваяСистема 568 08.08.16 09:28 Сейчас в теме
(95) pvb2003, примитивы самые последние с библиотекой 2.6.2, они работают как и в обычном, так и в "необычном" приложении. Остальные старые версии, потом будут обновлены
91. Dvornik 25 02.08.16 07:16 Сейчас в теме
У кого 2_6_2 на 7-ке не виснет?
92. ПерваяСистема 568 02.08.16 08:23 Сейчас в теме
97. newdigger 09.08.16 09:12 Сейчас в теме
У меня нет возможности проверить на Win 7.
Я пробую на Windows Server 2008 R2. Тут вообще странная картина. Запускаю - работает. Закрываю 1С, открываю заного, открываю форму, где используется компонента - зависает. И так постоянно - то работает, то зависает. От чего зависит - не пойму. Работаю под учеткой админа.
Хотя есть одна зависимость - запускаю 1С в режиме совместимости с Windows XPSP3. Если запускать без режима совместимости, то виснет всегда.
Для надежности запускал на двух серверах - картина одинаковая.
98. ПерваяСистема 568 10.08.16 13:19 Сейчас в теме
(97) newdigger, сервер x64?
Я не поленился и запустил на виртуалке Windows 7 (x32), потестировал пример "Примитивы". Просто установил голую Windows 7, установил 1С, открыл обработку как обычном приложении, так и в управляемом. Пробовал закрыть 1С, снова открыть, несколько раз переоткрыть. Всё работает, ничего не виснет, платформа 8.3.8, никаких доп драйвер и паков не устанавливал
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019    11884    19    bmk74    4    

Интерактивная справка по объектам 1С (автономное расширение)

Практика программирования Работа с интерфейсом v8 ERP2 Абонемент ($m)

База знаний, подключаемая к объектам основной базы. Ведётся интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

3 стартмани

29.09.2020    6572    33    sapervodichka    33    

Делаем из СКД Excel (ну, почти)

Работа с интерфейсом v8 Абонемент ($m)

Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.

1 стартмани

26.01.2020    9477    13    herfis    16    

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

БСП (Библиотека стандартных подсистем) Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".

1 стартмани

27.12.2019    11097    17    1sig    14    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    27235    40    Ditron    83    

Декомпиляция условного оформления

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

2 стартмани

23.12.2019    7891    37    XilDen    6    

Удобный выбор из таблицы/дерева в УФ

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ 1cv8.cf Абонемент ($m)

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

1 стартмани

12.08.2019    13791    7    Yashazz    18    

[Механизм интерфейса] Свой флажок (чекбокс)

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.08.2019    16330    18    rpgshnik    43    

Расширенная настройка динамического списка УФ Промо

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

31.05.2017    33038    151    tormozit    25    

Внешняя компонента для выполнения регулярных выражений

Разработка внешних компонент v8 Абонемент ($m)

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

1 стартмани

12.11.2018    12791    30    KAV2    62    

Открывашка ячеек таблиц

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    17309    12    tormozit    31    

Рисуем и распознаем нарисованное при помощи нейросети

Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Используем нейронную сеть для распознавания нарисованных объектов.

1 стартмани

03.10.2018    14754    44    DO_WHILE_LOOP    28    

Лучший подарок для бухгалтера - счёты 8.2 (со звуком) Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

(Толстый клиент) Подарите бухгалтеру счеты, и он(а) Вас никогда не забудет.

1 стартмани

13.05.2011    40685    24    Tatitutu    45    

Рисуем диаграммы в metadata.js

Инструментарий разработчика Работа с интерфейсом v8 v8::СКД 1cv8.cf Абонемент ($m)

Не одной же литературой заниматься?

1 стартмани

20.09.2018    17269    3    1c-intelligence    77    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    17886    27    TSSV    18    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    28607    26    informa1555    26    

Использование сборок .NET в 1С 7. и 8.x. Создание внешних Компонент. Промо

Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    83919    238    Serginio    74    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    25775    203    RSConsulting    16    

Визуализация событий на временной шкале средствами "Поле HTML документа"

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    24105    139    Plotks2017    27    

Продвинутое рисование в табличном документе (стрелок и не только)

Практика программирования Работа с интерфейсом v8 Абонемент ($m)

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    16101    18    WalterMort    29    

Интерактивный интерфейс Промо

Рабочее место Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Обработка (отдельная панель меню), позволяющая настраивать интерфейс пользователя интерактивно (права не настраивает). Мне очень пригодилось, так как приходится прописывать индивидуальный интерфейс, каждому пользователю (а их уже сотни). Выложил 2 версии одна в виде таблицы, вторая в виде выпадающего меню

1 стартмани

29.10.2011    18400    2    Vin_Tik    9    

Распознавание лиц (off-line). Демонстрационная база.

Разработка внешних компонент v8 Абонемент ($m)

Распознавание лиц входит в нашу жизнь стремительными темпами, бизнес стремится за событиями. В публикации находится описание и пример использования нейросетей для распознавания лиц.

1 стартмани

17.07.2018    16520    73    nomadon    45    

Работа с данными выбора

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    48968    17    kalyaka    16    

Tool1CD Beta в деле

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    26006    28    baton_pk    26    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    30021    5    kraynev-navi    41    

Программное формирование форматированной строки в стиле html+inline CSS

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.11.2017    32915    36    bonv    10    

Программное создание элементов графической схемы (через XSLT)

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

20.07.2017    21418    62    lazarenko    18    

Простой редактор плана помещения JavaScript

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

1 стартмани

23.11.2016    21433    96    igel9780    22    

1С+Классы. Версия-0

Разработка внешних компонент Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Разработано ООП-расширение языка 1С, включающее (но не ограничивающееся): Классы как абстрактные типы данных с элементами «переменная», «свойство», «функция», «процедура»; Интерфейсы как абстрактные классы без элементов состояния («переменная») и без привязки к реализации методов (свойств, процедур, функций) при определении; Имплементация (реализация) интерфейсов классами; - одиночное открытое наследование; Области видимости «внутренняя» (private), «экспорт» (public), «защищенная» (protected); Статические элементы классов (общие для всех экземпляров класса); Замещение (переопределение реализации) методов при наследовании – «виртуальные методы, свойства»; Сокрытие (затенение) обычных (не замещаемых) элементов при наследовании; Перегрузка процедур и функций по количеству и типам данных аргументов; Конструкторы класса; Деструктор класса; Слабые ссылки; Делегаты.

1 стартмани

28.10.2016    20774    1    IntelInside    68    

Настройка начальной страницы (Рабочего стола)

Работа с интерфейсом Рабочее место Универсальные обработки v8 1cv8.cf Абонемент ($m)

Альтернатива стандартной настройке начальной страницы. В типовой доступны лишь те формы, что явно "разрешены" разработчиком в режиме конфигуратора. Эта обработка позволяет собрать "Рабочий стол" из любых подходящих форм в пользовательском режиме. Без программирования. БСП не используется. Не расширение. Универсальна, т.е. подойдет для любой конфигурации (в т.ч. самописной).

2 стартмани

19.10.2016    38132    220    Erne100    24    

[Расширение] Стартовые страницы. Автозапуск форм при старте 1С. (8.3.9+, без доработки конфигурации)

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Уверен, что в большинстве случаев список справочников, отчетов, обработок (объектов 1С в целом), к которому обращаются пользователи после запуска конфигурации 1С, раз от раза меняется не сильно. Так почему бы немного не упростить процесс открытия часто используемых форм? Данное расширение позволяет настроить автоматическое открытие различных форм объектов сразу после запуска 1С. Список форм настраивается индивидуально для каждого пользователя. Работает на платформе 8.3.9, без доработки конфигурации.

1 стартмани

03.10.2016    21838    83    Artem-B    20    

"Внешнее событие" и мобильная платформа 1С

Разработка внешних компонент Мобильная разработка v8 Абонемент ($m)

Внешние компоненты в Android для Мобильной Платформы 1С или как вызвать внешнее событие, когда его нет.

1 стартмани

09.09.2016    38719    88    dewersia    54    

HTTP-сервис: отчеты [Расширение]

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

2 стартмани

30.08.2016    27230    137    Stepa86    15    

Организация файлового хранилища на базе MS SQL Server с доступом из 1С

Разработка внешних компонент Сервисные утилиты v8 Абонемент ($m)

Пример реализации хранения файлов в базе MS SQL Server с использованием различных технологий. Подробно рассмотрен потоковый доступ к файлам с использованием технологии FileStream.

1 стартмани

27.07.2016    25692    41    tohandr    37    

Проект внешней компоненты для 1С:8 (сделай сам)

Разработка внешних компонент v8 Абонемент ($m)

Как их делают? Как регистрируют? С чего начать? Где взять стартовый проект? Вопросов вообще много можно задать, но лучше один раз увидеть!

10 стартмани

11.03.2016    16991    0    ture    36    

Простые радости жизни программиста 1С: выбор типа значения

Работа с интерфейсом Практика программирования v8 1cv8.cf Абонемент ($m)

Предлагаемая в работе обработка включает обычную и управляемую формы, которые максимально точно реализуют функциональность системного диалога выбора типа в толстом клиенте обычное приложение (включая оформление диалога). Эти формы имеют дополнительные интерфейсные удобства и могут быть использованы в качестве альтернативных диалогов выбора типа.

1 стартмани

17.02.2016    50615    53    yuraos    17    

Снимок экрана для 1С

Универсальные обработки Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Довольно часто люди сталкиваются с необходимостью сделать снимок экрана. Если вы или ваши сотрудники основную часть времени проводят в 1С и у вас есть необходимость прикреплять графические файлы, то эта компонента для вас.

1 стартмани

08.02.2016    28274    33    linkforget    11    

Связь Asterisk и 1С, внешняя компонента

Разработка внешних компонент Телефония, SIP v8 1cv8.cf Россия Абонемент ($m)

Поддержка ROM-Asterisk прекращена, на 1С: Предприятии 8.3.6 вылетает. Пишем свою.

6 стартмани

28.01.2016    47292    273    BigTaur    82    

Внешняя компонента для хранения данных во внешней обработке/отчете

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Шаблон внешней обработки с внешней компонентой, демонстрирующей возможность хранения любых сериализуемых данных непосредственно во внешней обработке или отчете.

1 стартмани

14.01.2016    18415    34    frkbvfnjh    36    

Передача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.11.2015    34962    13    Wolex    30    

Инструмент для создания веб приложений на основе 1С REST сервиса

Инструментарий разработчика WEB Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Обзор платформы-конструктора для создания веб-приложений, использующих в качестве источника базы данных 1С

1 стартмани

13.10.2015    27090    77    dmzubr    23    

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса

Работа с интерфейсом Универсальные функции Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

09.10.2015    36492    128    pbazeliuk    6    

Визуальный html редактор на управляемых формах

Работа с интерфейсом WEB v8 1cv8.cf Абонемент ($m)

Мы рассмотрим некоторые особенности и возможности подключения сторонних визуальных html редакторов на javascript - TinyMCE, CK Editor. С помощью приложенной обработки Вы сможете попробовать в действии полноценный и удобный визуальный html редактор, а при желании перенести подобный функционал к себе.

1 стартмани

30.09.2015    29698    209    ivanov660    41