Печатные формы WORD из БСП. Ограничение редактирование.

1. Kvark5d 18.09.23 11:35 Сейчас в теме
По применению шаблонов печатных форм WORD из БСП есть куча статей, примеров и т.д. Но вот столкнулся со следующей задачей и решение найти не получается - сформировать проект договора где пользователи могли бы изменять только ограниченный набор полей.
Необходимо чтобы в сформированном файле сохранялись настройки ограничения редактирования, в частности области где разрешено редактирование. Не получается.
В шаблоне устанавливаю ограничение, выбираю области разрешенные для редактирования. В сформированном документе ограничение редактирования сохраняется, а вот области разрешенные для редактирования слетают. Т.е. весь документ нельзя редактировать.
Хочу разобраться это косяк БСП или мой косяк и в каком направлении копать.
Найденные решения
7. Kvark5d 21.09.23 16:23 Сейчас в теме
Оказывается БСП в плане использования макетов Ворд умеет намного больше, чем описано в документации. Надо только немного постараться.
Моя личная задача - сформировать заполненный проект договора по шаблону Ворда в котором пользователи смогли бы изменять только некоторые поля.
Опытным путем я выяснил, что:
1. Установка ограничения редактирования и пароль проставляются в файле word/settings.xml.
Там строка типа <w:documentProtection w:edit="readOnly"... />
БСП эту строку просто переносит. Поэтому ничего менять не нужно.
2. Текст который можно редактировать указывается в файле word/document.xml
перед ним ставится:
<w:permStart w:id="123" w:edGrp="everyone" />
после него
<w:permEnd w:id="123" />
Чтобы эти строки переносились необходимо в модуле УправлениеПечатьюСлужебный отредактировать процедуру РазбитьТекстШаблонаНаОбласти
перед строкой
Если ЧтениеНачалаЛюбогоБлокаКромеПараграфа(СтруктураРазбораXML, ЧтениеXML) И ТекущийУровень = УровеньТэгаБлок Тогда


вставить:
Если (ЧтениеXML.Имя = "w:permStart" ИЛИ ЧтениеXML.Имя = "w:permEnd") Тогда 
		ВозобновитьЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца);
КонецЕсли;


проверено на БСП 3.1.7
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. пользователь 18.09.23 13:14
Сообщение было скрыто модератором.
...
3. Kvark5d 18.09.23 15:08 Сейчас в теме
(2) не знаю, что у Вас там смешалось, но вполне логично предположить что, если уж БСП отлично справляется с форматированием, стилями, параметрами страницы и прочим, то и настройки ограничения редактирования она может переносить из шаблона.
4. пользователь 18.09.23 15:10
Сообщение было скрыто модератором.
...
5. Kvark5d 18.09.23 15:46 Сейчас в теме
(4) в БСП это называется: Разработка печатных форм с использованием макетов в формате офисных документов Office Open XML
6. пользователь 18.09.23 15:59
Сообщение было скрыто модератором.
...
7. Kvark5d 21.09.23 16:23 Сейчас в теме
Оказывается БСП в плане использования макетов Ворд умеет намного больше, чем описано в документации. Надо только немного постараться.
Моя личная задача - сформировать заполненный проект договора по шаблону Ворда в котором пользователи смогли бы изменять только некоторые поля.
Опытным путем я выяснил, что:
1. Установка ограничения редактирования и пароль проставляются в файле word/settings.xml.
Там строка типа <w:documentProtection w:edit="readOnly"... />
БСП эту строку просто переносит. Поэтому ничего менять не нужно.
2. Текст который можно редактировать указывается в файле word/document.xml
перед ним ставится:
<w:permStart w:id="123" w:edGrp="everyone" />
после него
<w:permEnd w:id="123" />
Чтобы эти строки переносились необходимо в модуле УправлениеПечатьюСлужебный отредактировать процедуру РазбитьТекстШаблонаНаОбласти
перед строкой
Если ЧтениеНачалаЛюбогоБлокаКромеПараграфа(СтруктураРазбораXML, ЧтениеXML) И ТекущийУровень = УровеньТэгаБлок Тогда


вставить:
Если (ЧтениеXML.Имя = "w:permStart" ИЛИ ЧтениеXML.Имя = "w:permEnd") Тогда 
		ВозобновитьЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца);
КонецЕсли;


проверено на БСП 3.1.7
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот