Имя: Пароль:
1C
1С v8
Сложные печатные формы doc с динамическими данными
0 yabes
 
16.09.25
09:34
Всем привет!

Подскажите, пжста, как реализовать в 1С печатную форму doc в таком формате:
Для произвольного количества клиентов вывести данные в в документ, в которые входят: пункты, подпункты, и самое главное таблицы.

Подсистема «Печать» БСП позволяет выводить такие данные, но на сколько я понимаю, одну и ту же область макета нельзя выводить несколько раз, например, описать в макете область с таблицей и вывести ее для произвольного количества клиентов, заполнив по-разному. Или я ошибаюсь?

Какие еще варианта? Попробовать на VBA с Com объектом?

Делал ли кто-то подобное? Можете поделиться поимером?
1 Ненавижу 1С
 
гуру
16.09.25
09:55
(0) Думаю ошибаешься, можно повторять области в цикле
2 Lama12
 
16.09.25
10:01
(0) Одну и ту же область можно выводить. На крайний случай, есть документация по docx на сайте микрософт. Разбирай их XML и делай что хочешь. Правда так, то еще развлечение. И обрати внимание, если слово набрано не за один раз (менял язык, потом обратно возвращался, или делал другой шрифт, потом вернул обратно, или т.п.), то в XML будет слово по частям.
3 timurhv
 
17.09.25
12:01
Не обязательно разбираться в docx.
Делаете шаблон где должно повторяться, например
[ПовторОбласти1]{v8 ПолноеНаименованиеТовара}
[/ПовторОбласти1]

Далее:
Область = УправлениеПечатью.ОбластьМакета(Макет, СтруктураОбластей["СтраницаВывода"]);
Область.Текст = данные по [ПовторОбласти1]...[/ПовторОбласти1]

Нам нужно найти точки начала повтора областей и метки в ней "<w:p w14" и "</w:p>".
Заменяете Область.Текст как вам нужно и выводите стандартными средствами.

Но посмотрите, найдет нет сразу [ПовторОбласти1], MS Office может не сплошняком его в xml запихать, а разбить при сохранении в docx.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn