Имя: Пароль:
1C
1С v8
Генерация файлов WORD
,
0 Дожа
 
14.12.16
13:43
Здравствуйте.
Подскажите пожалуйста, что то не получается ни как.
Есть список сотрудников, обходя которых, заполняю по ним вордовский макет.
Потом вывожу.
Выводятся кучей документов ворд, равной количеству сотрудников в цикле. Как бы склеить все макеты в 1 файл?

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл                
ПолучитьМакет("Макет");                        
ОбъектWord = Договор.Получить();
ДокументWord = ОбъектWord.Application.Documents(1);
ДокументWord.Activate();
//Тут заполняю макет
КонецЦикла;
ДокументWord.Application.Visible=Истина;
ДокументWord.Activate();
1 Cool_Profi
 
14.12.16
13:44
А может, макет получать до цикла, один раз?

Хотя чего это я бред несу...
2 Дожа
 
14.12.16
13:45
(1) если макет 1 раз, то как его потом заполнять?

ТекстПоиска = "<дата рождения>";
ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.Физлицо.ДатаРождения;
Замена = ДокументWord.Content.find;                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
3 Дожа
 
14.12.16
13:47
Есть возможность копировать данные из дока и вставлять их в предыдущий док?
4 Дожа
 
14.12.16
13:55
Нашел такую тему:
Макет = ПолучитьМакет("Макет");
// Получить объект из макета.
MSWord = Макет.Получить();
Документ = MSWord.Application.Documents(1);
Документ.Activate();
// копируем содержимое
Документ.Content.Copy();
// встаем в начало документа
Документ = MSWord.Range(0,0);
Выборка = СформироватьЗапросДляПечати("ПоТабличнойЧастиДокумента").Выбрать();
Индекс = 0;
Пока Выборка.Следующий() Цикл
Индекс = Индекс + 1;
Если Индекс > 1 Тогда
// вторая и последующие итерации
// встаем в начало документа
Документ = MSWord.Range(0,0);
// вставляем разрыв страницы
Документ.InsertBreak();
//опять встаем в начало документа (перед разрывом)
Документ = MSWord.Range(0,0);
// вставляем содержимое буфера
Документ.Paste();
КонецЕсли;
Сотрудник = Выборка.Сотрудник;
// заполнение параметров ...
КонецЦикла;
5 Дожа
 
14.12.16
13:56
Но не совсем понятно как тут заполнять параметры....
6 Масянька
 
14.12.16
14:00
(5) В шаблоне Word:
[ПечПокупатель], именуемый в дальнейшем Заказчик (это - как пример).
В коде заполнения параметров:
мПокупатель                = СокрЛП(ТекущийЭлемент().Владелец.ЮрФизЛицо.ПолнНаименование);
    
мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
7 Масянька
 
14.12.16
14:01
+ (6) Код - семерочный.
8 Дожа
 
14.12.16
14:03
(6)
У меня реализованно так:                 ТекстПоиска = "<адрес по прописке>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Представление;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);

Но это при условии что я макет получаю в каждом цикле. А если как я привел пример в сообщении 4, то там такое уже не сработает, но как я понимаю, макеты ворд будут в одном файле.
9 Дожа
 
14.12.16
14:22
Так как можно получить один макет, перезаполнять его в цикле и потом вывести его в 1 файл?) Есть готовый пример у кого то или хотя бы изложить описанием как реализовать это?
10 mikecool
 
14.12.16
14:26
если не получится с одним документом - формируй один док итоговый, шаблоны заполняй по каждому сотруднику, а затем программно копи-пастируй в результирующий док
так может быстрее быть, нежели будешь голову ломать
11 Nolan
 
14.12.16
15:26
(0) а можешь скинуть полностью текст твоей процедуры?
12 Nolan
 
14.12.16
15:27
(11) я сейчас подобную задачу делаю, есть  модуль УправлениеПечатьюКлиент там все для работы с ворд, можно с ним попробовать.
13 Дожа
 
14.12.16
15:35
(11)
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Для каждого Строка из ТЧПодразделения цикл
        Если Строка.Выбран тогда
            
            ДатаУвольнения = Дата(1000,01,01,01,01,01);
            ПодразделениеОрганизации = строка.Подразделения;
            Вид = справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00002");
            
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ разрешенные
            |    ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан
            |ПОМЕСТИТЬ ВТПаспорта
            |ИЗ
            |    РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ разрешенные
            |    КонтактнаяИнформация.Представление,
            |    КонтактнаяИнформация.Объект
            |ПОМЕСТИТЬ ВТАдреса
            |ИЗ
            |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
            |ГДЕ
            |    КонтактнаяИнформация.Вид = &Вид
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ разрешенные
            |    СотрудникиОрганизаций.Ссылка,
            |    ВТАдреса.Представление,
            |    ВТПаспорта.ДокументСерия,
            |    ВТПаспорта.ДокументНомер,
            |    ВТПаспорта.ДокументДатаВыдачи,
            |    ВТПаспорта.ДокументКемВыдан
            |ИЗ
            |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВТАдреса КАК ВТАдреса
            |        ПО СотрудникиОрганизаций.Физлицо = ВТАдреса.Объект
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВТПаспорта КАК ВТПаспорта
            |        ПО СотрудникиОрганизаций.Физлицо = ВТПаспорта.ФизЛицо
            |ГДЕ
            |    СотрудникиОрганизаций.ПодразделениеОрганизации = &ПодразделениеОрганизации
            |    И СотрудникиОрганизаций.ДатаУвольнения < &ДатаУвольнения";
            
            Запрос.УстановитьПараметр("ДатаУвольнения", ДатаУвольнения);
            Запрос.УстановитьПараметр("ПодразделениеОрганизации", ПодразделениеОрганизации);
            Запрос.УстановитьПараметр("Вид", Вид);
            
            РезультатЗапроса = Запрос.Выполнить();
            
            ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            
            
            
            
            
                         
            
            ТТЕСТ = ПолучитьМакет("МакетРЕГ");
            Индекс = 0;            
            //Получить макет.
                Если Регионы тогда  
                    Договор = ПолучитьМакет("МакетРЕГ");
                Иначе
                    Договор = ПолучитьМакет("МакетМСК");
                КонецЕсли;
                ОбъектWord = Договор.Получить();
                ДокументWord = ОбъектWord.Application.Documents(1);

                                 
                Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                    
                    
                Если индекс > 0 тогда
                ДокументWord.content.Copy();
                КонецЕсли;
                //Получить макет.
                Если Регионы тогда  
                    Договор = ПолучитьМакет("МакетРЕГ");
                Иначе
                    Договор = ПолучитьМакет("МакетМСК");
                КонецЕсли;
                ОбъектWord = Договор.Получить();
                ДокументWord = ОбъектWord.Application.Documents(1);
                //ДокументWord.Activate();
                
                //Макет получен. Обрабатываем параметры.
                ТекстПоиска = "<номер трудового договора>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.НомерДоговора;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата трудового договора>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.ДатаДоговора;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата дополнительного соглашения>";
                ТекстЗамены = Формат(текущаядата(), "ДЛФ=Д");
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);        
                
                //Заполнить 4 фамилии
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);        
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);        
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата рождения>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.Физлицо.ДатаРождения;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<адрес по прописке>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Представление;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<серия паспорта>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументСерия;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<номер паспорта>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументНомер;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата выдачи паспорта>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументДатаВыдачи;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<орган выдавший паспорт>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументКемВыдан;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                //Вывод
                ДокументWord.Paste();
            КонецЦикла;
            
        КонецЕсли;
    КонецЦикла;
    
    ДокументWord.Application.Visible=Истина;
    ДокументWord.Activate();        
КонецПроцедуры

Процедура ЗаполнитьПодразделенияНажатие(Элемент)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ разрешенные
    |    ПодразделенияОрганизаций.Ссылка КАК Подразделения,
    |    ПодразделенияОрганизаций.Владелец КАК Организация
    |ИЗ
    |    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
    |
    |УПОРЯДОЧИТЬ ПО
    |    Организация,
    |    Подразделения";
    
    ВТПодразделения = Запрос.Выполнить().Выгрузить();
    ТЧПодразделения.Очистить();    
    ТЧПодразделения.Загрузить(ВТПодразделения);
    
КонецПроцедуры
14 Дожа
 
14.12.16
15:36
(11) Ой не то...
Тут я уже наколбасил непонятного.

Работяющий вариант вот:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Для каждого Строка из ТЧПодразделения цикл
        Если Строка.Выбран тогда
            
            ДатаУвольнения = Дата(1000,01,01,01,01,01);
            ПодразделениеОрганизации = строка.Подразделения;
            Вид = справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00002");
            
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ разрешенные
            |    ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
            |    ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан
            |ПОМЕСТИТЬ ВТПаспорта
            |ИЗ
            |    РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ разрешенные
            |    КонтактнаяИнформация.Представление,
            |    КонтактнаяИнформация.Объект
            |ПОМЕСТИТЬ ВТАдреса
            |ИЗ
            |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
            |ГДЕ
            |    КонтактнаяИнформация.Вид = &Вид
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ разрешенные
            |    СотрудникиОрганизаций.Ссылка,
            |    ВТАдреса.Представление,
            |    ВТПаспорта.ДокументСерия,
            |    ВТПаспорта.ДокументНомер,
            |    ВТПаспорта.ДокументДатаВыдачи,
            |    ВТПаспорта.ДокументКемВыдан
            |ИЗ
            |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВТАдреса КАК ВТАдреса
            |        ПО СотрудникиОрганизаций.Физлицо = ВТАдреса.Объект
            |        ЛЕВОЕ СОЕДИНЕНИЕ ВТПаспорта КАК ВТПаспорта
            |        ПО СотрудникиОрганизаций.Физлицо = ВТПаспорта.ФизЛицо
            |ГДЕ
            |    СотрудникиОрганизаций.ПодразделениеОрганизации = &ПодразделениеОрганизации
            |    И СотрудникиОрганизаций.ДатаУвольнения < &ДатаУвольнения";
            
            Запрос.УстановитьПараметр("ДатаУвольнения", ДатаУвольнения);
            Запрос.УстановитьПараметр("ПодразделениеОрганизации", ПодразделениеОрганизации);
            Запрос.УстановитьПараметр("Вид", Вид);
            
            РезультатЗапроса = Запрос.Выполнить();
            
            ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            
            
            
            
            
                         
            
            ТТЕСТ = ПолучитьМакет("МакетРЕГ");
            Индекс = 0;            
            //Получить макет.
                Если Регионы тогда  
                    Договор = ПолучитьМакет("МакетРЕГ");
                Иначе
                    Договор = ПолучитьМакет("МакетМСК");
                КонецЕсли;
                ОбъектWord = Договор.Получить();
                ДокументWord = ОбъектWord.Application.Documents(1);

                                 
                Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                    
                    
                Если индекс > 0 тогда
                ДокументWord.content.Copy();
                КонецЕсли;
                //Получить макет.
                Если Регионы тогда  
                    Договор = ПолучитьМакет("МакетРЕГ");
                Иначе
                    Договор = ПолучитьМакет("МакетМСК");
                КонецЕсли;
                ОбъектWord = Договор.Получить();
                ДокументWord = ОбъектWord.Application.Documents(1);
                //ДокументWord.Activate();
                
                //Макет получен. Обрабатываем параметры.
                ТекстПоиска = "<номер трудового договора>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.НомерДоговора;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата трудового договора>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.ДатаДоговора;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата дополнительного соглашения>";
                ТекстЗамены = Формат(текущаядата(), "ДЛФ=Д");
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);        
                
                //Заполнить 4 фамилии
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);        
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);        
                ТекстПоиска = "<фамилия имя отчество сотрудника>";
                ТекстЗамены = Строка(ВыборкаДетальныеЗаписи.Ссылка.Физлицо);
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата рождения>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Ссылка.Физлицо.ДатаРождения;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<адрес по прописке>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.Представление;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<серия паспорта>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументСерия;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<номер паспорта>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументНомер;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<дата выдачи паспорта>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументДатаВыдачи;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                ТекстПоиска = "<орган выдавший паспорт>";
                ТекстЗамены = ВыборкаДетальныеЗаписи.ДокументКемВыдан;
                Замена = ДокументWord.Content.find;
                Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены);
                
                //Вывод
                ДокументWord.Paste();
            КонецЦикла;
            
        КонецЕсли;
    КонецЦикла;
    
    ДокументWord.Application.Visible=Истина;
    ДокументWord.Activate();        
КонецПроцедуры

Процедура ЗаполнитьПодразделенияНажатие(Элемент)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ разрешенные
    |    ПодразделенияОрганизаций.Ссылка КАК Подразделения,
    |    ПодразделенияОрганизаций.Владелец КАК Организация
    |ИЗ
    |    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
    |
    |УПОРЯДОЧИТЬ ПО
    |    Организация,
    |    Подразделения";
    
    ВТПодразделения = Запрос.Выполнить().Выгрузить();
    ТЧПодразделения.Очистить();    
    ТЧПодразделения.Загрузить(ВТПодразделения);
    
КонецПроцедуры
15 Базис
 
naïve
14.12.16
15:39
1. Списки можно выводить в excel.
2. Разберись, что у тебя должно выполняться 1 раз, а что - N.
16 Nolan
 
14.12.16
15:44
(14) спасибо. можно переделать все и попробовать пользоваться типовыми функциями.

ДД - твой макет.

Макет = УправлениеПечатьюКлиент.ИнициализироватьМакетОфисногоДокумента(ДД, "DOC", "ПФ_3_11_2");

Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, Новый Структура("ИмяОбласти, ТипОбласти", "Разрыв", "Общая"));
        УправлениеПечатьюКлиент.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеЗаполнения, Ложь);

УправлениеПечатьюКлиент.ПоказатьДокумент(ПечатнаяФорма);
17 Nolan
 
14.12.16
15:47
Кто-нибудь знает как получить все параметры указанные в макет? ну т.е не один конкретный, а типо получить все параметры, и чтобы вернулся массив какой-нибудь...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.