Класс 1С++ для программного добавления изображений/текста/ШК в таблицу
Разработка - Работа с интерфейсом
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
Класс "ИзображенияДляТаблицы" вер. 1.3
.ert 48,50Kb
201
|
201 | 2 500 руб. Купить | 1 SM Скачать |
|
Класс "ИзображенияДляТаблицы" вер. 1.2
.ert 47,00Kb
9
|
9 | 2 500 руб. Купить | 1 SM Скачать |
|
Класс "ИзображенияДляТаблицы" вер. 1.1
.ert 45,50Kb
14
|
14 | 2 500 руб. Купить | 1 SM Скачать |
|
Класс "ИзображенияДляТаблицы" вер. 1.0
.ert 45,00Kb
20
|
20 | 2 500 руб. Купить | 1 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Буквально на днях встала задача программного размещения картинок в уже сформированной таблице, при этом картинки должны были быть с прозрачным фоном. Как результат изысканий появился данный класс - возможно кому-нибуть пригодится.
Что может:
Размещать в произвольном месте в таблице картинки с прозрачным фоном, с возможностью произвольного смещения картинки по оси 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
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Работа с интерфейсом Пользователь 1С:Предприятие 7.7 1C77 Абонемент ($m)
Часто встречающаяся проблема: потерялось Окно сообщений. Обработка исправляет эту "проблему" одним нажатием кнопки. Для обычных пользователей. Не требует программирования. Достаточно запустить обработку и нажать кнопку "Выполнить".
5 стартмани
17.01.2025 3299 2 CheBurator 13
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Создание и использование на формах в среде 1С 7.7 прогрессбара, индикатора, как в 1С 8.Х для контроля над длительными процессами. Реализовано средствами языка программирования 1С 7.7.
1 стартмани
06.06.2024 3336 3 user1416274 17
Работа с интерфейсом Логистика, склад и ТМЦ Системный администратор Разработчик Пользователь 1С:Предприятие 7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)
Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".
2541 руб.
18.10.2022 8955 4 45
Инструментарий разработчика Работа с интерфейсом Разработчик 1С:Предприятие 7.7 Абонемент ($m)
Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.
1 стартмани
30.03.2022 7338 2 igor7777 4
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Публикация имеет цель обратить внимание на возможность улучшения интерфейса.
15.12.2021 7992 120 Cерый 15
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Программный прием запрета максимизации формы
18.04.2021 4558 CheBurator 10
Работа с интерфейсом Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.
1 стартмани
09.06.2020 9624 4 vap_pig 5
Учет рабочего времени Работа с интерфейсом Разработчик Бухгалтер Пользователь 1С:Предприятие 7.7 1C77 Россия Абонемент ($m)
Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.
1 стартмани
18.09.2019 15567 8 Jill 8
Есть несколько же методов - растягивание под размер картинки, пропорцианально, оригинальный размер , сохранение пропорций + вписывание в окошко и т.д..
Вот это нужно в свойство класса воткнуть, у активбмп это есть.
А так, не совсем удобно размещать по пикселям - подходит только для статических форм.
У меня по 3-4 печати с подписями за раз выводится - мне проще в макете разместить картинку в выводимой секции.
Класс не качал, есть ли возможность вставить картинку относительно ячеек мокселя ?
Скажем в R1C122 - в левый верхний угол этой ячейки ?
Т.е задавать координаты ячейки, например.
не вопрос - можно все свойства активбмп перенести в свойства класса - сейчас просто реализован самый простой - но самое главное - работающий вариант. Добавил объект необходимого размера на форму - и картинка будет именно этого размера. Когда игрался с другими свойствами активбмп - было какое то шаманство - на экране одно - при печати другое (читал - но рекомендации Z1 как то не особо помогли в этом плане).
а если надо не статические 3-4, а 20-30 в одной таблице, при этом места и состав подписей/печатей может меняться? :)
Может.
ДобавитьИзображение(Лево, Верх, Право, Низ, Путь, Тип) - добавление изображения в таблицу
Лево, Право, Верх, Низ - координаты добавиления изображения в таблицу (см. "тип")
Путь - путь к файлу изображения
Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла
Тип - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла
(14)
Так можно и показывать и не показывать - как душе угодно...
однако если используешь 7.7 - настоятельно рекомендую посмотреть в сторону 1С++ - временные затраты на это окупятся многократно...
Самый простой вариант в этом случае - использовать:
... заполнение таблицы
Таблица.Показать(,,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)
1. GFLAx - точно заработает
2. bmp_1c.ocx - скорее всего тоже должен заработать - надо пробовать
Осталось найти возможность программно добавлять ОЛЕ-объекты в таблицу 8.2
У меня все печати не статические, форма динамическая, размеры её разные, просто на 1 странице как правило 6 печатей и 6 подписей вылезает.
Подписи и печати от разных фирм + забит массив печатей + вывод от одной фирмы идет рандомный - "иммитация" как от руки..
Твоим способом, пришлось бы каждый раз вычислять положение 12 картинок на каждой страничке.. а как у меня - тупо вывод штатненько в макете, только картинки разные подсовываются.
По поводу "обрезания" картинок в активбмп, дык Z1 показал же как надо делать:
ActiveX.DstWidth = -1;
ActiveX.DstHeight = -1;
Да и .. Таб.Показать() как то не охота делать.
У тебя расположение изображений (печати/подписи) в таблице статическое - при визуальном сравнении большого объема страниц - сразу выявляется закономерность в расположении печатей и подписей (тем более если есть повторяющиеся страницы). При использовании подхода, реализованного в классе - каждую печать/подпись можно сделать уникальной - вот здесь уже полноценная ""иммитация" как от руки.."
Эту рекомендацию и использую + "ActiveX.Function = 1;", однако когда начинаю играть в другими свойствами - начинается шаманство... в общем думаю что самый простой вариант для доступа к свойствам АктивБМП - это переделать проц. ДобавитьИзображение(...) в функцию с возвратом ссылки на объект АктивБМП...
Чем не нравится решение в (11)? Конечно не совсем удобно - но тем не менее это решение...
Знакомые объемы... :)
Это разве обязательно? Через стандартную картинку запросто можно все вывести.
(29) Ёпрст, в свойствах картинки(текст) пишешь ПриВыводеКартинки(Таб.ТекущийОбъект,Файл) и добавляешь в код:
Функция ПриВыводеКартинки(Картинка, Файл)
Картинка.РежимРисования(3);
Картинка.Загрузить(Файл);
КонецФункцииГде файл - путь к готовой картинке. И эта функция будет вызываться при Таб.ВывестиСекцию.
Имхо если не нужны всякие повороты-перевороты, то в разы проще выходит.
А как вставить картинку с прозрачным фоном статическую куда угодно, я и сам кого хошь научу.
Пришлось долго копать о том, как подключать классы 1с++ к 1с.
Просьба автору добавить файл с комментарием, как данный класс подключать.
Мне как новичку пришлось угробить весь день элементарно для того чтобы понять что с этим файлом делать (.ert)/
Сначала думал, что все процедуры надо прописать в глобальном модуле.
Потом попробовал в обработке прописывать, не катило.
Короче весь мозг сломал угробил 3 часа и ничего не понял, как это все работает.
Все нужные плагину, указанные у вас установил, все норм.
Просьба для новичков инструкцию о том, как енто дело подключать к 1с.
То, что Вам пришлось "долго копать" - думаю это время окупится многократно, если вы все еще на 7.7 и только начали смотреть в сторону 1С++.
Низкий поклон.
Но...
Если ЗагрузитьВнешнююКомпоненту("TableDoc.dll") = 0 Тогда
Предупреждение("Неудачная попытка загрузить TableDoc.dll");
СтатусВозврата(0); Возврат;
КонецЕсли;
....................Печ = СоздатьОбъект("ИзображенияДляТаблицы");
{Документ.ЗаказНаряд.Форма.Модуль(528)}: Неудачная попытка создания объекта (ИзображенияДляТаблицы)
Кого забыл подгрузить?
Если честно - не понимаю что такое defcls.prm.
А нет случайно маленького рабочего примера?
Ну и с самой длл-кой.
У меня задача следующая:
Есть Документ - Заказ-Наряд. Печатная форма разделена на две части вертикально. Справа 3 табличные части в разными количествами строк (Может быть 15,2,4, а может 3,14,3). А слева рисунок примерно на 25 строк. Хочется как-то оптимальненько реализовать.
Как подключать классы 1С++ - необходимо смотреть документацию на . Если совсем по простому - статья .
В вашем случае надо создать файл в каталоге ИБ (если его еще нет) defcls.prm и добавить в него определение для класса ИзображенияДляТаблицы:
класс ИзображенияДляТаблицы= Классы\ИзображенияДляТаблицы.ert
{
};Соотв. в каталоге ИБ в каталог Классы положить обработку с классом из данной публикации.
А вообще данные вопросы уже поднимались в обсуждении - (37) (38).
а то без нее походу не заводится
email: gamlet77@gmail.com
Однако не работает: 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); Показать
Я со стандартным в этой теме вопросом, тоже прошу скинуть bmp_1c.ocx и text_1c.ocx на sergenii@mail.ru
Заранее, спасибо!
P.S.: Если не сложно, с примером использования в 1с 77
Спасибо!
Может кто подскажет по OcvitaBarcode.ocx
Умотался я уже с ней и с 1с 77
Суть в том, что, я хочу в обработке в табличной части (в конфигураторе) добавить ее как объект,
чтобы можно было бы затем в коде передавать на нее данные.
Это аналогично с объектом barcode.ocx
Правда, часто мы просто из типовой копируем этот объект в таблицу нашей обработки и дальше работаем.
Более того, на ИТС дается такой же ответ, что копируйте.
А вот OcvitaBarcode.ocx копировать неоткуда.
Можно добавить через объект лист MicrosoftExcel, куда этот объект вставляется и должен через буфер копироваться в 1с.
Однако, здесь другая засада.
MicrosoftExcel пишет что "Вставка объекта неосуществима" (OcvitaBarcode)
Тоже самое пишет относительно вставки объекта ActiveBarcode.
Об этой ошибке много чего написано на просторах инета, но, к сожалению, мне ее не удалось победить у себя на трех ПК. Везде разные ОС, разные офисы. Ничего не помогает из советов: ни удаление обновлений, ни удаление спец.файлов, ни замена библиотек.
В общем, может кто подскажет, как иначе запихать объект в таблицу в обработке 1с77 в конфигураторе.
Может есть иные программы, куда можно вставить объект OcvitaBarcode, а далее путем копирования вставить в 1с 77.
Кстати, способ копирования из макетов 1с 8.2 в таблицу обработки 1с 77 ничего не получилось: копируется, но на момент вставки, команда вставить не активная.
В общем, нужен действенный совет.
Спасибо
Спасибо за прикрепленный файл с вставленным объектом.
Суть моего вопроса в том, как это сделать самому.
Я знаю всего лишь пару вариантов, как это делать. Все они - стандартные.
первый: скопировать объект из уже имеющейся таблицы
второй: штатными средствами 1с 77 вставить объект. а, поскольку в списке его нет, то пробую через лист excel. предполагается, что в excel можно (или когда-то это было можно) вставить объект (а он уже там есть в списке). Затем из листа excel этот объект через буфер копируется в таблицу 1с 77.
Засада в том, что на лист excel объект не вставляется. пишет ошибку "вставка объекта неосуществима"
Иных способов я не знаю. Вот хотел узнать как иначе кто-то вставляет.
К сожалению, я не смог для себя уловить решения из того, что Вы мне подсказали
"... почему бы не воспользоваться данным классом - сформировать таблицу и методом ДобавитьШК_Оквита добавить данный объект в таблицу..."
Если Вы могли бы подсказать более детально, был бы вам очень признателен.
Спасибо
1. Если хотите просто добавить в таблицу обработки объект OcvitaBarcode - можете воспользоваться таблицей из 97.
2. Если есть задача программно размещать объекты OcvitaBarcode в любой таблице 1С 77 - можете воспользоваться классом из данной публикации. Функционал есть в описании публикации. Как подключать класс к 1С - есть в комментариях выше.
Я хотел знатьУметь как добавить самому объект в таблицу: без всяких копирований, а программно мне не надо.
Вот у меня есть на руках OcvitaBarcode.ocx и 1с77 (таблица в обработке)
Вопрос, как мне все сделать, так сказать с познавательной целью.
Спасибо
1. Через "Таблица"-"Вставить рисунок"-"Объект". Но тут отображаются далеко не все объекты, зарегистрированные в системе. Поэтому вариант на 90% не рабочий.
2. Через копирование объекта из другого приложения (word, excel, calc и т.д.), где можно на форме разместить данный объект. Как видно из Вашего опыта - срабатывает так же не для всех объектов.
3. Воспользоваться TableDoc.dll и его методом СоздатьЭлементРисования, чтобы программно разместить объект в таблицу. В классе "ИзображенияДляТаблицы" как раз используется данный метод.
4. Через копирование объекта из таблицы 1С 7.7.
У кого есть возможность поделиться bmp_1c.ocx - помогите на henson.sd*gmail.com
А то уже отчаялся найти...
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Шапка");
Таб.Показать(0);
Печ = СоздатьОбъект("КОП_ИзображенияДляТаблицы");
Печ.ПодключитьТаблицу(Таб);
Печ.ЕстьПроизвольноеСмещение = 1;
Печ.ЕстьПроизвольныйПоворот = 1;
Печ.ПроизвольныйПоворотНач = -ГрадусПоворота;
Печ.ПроизвольныйПоворотКон = ГрадусПоворота;
Печ.ДобавитьИзображение(2,5,245,245,"d:\вектор.bmp",0);
Таб.Показать(1); ПоказатьПри ГрадусПоворота=0 все нормально, при другом жуткая муть.
А можно ли после добавления изображения в таблицу и после показа таблицы, по какому-нибудь событию удалить это изображение?
Например что-то типа такого:
...
ОбъектИзображение = Печ.ДобавитьИзображение(300,150,430,280,"C:\Печать.gif",0);
...
Процедура СобытиеХХХ ()
Печ.УдалитьИзображение(ОбъектИзображение);
КонецПроцедуры
Можно так сделать?
Варианты, которые приходят в голову:
1. Вывести по этим же координатам другое изображение, но с прозрачным фоном придется попрощатся.
2. Можно попробовать что-то поделать с ячейками где выводится изображение стандартными средствами 1С
3. Можно попробовать что то поделать с объектом "SheetDrawing" ВК TableDoc.dll, средствами которой данный класс выводит картинки в таблицу.
Это не подходит.
(142)
Вроде бы у типового объекта "Таблица" нету никаких методов для удаления или очистки ячеек.
(142)
А что с ним можно поделать?
У него всего два метода "ПолучитьПозицию" и "УстановитьПозицию". В документации больше ничего не написано.
Получается, ни один из вариантов не "работает"?
:(
В режиме редактирования у таблицы можно удалить ячейки.
Значит, должен быть какой-то метод, выполняющий данную функцию. Но в документации про это не написано.
Но обнаружился один неприятный момент.
Вывести картинку таким способом можно только после вызова метода "Таб.Показать()" (то есть только при предварительном просмотре)?
А как быть, если нужно вывести печатную форму сразу на принтер?
Рейтинг: 189
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 138263
Создание 03.06.12 02:27
Обновление 29.10.15 11:02
Просмотры 268771
Загрузки 244
Рейтинг
51
Комментарии 131
Код открыт Не указано
Рубрики Работа с интерфейсом
Кому Разработчик
Тип файла Компонента, плагин (dll, vbs,..)
Платформа
1С:Предприятие 7.7
,
Оперативный учет 7.7
,
Бухгалтерский учет 7.7
,
Расчет 7.7
Конфигурация 1C77
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)