Печатные формы WORD из БСП. Ограничение редактирование.
По применению шаблонов печатных форм WORD из БСП есть куча статей, примеров и т.д. Но вот столкнулся со следующей задачей и решение найти не получается - сформировать проект договора где пользователи могли бы изменять только ограниченный набор полей.
Необходимо чтобы в сформированном файле сохранялись настройки ограничения редактирования, в частности области где разрешено редактирование. Не получается.
В шаблоне устанавливаю ограничение, выбираю области разрешенные для редактирования. В сформированном документе ограничение редактирования сохраняется, а вот области разрешенные для редактирования слетают. Т.е. весь документ нельзя редактировать.
Хочу разобраться это косяк БСП или мой косяк и в каком направлении копать.
Необходимо чтобы в сформированном файле сохранялись настройки ограничения редактирования, в частности области где разрешено редактирование. Не получается.
В шаблоне устанавливаю ограничение, выбираю области разрешенные для редактирования. В сформированном документе ограничение редактирования сохраняется, а вот области разрешенные для редактирования слетают. Т.е. весь документ нельзя редактировать.
Хочу разобраться это косяк БСП или мой косяк и в каком направлении копать.
Найденные решения
Оказывается БСП в плане использования макетов Ворд умеет намного больше, чем описано в документации. Надо только немного постараться.
Моя личная задача - сформировать заполненный проект договора по шаблону Ворда в котором пользователи смогли бы изменять только некоторые поля.
Опытным путем я выяснил, что:
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" />
Чтобы эти строки переносились необходимо в модуле УправлениеПечатьюСлужебный отредактировать процедуру РазбитьТекстШаблонаНаОбласти
перед строкой
вставить:
проверено на БСП 3.1.7
Моя личная задача - сформировать заполненный проект договора по шаблону Ворда в котором пользователи смогли бы изменять только некоторые поля.
Опытным путем я выяснил, что:
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
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Оказывается БСП в плане использования макетов Ворд умеет намного больше, чем описано в документации. Надо только немного постараться.
Моя личная задача - сформировать заполненный проект договора по шаблону Ворда в котором пользователи смогли бы изменять только некоторые поля.
Опытным путем я выяснил, что:
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" />
Чтобы эти строки переносились необходимо в модуле УправлениеПечатьюСлужебный отредактировать процедуру РазбитьТекстШаблонаНаОбласти
перед строкой
вставить:
проверено на БСП 3.1.7
Моя личная задача - сформировать заполненный проект договора по шаблону Ворда в котором пользователи смогли бы изменять только некоторые поля.
Опытным путем я выяснил, что:
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
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот