В качестве примера использования можно указать вот такую ситуацию: в зависимости от типа клиента (договора, документа и т.п) формируются разные тексты договоров с разным количеством таблиц. В реальности, конечно должены использоваться и макет и описанные здесь динамические механизмы.
В моем примере я заранее создал новый пустой документ. Тестировалось на Office 2007.
Часто при создании документа из макета используют метод замены кусков текста. В примере представлен другой вариант выполнения того же действия - с использованием закладок. Также представлен пример построения нумерованного списка, вставки картинки, настройки ее параметров.
Пример использования описанных возможностей прост. При формировании коммерческого предложения бывает необходимо описать список условий, добавить изображение образца продукции.
Для отображения закладок включите эту опцию в настройках вашего Word'а.
В моем примере я заранее создал новый пустой документ, путь к документу и картинке прописан в тексте. Не забудте указать свои пути.
Как программно свернуть/развернуть дерево значений на управляемой форме? Желательно &НаКлиенте.
Для выделенной, текущей строки:
Хотя конечно есть Ctrl+Shift+"+" и Ctrl+Shift+"-".
P.S. Для Табличного поля с галочкой Дерево(отображающего справочник), перебрать строки НЕВОЗМОЖНО!!!
Примеры вида:
- НЕ РАБОТАЮТ!!!
Для СправочникСписок (ДокументСписок) итератора нет. Это не коллекция значений, перебрать не сможете. Дерево здесь ни при чем. Можно работать со строками либо через ПриПолученииДанных (предпочтительнее по скорости), либо ПриВыводеСтроки.
В 1С:Предприятии реализован механизм поддержки операций перетаскивания. С его помощью возможно осуществлять перенос данных между разными элементами управления. Например, можно переносить элементы списка справочника из одной группы в другую, переносить данные из табличного поля в поле табличного документа или перенести список выделенных файлов из проводника MS Windows в какой-либо элемент управления.
Операции перетаскивания поддерживают следующие элементы управления:
* табличное поле;
* поле табличного документа;
* поле календаря;
* поле картинки.
При операциях перетаскивания используются следующие понятия:
* источник данных - элемент управления из которого можно перетаскивать данные;
* <приемник данных - элемент управления в который можно перетаскивать данные.
Существует возможность разрешать или запрещать элементам управления предоставлять или принимать данные, т.е. быть источником или приемником данных. Для этого у элементов управления существуют следующие свойства: “Разрешить начало перетаскивания” – разрешает элементу управления предоставлять данные и “Разрешить перетаскивание” – разрешает элементу управления принимать данные. Эти свойства можно устанавливать из палитры свойств или из встроенного языка.
Последовательность событий при перетаскивании
При нажатии кнопки мыши на выделенной области элемента управления (это может быть строка, группа строк табличного поля, область поля табличного документа, дата календаря или картинка) у элемента управления – источника данных вызывается обработчик события НачалоПеретаскивания. В качестве параметров данного события передаются объект типа “ПараметрыПеретаскивания” и “СтандартнаяОбработка”. Параметр ПараметрыПеретаскивания имеет следующие свойства:
* Значение - содержит перетаскиваемое значение, например, для табличного поля это может быть ссылка на объект, для табличного документа – область табличного документа, для календаря – дата. Можно присвоить этому свойству свое значение (например, какую-нибудь структуру), тогда это значение будет являться перетаскиваемым объектом.
* Действие – указывает действие перетаскивания и является значением типа ДействиеПеретаскивания (Копирование, Перемещение, Выбор или Отмена).
* ДопустимыеДействия – указывает допустимые действия перетаскивания и является значением типа ДопустимыеДействияПеретаскивания ( Копирование, Перемещение, КопированиеИПеремещение, HеОбрабатывать). При помощи этого свойства можно указать какие операции возможны с данными источника данных (например, только копирование).
Параметр СтандартнаяОбработка позволяет разрешить или запретить стандартную обработку операции перетаскивания из данного элемента управления. Для события НачалоПеретаскивания стандартной обработкой является начало перетаскивания данных.
Далее, у элемента управления – приемника данных вызывается обработчик события ПроверкаПеретаскивания . Данный обработчик вызывается всякий раз, когда курсор попадает на новый объект в элементе управления – приемнике данных (например, в новую ячейку табличного поля или поля табличного документа, при попадании в новую дату в поле календаря). Набор параметров данного события зависит от элемента управления – приемника данных, но первые два параметра у всех одинаковы. Это объект типа ПараметрыПеретаскивания и СтандартнаяОбработка. Остальные параметры описывают объект под курсором. Для табличного поля это Строка и Колонка, для поля табличного документа – Область, для календаря – Дата, а для поля картинки дополнительных параметров нет. При обработке данного события можно управлять видом курсора, т.е. например указывать что перетаскивание в данный элемент управления запрещено или возможно только копирование. Для этого необходимо установить необходимое действие в свойстве Действие параметра ПараметрыПеретаскивания. Необходимо учитывать, что устанавливаемое действие перетаскивания должно быть разрешенным, т.е. не вступать в противоречие с значением свойства ДопустимыеДействия. Например, действие Копирование не вступает в противоречие со значением допустимых действий КопированиеИПеремещение, а значение Перемещение вступает в противоречие со значением допустимых действий Копирование. Параметр СтандартнаяОбработка используется для указания возможности стандартной обработки элементом управления данного события. Стандартная обработка перетаскивания зависит от типа элемента управления:
* Для табличного поля проверяется возможность вставки значения, т.е. проверяется тип значения, и если он совпадает с типом отображаемых данных, то производятся стандартные действия. Стандартные действия для иерархических динамических списков – перемещение в группу, для табличных полей, отображающих наборы записей или табличные части изменение порядка строк и копирование.
* Для поля табличного документа – проверка возможности вставить передаваемое значение.
* Для поля картинки и календаря стандартной обработки нет.
При отпускании клавиши мыши в элементе управления – приемнике данных вызывается обработчик события Перетаскивание. Набор параметров этого события тот же, что и у события ПроверкаПеретаскивания. Параметр СтандартнаяОбработка позволяет разрешить или запретить стандартную обработку события элементом управления. Стандартные действия перетаскивания описаны выше.
Затем в элементе управления – источнике данных вызывается обработчик события ОкончаниеПеретаскивания. При обработке этого события элемент управления – приемник данных может, например, удалить перемещенные данные или очистить какие – либо переменные.
Что делать, если не выполняется процедура "Перетаскивание"?
1. У элемента формы "Приемника" должно быть установлено свойство "Разрешить перетаскивание"
2. В процедуре ПроверкаПеретаскивания можно установить СтандартнаяОбработка в ложь (СтандартнаяОбработка = Ложь);
Кроме прочего в статье присутствует пример создания таблицы с любым количеством колонок и столбцов. Несколько строк с форматированием текста и таблицы. Создание "объединенных" ячеек.
В качестве примера использования можно указать вот такую ситуацию: в зависимости от типа клиента (договора, документа и т.п) формируются разные тексты договоров с разным количеством таблиц. В реальности, конечно должены использоваться и макет и описанные здесь динамические механизмы.
В моем примере я заранее создал новый пустой документ.
Тестировалось на Office 2007.
Исп. переменные: "ПутьКФайлу" - строка. Полное имя файла в формате MSWord.
"Ссылка" - ДокументСсылка (в моем случае - счет).
Вот текст модуля:
Написал Nikola23 - http://infostart.ru/public/67727/