Повторяющиеся значения в тексте договора

Автор ForumOOo (бот), 11 мая 2016, 21:35

0 Пользователи и 1 гость просматривают эту тему.

ForumOOo (бот)

Компонент: Writer
Версия продукта:
Сборка:
ОС:

Здравствуйте.
Мне приходится создавать договора.
Появилась идея как ускорить процесс .
Но не знаю как это сделать. И возможно ли вообще.
К стандартному договору идут шаблоны - куча дополнений, листов, схем, таблиц и т.п .
Когда мы создаем стандартный договор на клиента, мы вручную заносим данные клиента, адреса, организации, названия организации и т.п
Они очень часто повторяются в тексте договора . И мы ту самую запись десятки раз вручную вносим в договор.
Это время. Это силы. Появилась мысль. А можно ли как то связать документы?  
Например если я в таблице 1 договора #12356 пишу "иванов иван иванович" то чтобы эта запись автоматически появлялась в
десятках других нужных мне таблицах, листах, схемах того же договора #12356?
Возможно ли это вообще?
Если да, то как это реализовать?
Если можно - пошагово опишите процесс

Подпись: kkk7

Yakov

Может, циркулярное письмо подойдёт?
Есть видео с демонстрацией возможностей:
https://www.youtube.com/watch?v=3GHuVAk6b20

maksvlad

Реализуемо.
Вариант  1. Подключаешь таблицу, где указываешь в столицах необходимые переменные, как источник записей. Добавляешь поля в документ, ссылающиеся на таблицу. Жимкаешь на печать. При печати будет запрос на добавление записей из таблицы. Соглашаешься. Сохраняешь все в файл. Радуешься

maksvlad

Вариант 2. Используешь мастер рассылки писем. Инструкция в сообщении Якова

economist

Все гораздо проще:
1) Делатет все в одном документе ODT (можно вставить таблицы из Calc/Excel, если сложные расчеты)

2) Вставка-Поле-Дооплнительно-Переменные-Полепользователя.

3) Вводите в него Иванов Иван Иванович

4) Копируете во ВСЕ нужные места документа (их будет много).

Теперь достаточно ручками изменить в ЛЮБОМ поле Иванова на Петрова - и ВСЕ поля сразу "заколосятся" Петровым.

Аналогично - если данные уже есть в СУБД (BASE). Тогда копируете поле базы данных.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

maksvlad

#5
Цитата: economist от  2 июня 2016, 15:18Все гораздо проще:
1) Делатет все в одном документе ODT (можно вставить таблицы из Calc/Excel, если сложные расчеты)

2) Вставка-Поле-Дооплнительно-Переменные-Полепользователя.

3) Вводите в него Иванов Иван Иванович

4) Копируете во ВСЕ нужные места документа (их будет много).
Для небольшого количества полей, так будет действительно удобнее.
У меня используется для шаблона до 40 разных полей, здесь в таблице удобней и набирать и редактировать значения. Тем более, что Calc позволяет объединять поля. В результате в документ уходит целый кусок текста с необходимыми переменными

economist

maksvlad - я стараюсь избегать вообще какого-либо ручного ввода, если "это" уже где-то есть. Скажем, договор поставки с ~30 полями логичнее всего заполнять данными из программы 1С, которые попадают в BASE путем связывания текстовых файлов. На экспорт уходит 30 секунд утром, далее открываем ODT, F4, Ctrl+F, вводим часть имени контрагента, выделяем строку, жмем кнопку "Данные в поля" - и вуаля.

Договор полностью(!) заполнен. Должность и ФИО директора - единственный реквизит, который пришлось добавить (и вводить) в типовую 1С:Бухгалтерия 7.7., коих в нашей стране до сих пор эксплуатируется около 130 тыс. экземпляров.   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

economist

Возможно скажу общеизвестный факт, но... Огромным плюсом Полей из баз данных или Полей переменных - это возможность использовать Условный и Скрыты текст, который способен показывать не только слова, но и абзацы и даже целые разделы.

Поле-список - не является переменной и автоматически скрыть/показать текст не может (только макросы, по кнопке).
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

maksvlad

#8
В базу данных данные вводятся не по мановению волшебной палочки. У вас 1с. У нас - таблица calc. Все определяется сферой деятельности. Смысл один - поле данных из источника данных :) удобно и быстро. В этом солидарен.
Если есть возможность продемонстрировать использования условия на основе данных поля,буду сильно признателен. Давно -давно рассматривал возможность поля с условием. Но показалось слишком замороченным, чем конкатенация и if() в кальке

economist

Попробуем...

1) В Calc таблицу (однострочная шапка+данные) именуете Диапазон, создаете в BASE базу данных - Таблица - выбрать файл ODS - Зарегистрировать. В БД вы увидите таблицу Calc (неформатированную).

2) Открываем Writer, F4, перетаскиваем поле, скажем, в текст шаблона Договора поле "ИНН" из таблички сверху, сразу после слов в шаблоне "ИНН:".

3) Думаем, как бы скрыть подстроку "ИНН:", если пустой/нет ИНН...

4) Придумали: вставим Функцию, и передадим ей Аргумент в виде Условия, где Поле слияния "ИНН" не пусто. Условие "Не пусто" очень популярно, запомните его, оно задаётся так: !=""

5) По шагам: Вставка - Поля - Дополнительно - Функции - Скрытый текст (или Скрытый абзац) - Условие - ВАША_БД_ODS._ВАШ_ДИАПАЗОН.ИНН != "" - Скрытый текст - "ИНН: "

И все получится!
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

economist

И да, есть еще "Условный текст" (вывод разного текста для "да" и "нет").
А еще можно использовать логические операторы AND, OR, NOT + скобки в "Условие". Так что навертеть бизнес-логики можно прилично.

Если что-то надо иногда и по-простому посчитать - то можно вставить в Скрытый абзац таблицу (адресация в ней как в Calc, можно ссылаться на другую текстовую таблицу)

А сложные расчеты/выборки - лучше делать в БД (SQL-запросом или "Представлением/View" таблицы, которое не так просто "сломать").

Если же это что-то "словесное" - лучше это "считать" прямо в таблице Calc. Ту же "сумму прописью", ФИО в родительном, "мать их", падеже, половозрастное обращение (Дите, Вьюношы, Дэущка, Дзядзя, Тетя)  - однозначно в Calc. И тогда идеально отформатированный, с переносами слов даже в полях, текст договора, - можно собрать буквально за секунды.   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

maksvlad

Цитата: economist от  3 июня 2016, 15:15Если же это что-то "словесное" - лучше это "считать" прямо в таблице Calc. Ту же "сумму прописью", ФИО в родительном, "мать их", падеже, половозрастное обращение (Дите, Вьюношы, Дэущка, Дзядзя, Тетя)  - однозначно в Calc. И тогда идеально отформатированный, с переносами слов даже в полях, текст договора, - можно собрать буквально за секунды.
Вот это и пользуется в кальке. Спасибо за демонстрацию

economist

#12
В дополнение к #9 - можно условие для скрытого/условного текста писать лаконичнее, используя NOT
Вместо:

ВАША_БД_ODS._ВАШ_ДИАПАЗОН.ИНН != ""

можно написать так (! означает тот самый NOT, который для пустого NULL значения означает наличие чего-либо, даже пустого "" текста):

![ВАША_БД_ODS._ВАШ_ДИАПАЗОН.ИНН]

И, конечно же, лаконичность рулит, если нужно проверять несколько условий через OR и/или AND. Для вывода условного текста ПРОЖИВАЕТ или БОМЖ - условие будет выглядеть так:

(![БД.ТАБ.Прописка] AND ![БД.ТАБ.Проживает]) OR ...
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...