diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..2b1bc52 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 5480218..8fbf69d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,13 +7,13 @@ *.dll *.so *.dylib -#*.log -#*.png -#*.jpg -#*.jpeg -#*.gif +*.log +*.png +*.jpg +*.jpeg +*.gif -#temp/ +temp/ # Test binary, built with `go test -c` *.test diff --git a/README.md b/README.md index ebaff0b..c9ded30 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,14 @@ 7) code93 8) datamatrix 9) pdf417 - 10) 2of5 - 11) 2of5interleaved + 10) 2of5 (twooffive) + 11) 2of5interleaved (twooffiveinterleaved) Установка: 1. В релизе скачать архив. 2. Поместить папку barcodeVDKextension в папку bin программы 1С. - Необходимо также дать этой папке необходимые права! + ВАЖНО - Необходимо также дать этой папке права на запись и изменение! Если 1С работает в файловом режиме, + то можно дать пользователям, а если в серверном, то необходимо дать права серверу 1С. 4. Загрузить файл ГенераторШтрихкодов.epf в конфигураторе в обработки. Использование: @@ -25,3 +26,8 @@ Использовать метод "ПолучитьКартинкуШтрихкод" в модуле менеджере обработки. Указать необходимые параметры и просто получить картинку. 2. вариант: Использовать метод "ПрисвоитьРисункуШтрихКод" в модуле менеджере обработки. Указать данные, область макета и рисунок на макете. + ВАЖНО - рисунок макета должен иметь имя в формате: <Любое имя рисунка>_<тип требуемого штрихкода>. + +В Форме обработки можно протестировать программу, а также изучить программный интерфейс. + +Тестировалась программа на относительно новой платформе Тестировалось на старой платформе 8.3.5.1625 diff --git a/one_s.os b/one_s.os index 94098ee..472762a 100644 --- a/one_s.os +++ b/one_s.os @@ -2,20 +2,40 @@ // https://github.com/Rooseveltiny/barcode_go.git // API -Функция ПолучитьБинарныйШтрихкод(Данные, ТипКода, Ширина, Высота) Экспорт - - ИнициализироватьШтрихкодИПолучитьКартинку(Данные, ТипКода, Ширина, Высота); - + +// Функция - Получить картинку штрихкод +// +// Параметры: +// Данные - Строка - Данные штрихкода, например "112233112233" для ean13 или "https://google.com" для qrcode. +// ТипКода - Строка - Тип штрихкода, который необходимо сгенерировать например qrcode или ean13. +// Ширина - Число - Ширина требуемой картинки штрихкода. +// Высота - Число - Высота требуемой картинки штрихкода. +// Возвращаемое значение: +// Картинка - Картинка +Функция ПолучитьКартинкуШтрихкод(Данные, ТипКода, Ширина, Высота) Экспорт + ИнициализироватьШтрихкодИПолучитьКартинку(Данные, ТипКода, Ширина, Высота); КонецФункции -Процедура ПрисвоитьРисункуШтрихКод(Данные, ОбластьМакета, Рисунок) Экспорт - - ПрисвоитьМакетуРисунокШтрихкод(Данные, ОбластьМакета, Рисунок); - +// Процедура - Присвоить рисунку штрихкод +// +// Параметры: +// Данные - Строка - Данные штрихкода, например "112233112233" для ean13 или "https://google.com" для qrcode. +// ОбластьМакета - ТабличныйДокумент - область или табличный документ, куда будет помещен штрихкод. +// Рисунок - РисунокТабличногоДокумента - Рисунок табличного документа или области табличного документа. +Процедура ПрисвоитьРисункуШтрихКод(Данные, ОбластьМакета, Рисунок) Экспорт + ПрисвоитьМакетуРисунокШтрихкод(Данные, ОбластьМакета, Рисунок); КонецПроцедуры // Служебные функции -Функция ПолучитьДанныеДляЗапуска(ПутьКПриложению, Параметры) Экспорт + +// Функция - Получить данные для запуска +// +// Параметры: +// ПутьКПриложению - Строка - Абсолютный путь к исполнительному файлу. +// Параметры - Соответствие - Параметры запуска исполнительного файла, Где ключ - флаг. +// Возвращаемое значение: +// Строка - Полная команда для запуска в окружении операционной системы. +Функция ПолучитьДанныеДляЗапуска(ПутьКПриложению, Параметры) СтрокаПараметров = ПутьКПриложению+" "; Для каждого Параметр Из Параметры Цикл; @@ -25,16 +45,28 @@ КонецФункции +// Функция - Abs (Функция необходима для совместимости со старыми платформами). +// +// Параметры: +// Аргумент - Число - Входной параметра числа +// Возвращаемое значение: +// Число - Число результат. Функция Abs(Знач Аргумент) Экспорт Возврат ?(Аргумент>=0, Аргумент, -Аргумент); КонецФункции +// Функция - Получить путь до среды исполнения +// Возвращаемое значение: +// Строка - Абсолютный путь до среды исполнения программы. Функция ПолучитьПутьДоСредыИсполнения() Возврат КаталогПрограммы()+"barcodeVDKextension"; КонецФункции - + +// Функция - Получить путь исполняемый файл +// Возвращаемое значение: +// Строка - Абсолютный путь до исполняемого файла. Функция ПолучитьПутьИсполняемыйФайл() ПутьДоФайлаИсполнения = ПолучитьПутьДоСредыИсполнения()+"\"+"barcode_go.exe"; ФайлНаДиске = Новый Файл(ПутьДоФайлаИсполнения); @@ -45,6 +77,9 @@ Возврат ПолучитьПутьДоСредыИсполнения()+"\"+"barcode_go.exe"; КонецФункции +// Функция - Получить путь до временной папки хранения +// Возвращаемое значение: +// Строка - Путь до папки temp где хранятся сгенерированные картинки штрихкодов. Функция ПолучитьПутьДоВременнойПапкиХранения() ИсходнаяДата = ТекущаяДата(); Год = Формат(ИсходнаяДата, "ДФ=гггг"); @@ -54,6 +89,9 @@ Возврат ПолучитьПутьДоСредыИсполнения()+"\"+"temp\"+ПапкаДата; КонецФункции +// Функция - Получить данные будущего временного файла +// Возвращаемое значение: +// Структура - Данные о будущем файле: где он хранится, как называется, и полный путь до него. Функция ПолучитьДанныеБудущегоВременногоФайла() ПутьДоВременногоХранения = ПолучитьПутьДоВременнойПапкиХранения(); @@ -63,11 +101,23 @@ КонецФункции +// Функция - Получить картинку +// +// Параметры: +// ИмяФайла - Строка - Полный абсолютный путь до созданного файла. +// Возвращаемое значение: +// Картинка - Картинка Функция ПолучитьКартинку(ИмяФайла) - ДД = Новый ДвоичныеДанные(ИмяФайла); - Возврат Новый Картинка(ДД); + Возврат Новый Картинка(ИмяФайла); КонецФункции +// Функция - Разложить строку на подстроки (Функция необходима для совместимости со старыми платформами). +// +// Параметры: +// ВходящаяСтрока - Строка - Имя рисунка на макете. +// Разделитель - Строка - В Рамкой данной обработки будет использоваться символ "_". +// Возвращаемое значение: +// Массив - Массив со значениемя разложения Функция РазложитьСтрокуНаПодстроки(ВходящаяСтрока, Разделитель) МассивСтрок = Новый Массив(); @@ -82,6 +132,12 @@ КонецФункции +// Функция - Получить тип штрихкода из имени +// +// Параметры: +// ИсходноеИмя - Строка - Имя рисунко должно быть следующего формата: <ЛюбоеИмя>_<ТипШтрихкода> +// Возвращаемое значение: +// Строка - Тип штрихкода, который будет указываться при запуске программы. Функция ПолучитьТипШтрихкодаИзИмени(Знач ИсходноеИмя) Попытка; @@ -94,7 +150,13 @@ КонецФункции -Функция ПроверитьШиринуИДлина(Ширина, Высота, ТипКода) +// Процедура - Проверить ширину и длина +// +// Параметры: +// Ширина - Число - Ширина рисунка. +// Высота - Число - Высота рисунка. +// ТипКода - Строка - Тип требуемого кода. +Процедура ПроверитьШиринуИДлина(Ширина, Высота, ТипКода) Если Ширина < 95 Тогда Ширина = 95; @@ -110,8 +172,14 @@ Ширина = Ширина * 2; Высота = Высота * 2; -КонецФункции +КонецПроцедуры +// Функция - Новые свойства картинки штрихкода (Фабричный метод) +// +// Параметры: +// Рисунок - РисунокТабличногоДокумента - Рисунок взятый с табличного документа на место которого будет помещен штрихкод. +// Возвращаемое значение: +// Структура - Структура свойств, нового рисунка на табличный документ. Функция НовыеСвойстваКартинкиШтрихкода(Рисунок) Ширина = 0; @@ -150,7 +218,14 @@ КонецФункции // Логика -Функция ПрисвоитьМакетуРисунокШтрихкод(Данные, ОбластьМакета, Рисунок) + +// Процедура - Присвоить макету рисунок штрихкод +// +// Параметры: +// Данные - Строка - Строка данных например "111111111111" для генерации ean13. +// ОбластьМакета - ТабличныйДокумент - Табличный документ или область где будет расположен штрихкод. +// Рисунок - РисунокТабличногоДокумента - Рисунок на который будет помещен штрихкод. +Процедура ПрисвоитьМакетуРисунокШтрихкод(Данные, ОбластьМакета, Рисунок) // Получить все необходимые свойства будущей картинки на макете. СтруктураСвойствШтрихкодКартинки = НовыеСвойстваКартинкиШтрихкода(Рисунок); @@ -171,8 +246,17 @@ НовыйРисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); ЗаполнитьЗначенияСвойств(НовыйРисунок, СтруктураСвойствШтрихкодКартинки); -КонецФункции +КонецПроцедуры +// Функция - Запусить приложение генерации кода +// +// Параметры: +// Данные - Строка - Данные штрихкода, например "112233112233" для ean13 или "https://google.com" для qrcode. +// ТипКода - Строка - Тип штрихкода, который необходимо сгенерировать например qrcode или ean13. +// Ширина - Число - Ширина требуемой картинки штрихкода. +// Высота - Число - Высота требуемой картинки штрихкода. +// Возвращаемое значение: +// Структура - Структура с данными сгенерированного файла. Функция ЗапуситьПриложениеГенерацииКода(Данные, ТипКода, Ширина, Высота) КодВозврата = Неопределено; @@ -200,6 +284,15 @@ КонецФункции +// Функция - Инициализировать штрихкод и получить картинку +// +// Параметры: +// Данные - Строка - Данные штрихкода, например "112233112233" для ean13 или "https://google.com" для qrcode. +// ТипКода - Строка - Тип штрихкода, который необходимо сгенерировать например qrcode или ean13. +// Ширина - Число - Ширина требуемой картинки штрихкода. +// Высота - Число - Высота требуемой картинки штрихкода. +// Возвращаемое значение: +// Картинка - Картинка сгенерированного штрихкода. Функция ИнициализироватьШтрихкодИПолучитьКартинку(Данные, ТипКода, Ширина, Высота) СформированныйФайлШтрихкода = ЗапуситьПриложениеГенерацииКода(Данные, ТипКода, Ширина, Высота);