Класс 1С++ для программного добавления изображений/текста/ШК в таблицу

29.10.15

Разработка - Работа с интерфейсом

Необходимо добавить в сформированную таблицу изображения/текста/ШК (81 тип ШК) с прозрачным фоном? Вставить фирменный логотип? Быстро организовать оформление документов в корпоративном стиле? Данная разработка поможет в этом!

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

Наименование Файл Версия Размер
Класс "ИзображенияДляТаблицы" вер. 1.3
.ert 48,50Kb
197
.ert 48,50Kb 197 Скачать
Класс "ИзображенияДляТаблицы" вер. 1.2
.ert 47,00Kb
9
.ert 47,00Kb 9 Скачать
Класс "ИзображенияДляТаблицы" вер. 1.1
.ert 45,50Kb
14
.ert 45,50Kb 14 Скачать
Класс "ИзображенияДляТаблицы" вер. 1.0
.ert 45,00Kb
20
.ert 45,00Kb 20 Скачать

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

Что может:
Размещать в произвольном месте в таблице картинки с прозрачным фоном, с возможностью произвольного смещения картинки по оси X/Y, c возможностью поворота картинки на произвольный градус. С версии 1.3 - поддержка вывода 81 типа штрих-кодов, в том числе двухмерные QR Code, Data Matrix и т.д. (корректно кодирует кириллицу).

Где использовать:

  • при вставке подписей и печатей
  • при вставке фирменных логотипов
  • для реализации корпоративного оформления документов
  • при вставке текста
  • при вставке штрих-кодов (список доступных типов ШК см. ниже)
  • и т.д.


Что используется:
1. ВК TableDoc.dll - автор Трапезников Дмитрий (trad) (http://www.1cpp.ru/forum/YaBB.pl?num=1177688915/0) - используется возможность добавления в таблицу произвольного количество OLE-объектов произвольных размеров (обязательно)
2. ActiveX элемент управления  bmp_1c.ocx (ActiveBMP) - автор Морев Андрей (Z1) (http://1c.proclub.ru/modules/mydownloads/personal.php?lid=2725&cid=111) - используется непосредственно для отображения картинок в таблице (обязательно)
3. ActiveX GFLAx (http://www.xnview.com/en/download_gfl.html) - для возможности произвольного поворота вставляемого изображения и конвертации входящего изображения в BMP (опционально)
4. ActiveX элемент управления  text_1c.ocx (ActiveText) - автор Морев Андрей (Z1) (http://1c.proclub.ru/modules/mydownloads/personal.php?cid=129&lid=2726) - используется непосредственно для отображения картинок в таблице (опционально)

5. Шрифт EanG000.ttf - для вывода штрих-кодов EAN-13.

6. ActiveX элемент управления  OcvitaBarcode.ocx - Разработчик: Ocvita (http://ocvita.ru/content/view/89/1/) На основе библиотеки zint (www.sourceforge.net/projects/zint) - используется для отображения ШК всевозможных типов в таблице

При наличии GFLAx - входящий файл картинки может быть практически любого графического формата, иначе - только BMP.


Свойства:
ЕстьПроизвольноеСмещение - использовать произвольное смещение при размещении объекта в таблицу (0 - нет; 1 - да);
ПроизвольноеСмещениеНач_X, ПроизвольноеСмещениеКон_X, ПроизвольноеСмещениеНач_Y, ПроизвольноеСмещениеКон_Y - границы в пикселях для произвольного смещения;
ЕстьПроизвольныйПоворот - использовать поворот на произвольный градус при размещении объекта в таблицу  (0 - нет; 1 - да);
ПроизвольныйПоворотНач, ПроизвольныйПоворотКон - границы для ограничения градуса поворота;

Методы:
Процедура ПодключитьТаблицу(Таб) - подключение таблицы к классу

  • Таб - объект типа "Таблица"


Функция ДобавитьИзображение(Лево, Верх, Право, Низ, Путь, Тип) - добавление изображения в таблицу, возвращает ссылку на добавленный объект ActiveBMP

  • Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
  • Путь - путь к файлу изображения
  • Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

Функция ДобавитьТекст_Актив(Лево, Верх, Право, Низ, Текст, Тип) - добавление текста (с помощью ActiveText) в таблицу, возвращает ссылку на добавленный объект ActiveText

  • Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
  • Текст- текст для добавления в таблицу
  • Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

Функция ДобавитьШК_Актив(Лево, Верх, Право, Низ, ШК, Тип) - добавление штрих-кода (с помощью ActiveText) в таблицу, возвращает ссылку на добавленный объект ActiveText

  • Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
  • ШК- штрих-код для добавления в таблицу
  • Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

Функция ДобавитьТекст(Лево, Верх, Право, Низ, Текст, Тип) - добавление текста (стандартный объект Текст) в таблицу, возвращает ссылку область таблицы добавленного объекта

  • Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
  • Текст- текст для добавления в таблицу
  • Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

Функция ДобавитьШК(Лево, Верх, Право, Низ, ШК, Тип) - добавление штрих-кода (стандартный объект Текст) в таблицу, возвращает ссылку область таблицы добавленного объекта

  • Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
  • ШК - штрих-код для добавления в таблицу
  • Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

Функция ДобавитьШК_Оквита(Лево, Верх, Право, Низ, ШК, ТипШК, Тип) - добавление штрих-кода (с помощью OcvitaBarcode) в таблицу, возвращает ссылку на добавленный объект OcvitaBarcode

  • Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
  • ШК - штрих-код для добавления в таблицу
  • ТипШК - тип штрих-код для добавления в таблицу, можно передавать цифровой код или строковое название (доступные типы ШК см. ниже)
  • Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла


Пример добавления в таблицу подписи с печатью

    ....
    Таблица = СоздатьОбъект("Таблица");
    //заполнение таблицы
    ....
    Таблица.Показать();

    Печ = СоздатьОбъект("ИзображенияДляТаблицы");
    Печ.ПодключитьТаблицу(Таблица);
    Печ.ЕстьПроизвольноеСмещение = 1;

    Печ.ЕстьПроизвольныйПоворот = 0;
    
    Печ.ДобавитьИзображение(2,5,70,50,"C:\Подпись.gif",2);

    Печ.ЕстьПроизвольныйПоворот = 1;
    Печ.ПроизвольныйПоворотНач = -15;
    Печ.ПроизвольныйПоворотКон = 15;

    Печ.ДобавитьИзображение(300,150,430,280,"C:\Печать.gif",0);

 

Обновление от 09.06.2012 версия 1.1

1. При повороте картинки - размер картинки увеличивается пропорционально углу поворота - раньше это увеличение картинки компенсировалось увеличением

втавляемого ОЛЕ-объекта, теперь новое изображение после поворота обрезается до первоначальных размеров - имхо - так более правильно.

2. Особенностью ActiveBMP является то, что изображение из файла подгружается в ОЛЕ-объект в момент визуального просмотра таблицы/отправки на печать. Поэтому при массовой вставке объектов с произвольным поворотом в таблицу получалось что при просмотре всей таблицы в ОЛЕ-объекты подгружалось последнее "повернутое" изображение (корректировка картинки работала через один файл во временном каталоге). Сейчас для каждого такого изображения создается свой уникальный файл во временном каталоге. Данные файлы удаляются при следующем создании объекта "ИзображенияДляТаблицы" - это накладывает некоторое ограничение - если сформировать таблицу несколько раз подряд (без печати и визуального просмотра всех страниц), то изображения на невидимых страницах всех таблиц, кроме последней, будут отсутствовать.

Обновление от 18.06.2012 версия 1.2

1. Добавлена возможность размещения в таблице текста и штрих-кода двумя способами: с помощью ActiveX элемент управления  bmp_1c.ocx (ActiveBMP) и с помощью стандартного объекта "Текст" (базовый функционал одинаков, но у ActiveX возможностей все таки больше - возможно кому то это будет критично). При этом работает возможность произвольного смещения и поворота добавляемого объекта.

2. Процедуры добавления объекта переделаны в функции, с возвратом ссылки на добавляемый объект, чтобы после добавления можно было "поиграть" со свойствами этих объектов.

Обновление от 20.06.2012 версия 1.3

 1. Добавлена поддержка ActiveX элемента управления OcvitaBarcode.ocx - с его помощью стал доступным вывод в таблицу практически любого ШК, в т.ч. дмухмерных с поддержой кириллицы. Фон для таких объектов непрозрачный (кстати, цвет изображения и фона можно настраивать в свойствах объекта), отсутствует возможность произваольного поворота (в свойствах объекта она есть, но при этом 1Ска закрывается с ошибкой).

Доступные типы ШК:

    1 : Code 11
    2 : Code 2 of 5
    3 : Interleaved 2 of 5
    4 : Code 2 of 5 IATA
    6 : Code 2 of 5 Data Logic
    7 : Code 2 of 5 Industrial
    8 : Code 3 of 9 (Code 39)
    9 : Extended Code 3 of 9 (Code 39+)
    13 : EAN (EAN-8/13 auto select)
    16 : GS1-128
    18 : Codabar
    20 : Code 128 (subset auto select)
    21 : Deutshe Post Leitcode
    22 : Deutshe Post Identcode
    23 : Code 16K
    24 : Code 49
    25 : Code 93
    28 : Flattermarken
    29 : GS1 DataBar-14
    30 : GS1 DataBar Limited
    31 : GS1 DataBar Expanded
    32 : Telepen Alpha
    34 : UPC A
    37 : UPS E
    40 : PostNet
    47 : MSI Plessey
    49 : FIM
    50 : LOGMARS
    51 : Pharmacode One-Track
    52 : PZN
    53 : Pharmacode Two-Track
    55 : PDF417
    56 : PDF417 Truncated
    57 : Maxicode
    58 : QR Code
    60 : Code 128 (Subset B)
    63 : Australia Post Standard Customer
    66 : Australia Post Reply Paid
    67 : Australia Post Routing
    68 : Australia Post Redirection
    69 : ISBN (EAN-13 with verification stage)
    70 : Royal Mail 4 State (RM4SCC)
    71 : Data Matrix
    72 : EAN-14
    75 : NVE-18
    76 : Japanese Post
    77 : Korea Post
    79 : GS1 DataBar-14 Stacked
    80 : GS1 DataBar-14 Stacked Omnidirectional
    81 : GS1 DataBar Expanded Stacked
    82 : PLANET
    84 : MicroPDF417
    85 : USPS OneCode
    86 : Plessey Code
    87 : Telepen Numeric
    89 : ITF-14
    90 : Dutch Post KIX Code
    92 : Aztec Code
    93 : DAFT Code
    97 : Micro QR Code
    98 : HIBC Code 128
    99 : HIBC Code 39
    102 : HIBC Data Matrix
    104 : HIBC QR Code
    106 : HIBC PDF417
    108 : HIBC MicroPDF417
    112 : HIBC Aztec Code
    128 : Aztec Runes
    129 : Code 32
    130 : Composite Symbol with EAN linear component
    131 : Composite Symbol with GS1-128 linear component
    132 : Composite Symbol with GS1 DataBar-14 linear component
    133 : Composite Symbol with GS1 DataBar Limited component
    134 : Composite Symbol with GS1 DataBar Extended component
    135 : Composite Symbol with UPC A linear component
    136 : Composite Symbol with UPC E linear component
    137 : Composite Symbol with GS1 DataBar-14 Stacked component
    138 : Composite Symbol with GS1 DataBar-14 Stacked Omnidirectional component
    139 : Composite Symbol with GS1 DataBar Expanded Stacked component
    140 : Channel Code
    141 : Code One
    142 : Grid Matrix

http://www.1cpp.ru/forum/YaBB.pl?num=1338556939

См. также

1С:Фото номенклатуры 7.7 - решение для работы с фотографиями номенклатуры в 1С:7.7 (включая формат PNG)

Работа с интерфейсом Логистика, склад и ТМЦ Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5161    1    45    

3

WebЦвета для 1с77 FormEx

Инструментарий разработчика Работа с интерфейсом Платформа 1С v7.7 Абонемент ($m)

Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.

1 стартмани

30.03.2022    4543    2    igor7777    4    

5

К привязкам элементов форм (1С 7.7, FormEx)

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Публикация имеет цель обратить внимание на возможность улучшения интерфейса.

15.12.2021    4466    62    Cерый    13    

6

Выбор цвета для 1С 7.7

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.

1 стартмани

09.06.2020    7025    3    vap_pig    5    

3

Производственный календарь для 1С 7.7

Учет рабочего времени Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.

1 стартмани

18.09.2019    12580    6    Jill    8    

3

Альтернативная обработка "Выбор периода"

Работа с интерфейсом Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Альтернативная обработка ввода периода для 1С 7.7.

1 стартмани

27.03.2019    6588    3    v.a.n-    11    

2

Несколько табличных частей в 1С:7.7 - это просто

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

При программировании на платформе V7 достаточно часто возникает задача создать несколько табличных частей документа (или справочника). Традиционно эта задача имеет несколько решений..

1 стартмани

01.05.2018    22421    27    Gkmy    11    

5
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CaSH_2004 372 03.06.12 11:32 Сейчас в теме
Пользоваться не буду т.к. 7.7 почти не пользуюсь, но автор красавчик!, столько разработок совместил, это непросто
Кстати тут есть Разукрашка http://infostart.ru/public/19856/
при помощи нее можно раскрасить код
2. Ёпрст 1063 04.06.12 12:23 Сейчас в теме
Еще нужно как минимум добавить свойство масштабирования картинки.
3. zarius 184 04.06.12 13:37 Сейчас в теме
(2) Картинка масштабируется под размеры добавляемого в таблицу объекта... или я не так понял предложение в (2)?
13. Ёпрст 1063 07.06.12 09:39 Сейчас в теме
(3)
Картинка масштабируется под размеры добавляемого в таблицу объекта... или я не так понял предложение в (2)?


Есть несколько же методов - растягивание под размер картинки, пропорцианально, оригинальный размер , сохранение пропорций + вписывание в окошко и т.д..

Вот это нужно в свойство класса воткнуть, у активбмп это есть.

А так, не совсем удобно размещать по пикселям - подходит только для статических форм.
У меня по 3-4 печати с подписями за раз выводится - мне проще в макете разместить картинку в выводимой секции.

Класс не качал, есть ли возможность вставить картинку относительно ячеек мокселя ?
Скажем в R1C122 - в левый верхний угол этой ячейки ?
Т.е задавать координаты ячейки, например.
15. zarius 184 07.06.12 10:33 Сейчас в теме
(13)
нужно в свойство класса воткнуть, у активбмп это есть

не вопрос - можно все свойства активбмп перенести в свойства класса - сейчас просто реализован самый простой - но самое главное - работающий вариант. Добавил объект необходимого размера на форму - и картинка будет именно этого размера. Когда игрался с другими свойствами активбмп - было какое то шаманство - на экране одно - при печати другое (читал http://www.1cpp.ru/forum/YaBB.pl?num=1297093976/10#10 - но рекомендации Z1 как то не особо помогли в этом плане).

У меня по 3-4 печати с подписями за раз выводится

а если надо не статические 3-4, а 20-30 в одной таблице, при этом места и состав подписей/печатей может меняться? :)

Скажем в R1C122 - в левый верхний угол этой ячейки ?

Может.
ДобавитьИзображение(Лево, Верх, Право, Низ, Путь, Тип) - добавление изображения в таблицу

    Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
    Путь - путь к файлу изображения
    Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла

(14)
Дочитал до пакетной печати... Не показывать не катит :((

Так можно и показывать и не показывать - как душе угодно...
4. BorisBelov 889 04.06.12 14:49 Сейчас в теме
5. Доня 284 04.06.12 16:02 Сейчас в теме
А как этим пользоваться?
это надо вставить в модуль формы или как ???
6. zarius 184 04.06.12 16:27 Сейчас в теме
(5) это класс 1С++. Более подробно можно узнать на www.1cpp.ru.
7. zarius 184 04.06.12 16:45 Сейчас в теме
(5) если необходимо без 1С++ - пожалуйста... код класса открыт - все процедуры/функции можно переносить непосредственно в модуль вывода таблицы и там их использовать...
однако если используешь 7.7 - настоятельно рекомендую посмотреть в сторону 1С++ - временные затраты на это окупятся многократно...
8. soba 06.06.12 02:56 Сейчас в теме
Плюс однозначный.
А как подобное с приличного объема картинками будет работать по скорости? Конкретнее- если использовать класс для пакетной печати пакета документов вместе с сертификатами (а они по 2-4Мб)? Тормоза будут?
9. zarius 184 06.06.12 09:53 Сейчас в теме
(8) добавление оле-объектов происходит довольно шустро. Как то пробовал - около 20 печатей добавляются в довольно объемную таблицу - около 3-4 секунд, с учетом что все это дело печатается несколько минут - время на добавление изображений не критично. Там есть ньюанс, если собираешься сразу же отправлять на печать, не выводя на экран...
10. soba 06.06.12 10:40 Сейчас в теме
(9) Именно так и нужно, пакетная печать напрямую. А что за нюанс?
11. zarius 184 06.06.12 12:37 Сейчас в теме
(10) ньюанс в том что добавление изображений происходит после метода таблицы "Показать()", поэтому в любом случае таблица будет отображена для пользователя.
Самый простой вариант в этом случае - использовать:
	... заполнение таблицы
	Таблица.Показать(,,0);
	... заполнение таблицы изображениями
	
	Таблица.Напечатать(0);
	Таблица.Показать(,,-1);

Однако при этом варианте пользователь все равно увидит мелькание выводимой таблицы

Другой вариант - использовать элемент управления "ПолеТабличногоДокумента", предоставляемый TableDoc.dll. Этот элемент управления можно поместить, например, в скрытый слой и выводить таблицу туда. Оттуда и печатать.
Перем гТДОтчет;

Функция  ПопыткаЗагрузкиТаблДок()
	Попытка
		мМен=СоздатьОбъект("МенеджерТабличногоДокумента");
	Исключение
		Если ЗагрузитьВнешнююКомпоненту("TableDoc.dll") = 0 Тогда
			Сообщить("Ошибка загрузки ВК TableDoc");
			СтатусВозврата(0);
			Возврат 0;
		КонецЕсли;
		Попытка
			мМен=СоздатьОбъект("МенеджерТабличногоДокумента");
		Исключение
			Сообщить("Ошибка загрузки ВК TableDoc");
			СтатусВозврата(0);
			Возврат 0;
		КонецПопытки;

		ОткрытьФорму("Отчет#",, РасположениеФайла()); // обратить внимание на знак #
		СтатусВозврата(0);
		Возврат 0
	КонецПопытки;
	Возврат 1;
КонецФункции

Процедура Сформировать()
	
	...
	Таблица = гТДОтчет.Таблица; //вместо "Таблица = СоздатьОбъект("Таблица"); "
	... заполнение таблицы
	Таблица.Показать();
	... заполнение таблицы изображениями
	
	Таблица.Напечатать(0);

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

Процедура ПриОткрытии()
	Если ПопыткаЗагрузкиТаблДок() = 0 Тогда
		Возврат;
	КонецЕсли;	
	
    _Форма=СоздатьОбъект("Форма");
    _Форма.УстановитьФорму(Форма);
КонецПроцедуры

Процедура ФормаПриСоздании(_Форма)
    гТДОтчет=_Форма.СоздатьЭлементУправления("ПолеТабличногоДокумента",Форма.ПолеТДОтчет);
    гТДОтчет.Таблица.Опции(0,0,2,0);
    гТДОтчет.Таблица.ТолькоПросмотр(1);
КонецПроцедуры 
Показать

где ПолеТДОтчет - элемент "кнопка" на скрытом слое формы...
Однако при данном методе уже не обойтись без 1С++ (либо как вариант можно попробовать FormEx)
12. soba 06.06.12 12:42 Сейчас в теме
(11) zarius Спасибо, буду пробовать второй вариант. 1С++ и extForms уже давно задействованы, без них никуда :)
14. Ёпрст 1063 07.06.12 09:40 Сейчас в теме
Дочитал до пакетной печати... Не показывать не катит :((
Ладно - по старинке как то проще.
16. nirbolz 31 08.06.12 20:33 Сейчас в теме
А в 1с 8.2 такая прога будет работать?
17. zarius 184 09.06.12 10:57 Сейчас в теме
(16) именно эта - нет, однако нет ничего невозможного - уверен, что можно подобный функционал реализовать и на 8.2:
1. GFLAx - точно заработает
2. bmp_1c.ocx - скорее всего тоже должен заработать - надо пробовать
Осталось найти возможность программно добавлять ОЛЕ-объекты в таблицу 8.2
18. zarius 184 09.06.12 11:18 Сейчас в теме
(16) да, для 8.2 все можно сделать...
19. Ёпрст 1063 09.06.12 11:27 Сейчас в теме
>>
.а если надо не статические 3-4, а 20-30 в одной таблице, при этом места и состав подписей/печатей может меняться? :)


У меня все печати не статические, форма динамическая, размеры её разные, просто на 1 странице как правило 6 печатей и 6 подписей вылезает.
Подписи и печати от разных фирм + забит массив печатей + вывод от одной фирмы идет рандомный - "иммитация" как от руки..

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

По поводу "обрезания" картинок в активбмп, дык Z1 показал же как надо делать:
ActiveX.DstWidth = -1;
ActiveX.DstHeight = -1;


Да и .. Таб.Показать() как то не охота делать.
21. zarius 184 09.06.12 12:46 Сейчас в теме
(19) Если у тебя сейчас все работает - возможно лучше ничего и не трогать :)
У тебя расположение изображений (печати/подписи) в таблице статическое - при визуальном сравнении большого объема страниц - сразу выявляется закономерность в расположении печатей и подписей (тем более если есть повторяющиеся страницы). При использовании подхода, реализованного в классе - каждую печать/подпись можно сделать уникальной - вот здесь уже полноценная ""иммитация" как от руки.."

По поводу "обрезания" картинок в активбмп, дык Z1 показал же как надо делать:

Эту рекомендацию и использую + "ActiveX.Function = 1;", однако когда начинаю играть в другими свойствами - начинается шаманство... в общем думаю что самый простой вариант для доступа к свойствам АктивБМП - это переделать проц. ДобавитьИзображение(...) в функцию с возвратом ссылки на объект АктивБМП...

Да и .. Таб.Показать() как то не охота делать.

Чем не нравится решение в (11)? Конечно не совсем удобно - но тем не менее это решение...

Да, страничек вылезает иной раз и по 100 штук.. следовательно картинок там - 600

Знакомые объемы... :)
23. Ёпрст 1063 20.06.12 13:22 Сейчас в теме
(21) решение в (11) не нравится скоростью, любой вывод формы на экран - всегда медленно, чем сразу на принтёр.
20. Ёпрст 1063 09.06.12 11:28 Сейчас в теме
Да, страничек вылезает иной раз и по 100 штук.. следовательно картинок там - 600
:)
22. Ёпрст 1063 20.06.12 13:20 Сейчас в теме
OcvitaBarcode.ocx, надеюсь, бесплатная ?
24. zarius 184 20.06.12 15:30 Сейчас в теме
(22)бесплатная, на сайте разработчика в архиве даже исходники есть http://ocvita.ru/content/view/89/1/, все это дело построено на основе опенсорсного проекта - библиотеки zint http://www.sourceforge.net/projects/zint...
26. zarius 184 20.06.12 15:39 Сейчас в теме
(24) тоже верно, но мне другие варианты пока на ум не приходят...
25. zarius 184 20.06.12 15:37 Сейчас в теме
кстати,
можно установить прозрачный цвет фона штрихкода, для этого свойству bgcolour следует присвоить значение "" (пустая строка)
, вот только надо ли оно - возможно изображение на слое под ШК сделает в этом случае ШК нечитаемым...
27. dudf 13.07.12 11:25 Сейчас в теме
2. ActiveX элемент управления bmp_1c.ocx (ActiveBMP) - автор Морев Андрей (Z1) (http://1c.proclub.ru/modules/mydownloads/personal.php?lid=2725&cid=111) - используется непосредственно для отображения картинок в таблице (обязательно)

Это разве обязательно? Через стандартную картинку запросто можно все вывести.
28. Ёпрст 1063 13.07.12 11:27 Сейчас в теме
(27) што именно ты через стандартную картинку выведешь ?
Печать с прозрачным фоном смогёшь?
:)
30. dudf 13.07.12 14:56 Сейчас в теме
(28) Ёпрст, нет, но мне и не нужно.
(29) Ёпрст, в свойствах картинки(текст) пишешь ПриВыводеКартинки(Таб.ТекущийОбъект,Файл) и добавляешь в код:

Функция ПриВыводеКартинки(Картинка, Файл)
	
	Картинка.РежимРисования(3);
	Картинка.Загрузить(Файл);
	
КонецФункции


Где файл - путь к готовой картинке. И эта функция будет вызываться при Таб.ВывестиСекцию.

Имхо если не нужны всякие повороты-перевороты, то в разы проще выходит.
32. Ёпрст 1063 13.07.12 15:20 Сейчас в теме
(30) :)))))))))

Еще раз : "с прозрачным фоном"
29. Ёпрст 1063 13.07.12 11:27 Сейчас в теме
И не просто так, а что еще и "динамически" картинка из файла всосалась ?
31. dudf 13.07.12 15:03 Сейчас в теме
А понимает ли Ocvita кириллицу? Просто если верить "На основе библиотеки zint", а с зинтом я уже крупно обломался, то какие еще есть пути?
34. zarius 184 13.07.12 15:24 Сейчас в теме
(31) кириллицу понимает - проверено на QR Code
Ёпрст; dudf; +2 Ответить
33. Ёпрст 1063 13.07.12 15:22 Сейчас в теме
Если че, активикс в этой работе нужен только для этих целей.
А как вставить картинку с прозрачным фоном статическую куда угодно, я и сам кого хошь научу.
Прикрепленные файлы:
СмотриСам.ert
35. dudf 13.07.12 15:31 Сейчас в теме
36. pvlunegov 157 21.10.13 15:58 Сейчас в теме
Спасибо, полезно для начала.
Пришлось долго копать о том, как подключать классы 1с++ к 1с.
Просьба автору добавить файл с комментарием, как данный класс подключать.
Мне как новичку пришлось угробить весь день элементарно для того чтобы понять что с этим файлом делать (.ert)/
Сначала думал, что все процедуры надо прописать в глобальном модуле.
Потом попробовал в обработке прописывать, не катило.
Короче весь мозг сломал угробил 3 часа и ничего не понял, как это все работает.
Все нужные плагину, указанные у вас установил, все норм.

Просьба для новичков инструкцию о том, как енто дело подключать к 1с.
37. zarius 184 21.10.13 16:29 Сейчас в теме
(36) думаю нет смысла в каждой публикации классов 1С++ (а таких не мало на ИС) проводить ликбез для новичков. Вам достаточно ознакомиться с документацией ВК 1С++ чтобы понять как и что подключать...
То, что Вам пришлось "долго копать" - думаю это время окупится многократно, если вы все еще на 7.7 и только начали смотреть в сторону 1С++.
38. zarius 184 21.10.13 17:40 Сейчас в теме
(36) для начала - очень простая и доступная статья 1С++ - это просто
39. YODDHA 49 30.04.15 10:58 Сейчас в теме
а в PDF, что бы сохранялась прозрачность, можно как то сделать?
40. zarius 184 30.04.15 14:26 Сейчас в теме
(39) а в чем проблема? формируете обычную таблицу (mxl), а потом сохраняете ее в PDF, например, через ёксель.
41. YODDHA 49 31.05.15 23:19 Сейчас в теме
(40) формирую, и сохраняю, и печать перестает быть прозрачной((((
42. YODDHA 49 31.05.15 23:52 Сейчас в теме
возможно использую не те длл, пути к ним в статье битые, и наверно то что нашел не совсем удачно, вы не могли бы мне прислать работающие дллки
43. zarius 184 01.06.15 12:09 Сейчас в теме
(42) Напрямую ёксель в этом классе не используется, но результат работы этого класса, полученный в виде таблицы можно легко этой ВК сохранить как PDF. Документация и сама компонента доступна на сайте автора: Yoksel
44. zarius 184 01.06.15 12:28 Сейчас в теме
(42) действительно сейчас есть проблемы с некоторыми ссылками на компоненты - напишите каких компонент не хватает - вышлю на почту
45. Zaletov 16 28.10.15 13:11 Сейчас в теме
Добрый день. немогу скачать компаненты TableDoc.dll и bmp_1c.ocx.
46. zarius 184 29.10.15 10:38 Сейчас в теме
(45)
TableDoc.dll - http://www.1cpp.ru/forum/YaBB.pl?num=1177688915/0
bmp_1c.ocx - пришлите почту - вышлю индивидуально
47. пользователь 29.10.15 12:01
Сообщение было скрыто модератором.
...
48. dekom3 1 13.12.15 21:18 Сейчас в теме
Помогите найти bmp_1c.ocx. Пожалуйста.
49. zarius 184 14.12.15 10:08 Сейчас в теме
(48) bmp_1c.ocx - отправил по почте
50. dekom3 1 14.12.15 11:58 Сейчас в теме
(49)

Низкий поклон.

Но...


Если ЗагрузитьВнешнююКомпоненту("TableDoc.dll") = 0 Тогда
	Предупреждение("Неудачная попытка загрузить TableDoc.dll");
	СтатусВозврата(0);  	Возврат;
КонецЕсли;

....................


Печ = СоздатьОбъект("ИзображенияДляТаблицы");
{Документ.ЗаказНаряд.Форма.Модуль(528)}: Неудачная попытка создания объекта (ИзображенияДляТаблицы)

Кого забыл подгрузить?
51. zarius 184 14.12.15 16:04 Сейчас в теме
TableDoc не загрузился - соотв. класс ИзображенияДляТаблицы так же не грузится
Файл TableDoc.dll есть?
52. dekom3 1 14.12.15 16:27 Сейчас в теме
(51)

Есть FileVersion : 0, 1, 1, 45
И в каталог базы пихал, и в Bin
ЗагрузитьВнешнююКомпоненту("TableDoc.dll") дает 1
и в модуле формы пробовал и в Глоб.Модуле
Может длл битый. Но больше найти тоже нигде не могу.


53. zarius 184 14.12.15 18:36 Сейчас в теме
(52) Такое ощущение, что класс не определен в defcls.prm
54. dekom3 1 14.12.15 19:01 Сейчас в теме
(53)
Если честно - не понимаю что такое defcls.prm.
А нет случайно маленького рабочего примера?
Ну и с самой длл-кой.

У меня задача следующая:
Есть Документ - Заказ-Наряд. Печатная форма разделена на две части вертикально. Справа 3 табличные части в разными количествами строк (Может быть 15,2,4, а может 3,14,3). А слева рисунок примерно на 25 строк. Хочется как-то оптимальненько реализовать.
55. zarius 184 15.12.15 11:09 Сейчас в теме
(54) если внимательно почитать заголовок, то в нем можно увидеть "Класс 1С++"
Как подключать классы 1С++ - необходимо смотреть документацию на 1cpp.ru. Если совсем по простому - статья 1С++ - это просто.

В вашем случае надо создать файл в каталоге ИБ (если его еще нет) defcls.prm и добавить в него определение для класса ИзображенияДляТаблицы:
класс ИзображенияДляТаблицы= Классы\ИзображенияДляТаблицы.ert
{
};

Соотв. в каталоге ИБ в каталог Классы положить обработку с классом из данной публикации.

А вообще данные вопросы уже поднимались в обсуждении - (37) (38).
56. gamletspb77 18.01.16 16:47 Сейчас в теме
а не поможет кто с компонентой bmp_1c.ocx - нигде живую ссылку найти не могу??
а то без нее походу не заводится

email: gamlet77@gmail.com
57. zarius 184 18.01.16 20:21 Сейчас в теме
58. gamletspb77 19.01.16 09:36 Сейчас в теме
(57) спасибо.
Однако не работает: bmp картинку выводит (при этом цвета корявит со страшной силою), все что не bmp не выводит вообще - выдает пустой объект. GFLAx вроде подключен (по крайней мере не ругается на него). В чем может быть проблема?


	Таб = СоздатьОбъект("Таблица");
	Таб.ИсходнаяТаблица("Таблица1");
	
	Таб.Вывести();
	Таб.Показать();
	
	ИТаб = СоздатьОбъект("ИзображенияДляТаблицы");
	ИТаб.ПодключитьТаблицу(Таб);
	
	ИТаб.ДобавитьИзображение(1,2,100,100,"D:\Локальные документы\1С77\Test_SQL - копия\Pic\Koala.bmp",2);
	ИТаб.ДобавитьИзображение(2,5,100,100,"D:\Локальные документы\1С77\Test_SQL - копия\Pic\Koala.jpg",2);
Показать
Прикрепленные файлы:
59. zarius 184 28.01.16 16:21 Сейчас в теме
(58) если не выводит ничего кроме bmp - значит проблемы с GFLAx, ибо именно он перед выводом конвертирует изображение в bmp.
60. OldCadet 17.04.16 19:43 Сейчас в теме
(57)

Добрый день.

И мне скиньте плиз bmp_1c.ocx на

dutoff@rambler.ru
61. zarius 184 18.04.16 15:51 Сейчас в теме
62. Maddy18 44 06.12.16 19:31 Сейчас в теме
Добрый вечер.

Можно и мне bmp_1c.ocx на info@1carhipov.ru ?
63. zarius 184 10.12.16 20:21 Сейчас в теме
64. james404 26 12.09.17 17:43 Сейчас в теме
(63)
Добрый вечер.

Пожалуйста пришлите и мне bmp_1c.ocx на 721505@bk.ru

Заранее спасибо!
65. zarius 184 13.09.17 13:59 Сейчас в теме
66. PNTRL 27.04.18 00:46 Сейчас в теме
Добрый вечер.

Пожалуйста пришлите bmp_1c.ocx на penetralia@rambler.ru

Заранее спасибо!
67. zarius 184 27.04.18 12:23 Сейчас в теме
68. PNTRL 28.04.18 23:38 Сейчас в теме
69. alexrav 09.06.18 00:08 Сейчас в теме
Добрый вечер.

Можно и мне bmp_1c.ocx на alexregis@bk.ru ?


Заранее спасибо!
70. zarius 184 09.06.18 10:04 Сейчас в теме
71. kras_71 72 24.09.18 16:08 Сейчас в теме
Пожалуйста пришлите bmp_1c.ocx на kras_71@mail.ru
72. zarius 184 24.09.18 20:00 Сейчас в теме
73. FAMыч 30.09.18 11:43 Сейчас в теме
Доброго времени суток!

Если не трудно, вышлите bmp_1c.ocx на nk374@mail.ru

Заранее спасибо.
74. zarius 184 01.10.18 10:54 Сейчас в теме
75. пользователь 24.10.18 10:56
Сообщение было скрыто модератором.
...
76. пользователь 14.11.18 22:53
Сообщение было скрыто модератором.
...
77. пользователь 14.11.18 22:53
Сообщение было скрыто модератором.
...
78. sergu1963 09.12.18 16:49 Сейчас в теме
Доброе время суток!
Пожалуйста, вышлите TableDoc.dll и bmp_1c.ocx на sergu1963@yandex.ru.
Заранее благодарю.
79. zarius 184 10.12.18 20:01 Сейчас в теме
80. aleksdbs 18.12.18 19:34 Сейчас в теме
Прошу скинуть bmp_1c.ocx и text_1c.ocx на aleksdbs@gmail.com
81. aleksdbs 18.12.18 19:42 Сейчас в теме
Прошу скинуть bmp_1c.ocx и text_1c.ocx на aleksdbs@gmail.com
Спасибо!
82. zarius 184 19.12.18 11:03 Сейчас в теме
83. Seneka7608 7 24.12.18 12:01 Сейчас в теме
Приветствую!
Я со стандартным в этой теме вопросом, тоже прошу скинуть bmp_1c.ocx и text_1c.ocx на sergenii@mail.ru
Заранее, спасибо!
84. zarius 184 26.12.18 16:12 Сейчас в теме
85. demetrius2003 28.03.19 18:34 Сейчас в теме
Если Вас не затруднит - скиньте bmp_1c.ocx и text_1c.ocx на nikservice[собака]rambler.ru. Спасибо!
P.S.: Если не сложно, с примером использования в 1с 77
86. zarius 184 29.03.19 10:36 Сейчас в теме
(85) Выслал. Пример добавления в таблицу подписи с печатью есть в описании публикации.
demetrius2003; +1 Ответить
87. IMS 10.04.19 15:34 Сейчас в теме
Добрый день.
Я с тем же вопросом, прошу скинуть bmp_1c.ocx и text_1c.ocx на igorms1342@gmail.com
Заранее, спасибо!
88. zarius 184 10.04.19 18:46 Сейчас в теме
90. zarius 184 11.04.19 09:39 Сейчас в теме
(87) (89) отправил ссылку через ЛС
89. IMS26 10.04.19 21:48 Сейчас в теме
Прошу скинуть bmp_1c.ocx и text_1c.ocx
Заранее, спасибо!
91. пользователь 17.09.19 08:54
Сообщение было скрыто модератором.
...
92. systemaooo2007 16.11.19 10:15 Сейчас в теме
Прошу скинуть bmp_1c.ocx и text_1c.ocx на systemaooo@gmail.com
Спасибо!
94. zarius 184 18.11.19 14:51 Сейчас в теме
93. CheBurator 3119 16.11.19 21:51 Сейчас в теме
проблема не вставить картинку. проблема чтобы прайс с каринками, даже достаточно маленькими не весил по 15-25 Мб в экселе.
95. zarius 184 18.11.19 15:15 Сейчас в теме
(93) ActiveBMP работает только с bmp - отсюда и размер. В моих задачах не было необходимости сохранять итоговые таблицы (только печать), поэтому проблемой размера не озадачивался. Возможно проблема решится архивированием итоговой таблицы?
96. CheBurator 3119 18.11.19 15:56 Сейчас в теме
(95) частично решается. но это костыль.
97. ray1978 24.12.19 15:42 Сейчас в теме
Здравствуйте.

Может кто подскажет по OcvitaBarcode.ocx
Умотался я уже с ней и с 1с 77

Суть в том, что, я хочу в обработке в табличной части (в конфигураторе) добавить ее как объект,
чтобы можно было бы затем в коде передавать на нее данные.
Это аналогично с объектом barcode.ocx
Правда, часто мы просто из типовой копируем этот объект в таблицу нашей обработки и дальше работаем.
Более того, на ИТС дается такой же ответ, что копируйте.

А вот OcvitaBarcode.ocx копировать неоткуда.

Можно добавить через объект лист MicrosoftExcel, куда этот объект вставляется и должен через буфер копироваться в 1с.
Однако, здесь другая засада.
MicrosoftExcel пишет что "Вставка объекта неосуществима" (OcvitaBarcode)
Тоже самое пишет относительно вставки объекта ActiveBarcode.

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

В общем, может кто подскажет, как иначе запихать объект в таблицу в обработке 1с77 в конфигураторе.
Может есть иные программы, куда можно вставить объект OcvitaBarcode, а далее путем копирования вставить в 1с 77.

Кстати, способ копирования из макетов 1с 8.2 в таблицу обработки 1с 77 ничего не получилось: копируется, но на момент вставки, команда вставить не активная.

В общем, нужен действенный совет.
Спасибо
98. zarius 184 25.12.19 12:19 Сейчас в теме
(97) Я возможно не до конца понял что Вы хотите. Если нужен объект OcvitaBarcode в таблице 1С 77 - почему бы не воспользоваться данным классом - сформировать таблицу и методом ДобавитьШК_Оквита добавить данный объект в таблицу. Далее уже делайте с выведенным объектом что угодно в рамках 1С 77 - в т.ч. в конфигураторе. Для примера сформировал данным классом таблицу с объектом OcvitaBarcode и сохранил ее (во вложении). Откройте данный файл у себя, если ActiveX OcvitaBarcode.ocx зарегистрирован в системе - все должно открыться без проблем.
Прикрепленные файлы:
Таблица_с_ОКВИТА.mxl
99. ray1978 25.12.19 14:21 Сейчас в теме
(98)

Спасибо за прикрепленный файл с вставленным объектом.

Суть моего вопроса в том, как это сделать самому.
Я знаю всего лишь пару вариантов, как это делать. Все они - стандартные.

первый: скопировать объект из уже имеющейся таблицы

второй: штатными средствами 1с 77 вставить объект. а, поскольку в списке его нет, то пробую через лист excel. предполагается, что в excel можно (или когда-то это было можно) вставить объект (а он уже там есть в списке). Затем из листа excel этот объект через буфер копируется в таблицу 1с 77.

Засада в том, что на лист excel объект не вставляется. пишет ошибку "вставка объекта неосуществима"

Иных способов я не знаю. Вот хотел узнать как иначе кто-то вставляет.

К сожалению, я не смог для себя уловить решения из того, что Вы мне подсказали
"... почему бы не воспользоваться данным классом - сформировать таблицу и методом ДобавитьШК_Оквита добавить данный объект в таблицу..."

Если Вы могли бы подсказать более детально, был бы вам очень признателен.

Спасибо
Оставьте свое сообщение