Версия для печати темы (https://pro1c.org.ua/index.php?s=08768bc9668c526e1bfafb8b1253a159&showtopic=58174)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Ocvita Barcode запуск на сервере

Автор: cao0603 04.04.20, 23:47

Добрый день коллеги, была установлена ocvita Barcode и была выполнена регистрация на сервере ее компоненты
Помоги пожалуйста с кодом запуска из под клиента функции вывода qr кода
Или подскажите более простое решение печати qr кода на кириллице с документацией по 1с 8.2

Автор: Vofka 05.04.20, 10:45

cao0603, https://pro1c.org.ua/redirect.php?http://www.ocvita.ru/downloads/ocvitabarcode.php архив, в котором есть обработки для 1С, можете там глянуть.
Есть разные бесплатные сервисы, которые генерируют qr коды. https://pro1c.org.ua/redirect.php?https://developers.google.com/chart/infographics/docs/qr_codes, например от Гугла, я его когда-то использовал и проблем не помню. Но у использования внешних сервисов есть один недостаток: что бы их использовать, должен быть более-менее стабильный интернет.

Автор: cao0603 05.04.20, 17:01

Vofka @ Сегодня, 11:45 * ,
Такой архив я скачивал с официального сайта, да ,там есть обработка , но она работает на том компе на котором установил ocvita
А мне нужен запуск с сервера

Автор: sava1 05.04.20, 17:32

Цитата(cao0603 @ 05.04.20, 18:01) *
А мне нужен запуск с сервера

это как ?

Автор: cao0603 06.04.20, 8:06

sava1 @ Вчера, 18:32 * ,
Чтобы на сервере был установлена ocvita , а на клиенте мог работать код генерации qr кода

Автор: Vofka 06.04.20, 8:11

cao0603, если сделать серверную процедуру и вызывать её с клиента, так не работает?

Автор: cao0603 06.04.20, 9:11

Vofka @ Сегодня, 9:11 * ,
Вот об этом и прошу коллеги сделать серверную функцию и вызывать ее с клиента

Автор: sava1 06.04.20, 9:24

Цитата(cao0603 @ 06.04.20, 10:11) *
делать серверную функцию и вызывать ее с клиента

а смысл такого изврата ? формы - то обычные (насколько я понял) и компилируются на клиенте ?....

Автор: cao0603 06.04.20, 9:34

sava1 @ Сегодня, 10:24 * ,
А какой тогда вы предложите вариант запуска внешней компоненты с сервера на клиенте,формы обычные

Автор: sava1 06.04.20, 9:38

Почему у Вас везде фигурирует сервер. Установить/зарегить АктивХ на пользовательском компе запрещено?

Автор: cao0603 06.04.20, 9:40

sava1 @ Сегодня, 10:38 * ,
Не запрещено,но когда очень много пользователей это затруднительно

Автор: sava1 06.04.20, 9:42

варианты
- терминальная работа пользователей
- установка компоненты на локальных рабочих станциях
- зарегистрировать компоненту через ДКОМ (если там есть интерфейсы)

Серверная процедура - это не та , что выполняется/компилируется на удаленном сервере, а та, которая выполняется на сервере 1С

Автор: cao0603 06.04.20, 9:45

sava1 @ Сегодня, 10:42 * ,
Подходит вариант через серверную процедуру

Автор: sava1 06.04.20, 9:45

по баркоду - попробуйте серверную процедуру, которая возвращает адрес во временном хранилище (передавайте на клиент ДвоичныеДанные) и вставляйте их в ТабДокумент
или весь ТабДокумент формируйте на сервере и возвращайте на клиент

Автор: cao0603 06.04.20, 9:50

sava1 @ Сегодня, 10:45 * ,
Это все понятно,проблема заключается в том как вызвать ocvita ,как подключить это внешнюю компоненту и вызывать ее,

sava1 @ Сегодня, 10:45 * ,
Ocvita построена на базе zint, и с zint все получается, но там нет кириллицы
А про ocvita нет инструкции как вызвать

Автор: sava1 06.04.20, 9:56

там в архиве вроде есть обработки с примером.
А кирилицы в ней тоже не было (1251 не работал - разве пробовать в УТФ)

Автор: cao0603 06.04.20, 9:57

sava1 @ Сегодня, 10:56 * ,
В той обработке что в комплекте работает если компонента локально зарегистрирована на текущем компе

Автор: sava1 06.04.20, 10:01

еще вариант - в бух20 или УТ3 - в БСП есть подсистема печати QR. можно "содрать". компонента там в макете.

Цитата(cao0603 @ 06.04.20, 10:57) *
если компонента локально зарегистрирована на текущем компе

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

Автор: cao0603 06.04.20, 10:03

sava1 @ Сегодня, 10:58 * ,
Таких возможностей нет у меня, у меня упп 8.2 , вы можете помочь конкретным кодом для запуска ocvita
Или кодов на запуск другого варианта

sava1 @ Сегодня, 11:01 * ,
Значит я до конца не могу понять как подключиться и поэтому прошу помощи на форуме

Автор: sava1 06.04.20, 10:30

Цитата(cao0603 @ 06.04.20, 11:03) *
я до конца не могу понять как подключиться и поэтому прошу помощи на форуме


1. клиент-серверный вариант ?
2. Пользователи в терминале ?

Автор: cao0603 06.04.20, 10:35

sava1 @ Сегодня, 11:30 * ,
клиент-серверный вариант

Автор: sava1 06.04.20, 11:10

вариант - https://pro1c.org.ua/redirect.php?http://citforum.ck.ua/programming/cpp/com_4_13.shtml

Автор: cao0603 06.04.20, 11:12

sava1 @ Сегодня, 12:10 * ,
спасибо, буду читать и разбираться, но может есть варианты проще?

Автор: sava1 06.04.20, 11:13

вот подключение екселя - https://pro1c.org.ua/redirect.php?https://efsol.ru/manuals/com-object.html

проще - установить на клиентских машинах.

Автор: cao0603 06.04.20, 11:34

sava1 @ Сегодня, 12:13 * ,
а как дальше запустить octiva?

Автор: sava1 06.04.20, 11:45

посильней размахнуться rulez.gif

ничего не меняется. точно так как подключали.

еще вариант - цепляете Компоненту в общийМакет и оперируете ею через ПодключитьВнешнююКомпоненту.
Тогда ее регистрировать не надо. (но работать она будет все-равно в пользовательском процессе)

Автор: Vofka 06.04.20, 11:57

Цитата(sava1 @ 06.04.20, 12:45) *
еще вариант - цепляете Компоненту в общийМакет и оперируете ею через ПодключитьВнешнююКомпоненту.
Тогда ее регистрировать не надо. (но работать она будет все-равно в пользовательском процессе)

Разве это работает с COM компонентами?

Автор: sava1 06.04.20, 12:04

вооще-то срабатывало. 1с-кая компонента из БСП так и подключается

из справки -

Описание варианта метода:
Подключает компоненты, выполненные по технологии Native API и COM.
Компонент может храниться в информационной базе или макете конфигурации в виде двоичных данных или в ZIP-архиве.
Для режимов запуска "Тонкий клиент" и "Веб-клиент", компонент должен быть предварительно установлен методом УстановитьВнешнююКомпоненту.

Автор: cao0603 06.04.20, 13:40

sava1 @ Сегодня, 13:04 * ,
помогите пожалуйста кодом

Автор: Anderson 09.04.20, 12:28

Цитата(Vofka @ 05.04.20, 10:45) *
Вот, например от Гугла

Гугл уже прекратил доступ к этой функции.


Цитата(cao0603 @ 06.04.20, 13:40) *
помогите пожалуйста кодом

Вот ленивый народ. Говорят же в БСП есть, нет разжуйте положите.
https://pro1c.org.ua/redirect.php?https://fex.net/ru/s/22pax8d
Код
//--печать qr через компоненету 1С
// Возвращает двоичные данные для формирования QR кода.
//
// Параметры:
//  QRСтрока         - Строка - данные, которые необходимо разместить в QR-коде.
//
//  УровеньКоррекции - Число - уровень погрешности изображения при котором данный QR-код все еще возможно 100%
//                             распознать.
//                     Параметр должен иметь тип целого и принимать одно из 4 допустимых значений:
//                     0(7% погрешности), 1(15% погрешности), 2(25% погрешности), 3(35% погрешности).
//
//  Размер           - Число - определяет длину стороны выходного изображения в пикселях.
//                     Если минимально возможный размер изображения больше этого параметра - код сформирован не будет.
//
// Возвращаемое значение:
//  ДвоичныеДанные  - буфер, содержащий байты PNG-изображения QR-кода.
//
// Пример:
//  
//  // Выводим на печать QR-код, содержащий в себе информацию зашифрованную по УФЭБС.
//
//  QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа);
//  ТекстОшибки = "";
//  ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190, ТекстОшибки);
//  Если Не ПустаяСтрока(ТекстОшибки)
//      ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
//  КонецЕсли;
//
//  КартинкаQRКода = Новый Картинка(ДанныеQRКода);
//  ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода;
//
Функция ДанныеQRКода(QRСтрока, УровеньКоррекции, Размер) Экспорт
    
    Отказ = Ложь;
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("png");
    ГенераторQRКода = КомпонентаФормированияQRКода(Отказ);
    Если Отказ Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    Попытка
        ДвоичныеДанныеКартинки = ГенераторQRКода.GenerateQRCode(QRСтрока, УровеньКоррекции, Размер);
    Исключение
        ЗаписьЖурналаРегистрации(НСтр("ru='Формирование QR-кода';uk='Формування QR-коду'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
            УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;

    
    Возврат ДвоичныеДанныеКартинки;
КонецФункции

Функция КомпонентаФормированияQRКода(Отказ)
    
    ТекстОшибки = НСтр("ru='Не удалось подключить внешнюю компоненту для генерации QR-кода. Подробности в журнале регистрации.';uk='Не вдалося підключити зовнішню компоненту для генерації QR -кода. Подробиці в журналі реєстрації.'");
    
    QRCodeGenerator = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("QRCodeExtension", "ОбщийМакет.КомпонентаПечатиQRКода");
        
    Если QRCodeGenerator = Неопределено Тогда
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки,,,, Отказ);
    КонецЕсли;
    
    Возврат QRCodeGenerator;
    
КонецФункции

Процедура СформироватьQRАртикула(ТабДок,СтрокаШК,Параметры)
    Макет = ПолучитьОбщийМакет("ЭтикеткаQR");
    Область = Макет.ПолучитьОбласть("ШКАртикула|Первый");
    Рисунок = Область.Область("КартинкаQRАртикула");
    Рисунок.Картинка = Новый Картинка(ПечатьШК.ДанныеQRКода(СтрокаШК,1,82));
    ТабДок.Вывести(Область);
КонецПроцедуры // СформироватьQR()

Автор: Vofka 09.04.20, 13:05

Цитата(Anderson @ 09.04.20, 13:28) *
Гугл уже прекратил доступ к этой функции.

Почему вы так решили? https://pro1c.org.ua/redirect.php?https://chart.googleapis.com/chart?cht=qr&chs=100x100&chl=pro1c.org.ua

Автор: Anderson 15.04.20, 14:55

Цитата(Vofka @ 09.04.20, 13:05) *
Почему вы так решили? тыц

https://pro1c.org.ua/redirect.php?https://developers.google.com/chart/infographics/docs/qr_codes пишется. Они его в прошлом году даже отключили. Но топом судя по всему опять включили, раз еще работает.
А приходилось в авральном режиме переписывать формирование кодов.

Автор: Vladal 24.04.20, 14:36

Вот недавно решали такой вопрос: https://pro1c.org.ua/index.php?showtopic=52928&hl=

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua