|
Замена картинки в Word | ☑ | ||
---|---|---|---|---|
0
ffess
26.02.15
✎
12:19
|
Здравствуйте, коллеги.
Нужно программно из 1С добавить штрих-код к документу Word. Штрих-код должен быть размещен в определенном пользователем месте. Пока что склоняюсь к такому решению: с помощью компоненты от 1С формировать картинку со штрих-кодом и вставлять ее вместо картинки, которую пользователь разместит в документе Word. Однако столкнулся с проблемой - не могу найти примеры, как можно из 1С заменить одну картинку в Word на другую. Может кто подскажет как найти в Word определенную картинку и заменить её на свою? Или, если кто сталкивался с аналогичной задачей, то как в итоге решили? |
|||
1
DrZombi
гуру
26.02.15
✎
12:33
|
(0) Делай это через Запись Макроса в офисе.
А в 1С уже пишешь работу по ОЛЕ :) |
|||
2
Остап Сулейманович
26.02.15
✎
12:36
|
(0) Не взлетит.
Именно вот это вот : "с помощью компоненты от 1С формировать картинку со штрих-кодом и вставлять ее вместо картинки". |
|||
3
DrZombi
гуру
26.02.15
✎
12:38
|
(2) Почему?
Записать её в файл. И уже вставлять через макрос, этот файл в Ворд :) |
|||
4
Остап Сулейманович
26.02.15
✎
12:40
|
(3) "Записать её в файл". Кого? Компонента <> Картинка.
|
|||
5
Остап Сулейманович
26.02.15
✎
12:41
|
+ (4) Вот вставить ее (компоненту) в Вордовский документ и по ОЛЕ установить свойства из 1С - это да. Так отработает.
|
|||
6
DrZombi
гуру
26.02.15
✎
12:43
|
+(0)
Sub Макрос1() ' ' Макрос1 Макрос ' ' Selection.InlineShapes.AddPicture FileName:= _ "C:\Users\\Pictures\1.jpg", LinkToFile:=False, _ SaveWithDocument:=True (4) Да, картинка пишется в файл, знай это! :) |
|||
7
DrZombi
гуру
26.02.15
✎
12:44
|
(5) Вы не в курсе :)
|
|||
8
DrZombi
гуру
26.02.15
✎
12:45
|
+(6) Остается только определится с координатами и размером картинки :)
|
|||
9
ffess
26.02.15
✎
13:30
|
(5) Остап Сулейманович, подскажите, как вставить компоненту в Вордовский документ и потом через OLE найти её?
|
|||
10
ffess
26.02.15
✎
13:32
|
(8) DrZombi, как раз это и проблема, установить картинку в нужное место, которое определяет пользователь
|
|||
11
DrZombi
гуру
26.02.15
✎
13:37
|
(10) Это не проблема. Просто Пиши макрос и смотри, как он там выставляет координаты картинки и нужные свойства.
|
|||
12
DrZombi
гуру
26.02.15
✎
13:38
|
+(10) Вот тема v8: v8: Как добавить картинки в Word из 1С
|
|||
13
DrZombi
гуру
26.02.15
✎
13:42
|
+(10) v8: Как программно вставить в картинку в Ворд?
v8: Вставить файл .pdf картинкой в .word или http://yandex.ru/yandsearch?text=Вставить%20Картинку%20в%20ворд%20из%201С&from=fx3&clid=1909644 А лучше http://yandex.ru/yandsearch?lr=54&text=Вставить+Картинку+в+ворд+из+1С+site%3Aforum.mista.ru&csg=0%2C392%2C50%2C1%2C0%2C0%2C0&suggest_reqid=227276714140429452573264683848147 |
|||
14
ffess
26.02.15
✎
13:48
|
(12) эту темы я смотрел). Про Яндекс тоже слышал). Как добавить картинку в Word уже знаю.
Проблема в том, чтобы вставить картинку туда, куда захочет пользователь в будущем. Как писать макрос на действия пользователя, которых ещё нет? Предполагалось что пользователь сам поставит некую шаблонную картинку в произвольное место, а обработка заменит его картинку на картинку со штрих-кодом, которую сама сгенерит. |
|||
15
osa1C
26.02.15
✎
15:20
|
(0) Документ Word формируется из 1С ?
|
|||
16
ffess
26.02.15
✎
17:04
|
(15) Шаблон документ Word формируют сотрудники. Впоследствии заполняется данными из 1С и нужно ещё добавить штрих-код.
|
|||
17
osa1C
26.02.15
✎
17:31
|
(16) Пусть юзверь ставит на месте картинки пометки вроде {НачалоКартинки {/КонецКартинки, а потом из 1С ищем эти пометки и между ними вставляем картинку. (Пометки удаляем посимвольно)
|
|||
18
Torquader
26.02.15
✎
19:38
|
Самый простой способ вставки Штрих-кода в любое место - это специальный Шрифт, который представляет собой штрихи для Штрих-кода.
Можно не только в Word, но и в любом месте, где можно задавать шрифты, нарисовать Штрих-код без проблем. P.S. в Word или Excel есть объект "Диаграмма", при определённых действиях с ним вместо диаграммы рисуется Штрих-код. |
|||
19
osa1C
27.02.15
✎
08:08
|
(0) + (16) Делал так. Создал первоначальный шаблон Word сам. в котором текстовая информация заключена в таблицу (с невидимыми границами), таблицы (те что должны быть таблицами на выходе) нарисованы в виде двух-трех строк + строка итогов. Для картинок делал выделенную позицию.
Все это делилось на области вида: <ОбластьТекстШапки>...<ОбластьТекстШапки/>, <ОбластьСтрокаТаблицы>...<ОбластьСтрокаТаблицы/> <Картинка> <Картинка/>(начало /конец области) и т.д. В тексте и таблицах необходимая из 1С информация вставлялась по меткам вида <Организация>, <ЮрАдресОрганизации> и т.д. Также через переменные и метки заполняются таблицы. В строке таблицы например: <Номенклатура> <Цена>, <Количество>, <Сумма>. ПОД КАРТИНКИ ОТВОДИТСЯ ОТДЕЛЬНАЯ ОБЛАСТЬ. заключённая в таблицу без границ (для того, чтобы не было смещения области картинки). Далее этот шаблон из Word выставляется как шаблон в 1С и заполняется. При изменении шаблона юзвер меняет в Word всё как ему надо, не трогая служебные метки (их в шаблоне лучше сразу красным пометить), отредактированный шаблон грузиться в 1С на место старого и упппс... готово. p.s. при сильном изменении первоначального шаблона. лучше сохранять в шаблонах отчёта 1С оба. и при необходимости прописывать использование отчётом нужного в данный момент шаблона |
|||
20
osa1C
27.02.15
✎
08:14
|
(0) Простите за сумбурные объяснения... торопился писать, времени мало было... На доп. вопросы отвечу, могу прислать пример.
|
|||
21
Симпатяга
27.02.15
✎
08:14
|
(0) если картинку сохранили в файл, то можно её вставить в документ Word использую закладки.
Шаблон.Bookmarks("ИмяЗакладки").Range.Select(); Selection = Word.Selection; Попытка Picture = Selection.InlineShapes.AddPicture(СсылкаНаФайлКартинки, Ложь, Истина); // Зададим размер Picture.Height = 300; Picture.Width = 500; Исключение КонецПопытки; |
|||
22
osa1C
27.02.15
✎
08:18
|
(21) Как я понял у ТС нет точного места вставки картинки, это место определяет юзверь, поэтому имхо надо чтобы сначала юзверь в шаблоне Ворд нарисовал таблицу на нужном для картинки месте (с размерами соответствующими), и только потом по меткам в эту таблицу вставляется картинка
|
|||
23
НоваяВолна
27.02.15
✎
08:37
|
Интересно ведь, как ТС решил вопрос. ТС расскажи уже, не томи : )
|
|||
24
Симпатяга
27.02.15
✎
08:49
|
(19) Насколько я помню, если добавляешь новую таблицу в макет ворд, то нумерация таблиц едет. Она в документе по порядку.
Так что если в обработке есть заполнение таблицы с обращением к ней по номеру, то придется этот момент учесть |
|||
25
osa1C
27.02.15
✎
10:05
|
(24) Нумерация таблиц в Word не имеет значения в данном случае. Таблицы создаются в макете Word для всего (текста, таблиц. картинок, диаграмм). Задача создания таблиц в макете в том, чтобы определить нужные координаты расположения всех этих блоков. В макете Word пользователь расставляет все по своим местам (как выглядеть должно)
|
|||
26
osa1C
27.02.15
✎
10:07
|
(25)+ всё остальное, как в (19)
|
|||
27
Симпатяга
27.02.15
✎
10:09
|
(25) тогда таблица должна быть одна наверное.
|
|||
28
Симпатяга
27.02.15
✎
10:09
|
(27) + со сложной структурой
|
|||
29
osa1C
27.02.15
✎
11:52
|
(27) Не уверен, что вы поняли задачу. В (19) решение по шаблону word. Имхо ТС нужен шаблон. который составляет юзер, с местом для вставки штрих-кода. Это место выделяется в шаблоне word таблицей, а таблица имеет свои координаты
|
|||
30
ffess
27.02.15
✎
17:20
|
(29) osa1C, спасибо за участие! Совершенно неожиданно сотрудники решили формировать макет в формате mxl, так что тема пока теряет актуальность.
До момента, когда они это решили, надумал сделать так: В нужном пользователю месте они пишет ключевое слово, например <#ШТРИХКОД#>; Обработка ищет такие слова и вставляет в эти места сгенерированную 1С компонентой картинку штрих-кода; затем удаляет эти ключевые слова. Предлагаемое в (19) решение с двумя шаблонами плохо понял, пришлите, пожалуйста, пример на [email protected] |
|||
31
ffess
27.02.15
✎
17:45
|
(18) Специальный шрифт хорош, когда уверен что у контрагента, которому высылаешь документ Word установлен такой же)
Изначально этот вариант рассматривался в первую очередь. Потом задача несколько раз поменялась) В итоге будет формироваться pdf на основании макетов 1С. |
|||
32
osa1C
02.03.15
✎
10:24
|
(30) Всё вы прекрасно поняли... Есть один шаблон word для юзера, где все необходимые для заполнения из 1С области он помечает ключевыми словами. Только ключевых слов два, в вашем случае <#ШТРИХКОД#> - это начало области, далее в шаблоне рисуется таблица с невидимыми границами, с размерами для штрихкода и нужной позицией, потом должен быть определён конец области вставки: <////#ШТРИХКОД#> например. Данный шаблон грузится как макет в 1С и заполняется
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |