Работа с Active Document. Помогите переместить курсор и программно создать закладку.

1. max313 3 11.06.13 12:51 Сейчас в теме
Проблема такая. Нужно с 1с 8.1 после формирования документа Наказание, нужно распечатать приказ. Приказ должен выводиться в word. Порылся в инете, нашел как в шаблон Active Document вывести одного сотрудника, но есть документы Наказание, где более одного сотрудника. В этом случае есть необходимость в приказе перечислить построчно всех сотрудников с наказаниями вот так

Причина, ПРИКАЗЫВАЮ:

1. Взыскать с стажера магазина №1 Иванова сумму в размере 100 руб.
2. Взыскать с стажера магазина №1 Петрова сумму в размере 100 руб.
3. Взыскать с стажера магазина №1 Сидорова сумму в размере 100 руб.

4. Приказ довести до персонала на общем собрании.

Active Document создавал по методу закладок, заходил в шаблон, создал закладку, закладке в 1с программно присваивается значение, в итоге получается так

Причина, ПРИКАЗЫВАЮ:
1. Взыскать с стажера магазина №1 Иванова сумму в размере 100 руб.
2. Приказ довести до персонала на общем собрании.

как сделать случай с несколькими сотрудниками найти не могу, желательно чтобы результат выводился без таблицы.

Теоретически прикинул, что возможно после создания первого из списка сотрудника, можно передвинуть курсор вниз на следующую строку, создать загнать программно закладку и ей уже присваивать следующего сотрудника.

Возможно ли это, и если возможно подскажите плз как.
Заранее спасибо.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. deniseek77 86 11.06.13 13:53 Сейчас в теме
(1) max313, Не вижу проблемы- перебирайте своих сотрудников в цикле и выводите ваши данные. ЭктивДокумент работает аналогично макету табличного документа. Обрашайтесь к вашему шаблону и выводите.
3. deniseek77 86 11.06.13 14:09 Сейчас в теме
4. max313 3 11.06.13 14:50 Сейчас в теме
вот мой код программы, в 1с дилетант, скопировал печать стандартного макета, который выводит все как надо, мой же макет выводи только первую строку

номер1 = 1;
Счетчик = 1;
Для каждого Строка1 Из ЭтотОбъект.Сотрудник Цикл

сс = "";
если строка1.Измерение = справочники.Измерение.НайтиПоКоду("01") Тогда // %

должок = ПолучитьДолжность(Строка1.Сотрудник,объект,1);
сс = сс + Строка(должок) +" магазина "+магаз+" " + СокрЛП(Строка1.Сотрудник);
Если строка1.Значение = 5 Тогда
сс = "Объявить замечание "+сс+".";
Иначе
сс = "Объявить выговор "+сс+".";
КонецЕсли;
Иначе
должок = ПолучитьДолжность(Строка1.Сотрудник,объект,2);
сс = сс + Строка(должок) +" магазина "+магаз+" " + СокрЛП(Строка1.Сотрудник);
сс = "Взыскать с "+сс+" сумму в размере "+СокрЛП(строка1.Значение)+" руб.";
КонецЕсли;

ОбластьСтрока.Параметры.сотрудник = сс;
ОбластьСтрока.Параметры.Номер = СокрЛП(Номер1)+".";
Номер1 = номер1 + 1;
ТабДок.Вывести(ОбластьСтрока);

КомОбъект.Bookmarks(СокрЛП("Сотрудник")).Select();
КомОбъект.Application.Selection.TypeText(СокрЛП(сс));

Если Номер1 > Счетчик Тогда
перевод=символ(13)+"";
КонецЕсли;
Счетчик = Счетчик + 1;

КонецЦикла;
5. max313 3 11.06.13 14:57 Сейчас в теме
когда проходит первый цикл, ругается на объект КомОбъект.Bookmarks(СокрЛП("Сотрудник")).Select(); я думаю потому что закладка только одна, вот и спрашиваю про программные методы создания Bookmarks. Хотя возможно я что то усложняю, просто задача чтоб на шаблоне word не было границ таблицы, даже скрытых, нужен просто текст
6. max313 3 11.06.13 18:16 Сейчас в теме
после условия проверки теперь выводятся все сотрудники в таблицу,

Если Номер1 > Счетчик Тогда
КомОбъект.Bookmarks().Add("Сотрудник");
КонецЕсли;
Счетчик = Счетчик + 1;


но сплошным текстом, подскажите как сделать чтобы каждый сотрудник выводился в списке с новой строки
заранее спасибо.
Оставьте свое сообщение

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