Имя: Пароль:
1C
1C 7.7
v7: Как из 1с послать на печать документ Word?
,
0 evgpinsk_
 
09.11.21
23:17
Собственно вопрос в заглавии. Хочется автоматизировать печать. Пусть есть десять счетов. У каждого счёта есть свой вордовский договор.
Хотелось бы по нажатию кнопки распечатать все эти договора, и с автоматической двусторонней печатью.
Это возможно?
Гугл толком ничего не подсказал
1 Ёпрст
 
09.11.21
23:28
Я нажми, правый верхний угол
2 evgpinsk_
 
09.11.21
23:57
Я помогло не многим больше чем G
)
3 timurhv
 
10.11.21
00:18
http://disk1c.ru/2016/07/
Принтер подцепить второй раз и выставить там двустороннюю печать
4 evgpinsk_
 
10.11.21
00:22
(3) Видел похожий код, но там также было только для 8ки
5 evgpinsk_
 
10.11.21
00:23
Хотя суть понял. попробую
6 evgpinsk_
 
14.11.21
22:25
Всё получилось, все договора выбранных счетов печатаются.
Одна загвоздка осталась:

В этих договорах изначально в виде рисунка вставлены печати (одна или две).
Перед распечаткой их нужно удалить (чтобы проставить оригиналы).

И почемуто код
Сообщить(Документ.InlineShapes.Count);
не находит эти рисунки, если рисунок имеет свойство обтекания "За текстом"

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

Никто случаем не сталкивался?
7 evgpinsk_
 
14.11.21
22:35
Правильно задал вопрос гуглу и нашёл:
"Когда рисунок имеет обтекание "за текстом" он уже не является объектом InlineShape , а является просто Shape."
8 evgpinsk_
 
14.11.21
22:46
Была ещё задумка: найти в вордовском договоре "Дату договора", и проверить чтобы дата договора в 1с совпадала с вордовской.
Но пока простого способа не вижу.

В ворде руками дату могут писать по разомну, в т.ч. и через пробелы "01 11 2021"  и не понятно как её находить
9 hhhh
 
15.11.21
00:11
(8) ну, 01 11 2021 то же самое, что и 01.11.2021. В чем проблема?
10 evgpinsk_
 
15.11.21
00:34
(9) Ещё много других вариантов дат можно придумать, например "_01_" 11 2021, или "_01_" ноября.2021.
Получается нужно из куска текста (например первые 3-4 строки) вычленить все слова и понять какое из них есть дата. Причём дату могут составлять и одно и два и три слова
11 evgpinsk_
 
15.11.21
00:40
И тут два варианта решения:
1) тупо на экран пользователю выводить для каждого договора первые строки договора и он глазами проверяет дату в договоре с датой в 1с (сейчас так и сделано)
2) всё-таки поизвращаться и программно попытаться определить дату для многих вариантов её написания
12 МихаилМ
 
15.11.21
00:53
(11) правильный вариант - "мальчик отойди от комъютера".
13 evgpinsk_
 
16.11.21
22:47
Вылезла ещё одна неприятность: процесс пакетной печати подвисает /причём незаметно для пользователя/ если попадается документ, у которого слишком маленькие границы и по мнению Word текст не влезет на страницу. при таком раскладе и 1с модально может подвиснуть.

Есть какие мысли как побороть?
14 evgpinsk_
 
16.11.21
22:49
(13)  "Причём незаметно для пользователя" - т.е. сам Word не хотелось бы визуально открывать, поэтому и не виден затык
15 hhhh
 
16.11.21
23:18
(11) тупо вычленить основные варианты ввода даты, и реализовать их, хотя бы процентов на 90 всех дат чтобы отрабатывало. Дальше добавлять в этот список еще варианты по мере возникновения.
16 evgpinsk_
 
17.11.21
01:01
(15) посчитал что нет смысла тратить на это время. сложновато в не отформатированном тексте с непонятным количеством слов вычленить дату непонятного формата. овчинка не стоит выделки.
А вот проблема даилоговых окон ворда напрягает. Без её решения затея пакетной печати не имеет смысла