HelpF.pro

Выгрузка метаданных конфигурации в Microsoft Word и Excel

Код 1C v 8.х
 
Перем ОбъектыКонфы;
Перем СтруктКонфы;

Процедура ВыгрузитьВWord()
Попытка
Word = Новый COMОбъект("Word.Application");
Исключение
Сообщить("Не удалось открыть Word");
Возврат;
КонецПопытки;

Word.Documents.Add();
Документ = Word.ActiveDocument();

// Перебор типов метаданных
Для Каждого ТипОбъекта Из ОбъектыКонфы Цикл
Состояние(ТипОбъекта.Значение);

Если Метаданные[ТипОбъекта.Ключ].Количество() > 0 Тогда
// Добавляем новый параграф
Документ.Paragraphs.Add();
Номер = Документ.Paragraphs.Count();
Документ.Paragraphs(Номер-1).Range().I_nsertAfter(ТипОбъекта.Значение);
Документ.Paragraphs(Номер).Range().Style="Заголовок 1";

//Перебираем конктретные объекты
Для каждого Объект Из Метаданные[ТипОбъекта.Ключ] Цикл
// Добавляем новый параграф
Документ.Paragraphs.Add();
Номер = Документ.Paragraphs.Count();
Документ.Paragraphs(Номер-1).Range().I_nsertAfter(Объект.Синоним);
Документ.Paragraphs(Номер).Range().Style="Заголовок 2";

// Перебираем параметры метаданных
Для каждого Параметр Из СтруктКонфы Цикл
Попытка
Количество = Объект[Параметр.Ключ].Количество();
Исключение
Продолжить;
КонецПопытки;

Если Количество > 0 Тогда
// Добавляем новый параграф
Документ.Paragraphs.Add();
Номер = Документ.Paragraphs.Count();
Документ.Paragraphs(Номер-1).Range().I_nsertAfter(Параметр.Значение + " (" + Количество + ")");
Документ.Paragraphs(Номер).Range().Style="Заголовок 3";

// Добавляем новый параграф
Документ.Paragraphs.Add();
Номер=Документ.Paragraphs.Count();
// Добавляем новую таблицу
Документ.Tables.Add(Документ.Paragraphs(Номер).Range(),Количество+1,4);

Счетчик = 1;
// Заполняем шапку таблицы
Таблица = Документ.Tables(Документ.Tables.Count());
Таблица.Cell(Счетчик,1).Range().I_nsertAfter("Имя");
Таблица.Cell(Счетчик,2).Range().I_nsertAfter("Синоним");
Таблица.Cell(Счетчик,3).Range().I_nsertAfter("Тип");
Таблица.Cell(Счетчик,4).Range().I_nsertAfter("Комментарий");
// Устанавливаем жирный шрифт для шапки таблицы
Документ.Range(Таблица.Cell(Счетчик,1).Range.Start,Таблица.Cell(Счетчик,4).Range.End).Font.Bold = Истина;

Для каждого Значение Из Объект[Параметр.Ключ] Цикл
Счетчик = Счетчик + 1;
// Заполняем содержимое таблицы
Попытка
Таблица.Cell(Счетчик,1).Range().I_nsertAfter(Значение.Имя);
Исключение
КонецПопытки;
Попытка
Таблица.Cell(Счетчик,2).Range().I_nsertAfter(Значение.Синоним);
Исключение
КонецПопытки;
Попытка
СтрокаТипов = "";
// Выводим все типы
Для каждого Тип Из Значение.Тип.Типы() Цикл
СтрокаТипов = СтрокаТипов + " " + Строка(Тип);
КонецЦикла;
Таблица.Cell(Счетчик,3).Range().I_nsertAfter(СтрокаТипов);
Исключение
КонецПопытки;
Попытка
Таблица.Cell(Счетчик,4).Range().I_nsertAfter(Значение.Комментарий);
Исключение
КонецПопытки;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;

// Показываем документ
Word.Visible = Истина;
// Устанавливаем активность документа
Word.Activate();
Word = Неопределено;
КонецПроцедуры

Процедура ВыгрузитьВExcel()
Попытка
Excel = Новый COMОбъект("Excel.Application");
Исключение
Сообщить("Не удалось открыть Excel");
Возврат;
КонецПопытки;

// Добавляем новый лист
Excel.Application.Workbooks.Add(1);
Лист = Excel.ActiveSheet;
// Задаем имя закладки
Лист.Name = "Данные";

НомерСтроки = 0;

// Перебор типов метаданных
Для Каждого ТипОбъекта Из ОбъектыКонфы Цикл
Состояние(ТипОбъекта.Значение);

Если Метаданные[ТипОбъекта.Ключ].Количество() > 0 Тогда
// Добавляем новую строку
НомерСтроки = НомерСтроки + 1;
// Устанавливаем текст в ячейку
Лист.Cells(НомерСтроки, 1).Value = ТипОбъекта.Значение;
// Устанавливаем размер шрифта
Лист.Cells(НомерСтроки, 1).Font.Size = 16;
// Устанавливаем цвет
Лист.Cells(НомерСтроки, 1).Font.ColorIndex = 3;

//Перебираем конктретные объекты
Для каждого Объект Из Метаданные[ТипОбъекта.Ключ] Цикл
// Добавляем новую строку
НомерСтроки = НомерСтроки + 1;
// Устанавливаем текст в ячейку
Лист.Cells(НомерСтроки, 1).Value = Объект.Синоним;
// Устанавливаем отступ в 2 символа
Лист.Cells(НомерСтроки, 1).I_nsertIndent(2);
// Устанавливаем размер шрифта
Лист.Cells(НомерСтроки, 1).Font.Size = 12;
// Устанавливаем цвет
Лист.Cells(НомерСтроки, 1).Font.ColorIndex = 5;

// Перебираем параметры метаданных
Для каждого Параметр Из СтруктКонфы Цикл
Попытка
Количество = Объект[Параметр.Ключ].Количество();
Исключение
Продолжить;
КонецПопытки;

Если Количество > 0 Тогда
// Добавляем новую строку
НомерСтроки = НомерСтроки + 1;
Лист.Cells(НомерСтроки, 1).Value = Параметр.Значение + " (" + Количество + ")";
Лист.Cells(НомерСтроки, 1).I_nsertIndent(4);
// Устанавливаем жирный шрифт
Лист.Cells(НомерСтроки, 1).Font.Bold = Истина;
// Устанавливаем цвет
Лист.Cells(НомерСтроки, 1).Font.ColorIndex = 16;

// Добавляем новую таблицу
НомерСтроки = НомерСтроки + 1;
Лист.Cells(НомерСтроки, 1).Value = "Имя";
Лист.Cells(НомерСтроки, 2).Value = "Синоним";
Лист.Cells(НомерСтроки, 3).Value = "Тип";
Лист.Cells(НомерСтроки, 4).Value = "Комментарий";

Для Ном = 1 По 4 Цикл
// Устанавливаем ширину колонки
Лист.Cells(НомерСтроки, Ном).ColumnWidth = 20;
Лист.Cells(НомерСтроки, Ном).Font.Bold = Истина;
// Очищаем все границы
Лист.Cells(НомерСтроки, Ном).Borders(5).LineStyle = -4142;
// Устанавливаем левую границу
Лист.Cells(НомерСтроки, Ном).Borders(7).LineStyle = 1;
// Устанавливаем верхнюю границу
Лист.Cells(НомерСтроки, Ном).Borders(8).LineStyle = 1;
// Устанавливаем нижнюю границу
Лист.Cells(НомерСтроки, Ном).Borders(9).LineStyle = 1;
// Устанавливаем правую границу
Лист.Cells(НомерСтроки, Ном).Borders(10).LineStyle = 1;
// Устанавливаем цвет фона
Лист.Cells(НомерСтроки, Ном).Interior.ColorIndex = 34;
КонецЦикла;

Для каждого Значение Из Объект[Параметр.Ключ] Цикл
НомерСтроки = НомерСтроки + 1;
// Заполняем содержимое таблицы
Попытка
Лист.Cells(НомерСтроки, 1).Value = Значение.Имя;
Исключение
КонецПопытки;
Попытка
Лист.Cells(НомерСтроки, 2).Value = Значение.Синоним;
Исключение
КонецПопытки;
Попытка
СтрокаТипов = "";
// Выводим все типы
Для каждого Тип Из Значение.Тип.Типы() Цикл
СтрокаТипов = СтрокаТипов + " " + Строка(Тип);
КонецЦикла;
Лист.Cells(НомерСтроки, 3).Value = СтрокаТипов;
Исключение
КонецПопытки;
Попытка
Лист.Cells(НомерСтроки, 4).Value = Значение.Комментарий;
Исключение
КонецПопытки;

Для Ном = 1 По 4 Цикл
// Установка границ
Лист.Cells(НомерСтроки, Ном).Borders(5).LineStyle = -4142;
Лист.Cells(НомерСтроки, Ном).Borders(7).LineStyle = 1;
Лист.Cells(НомерСтроки, Ном).Borders(8).LineStyle = 1;
Лист.Cells(НомерСтроки, Ном).Borders(9).LineStyle = 1;
Лист.Cells(НомерСтроки, Ном).Borders(10).LineStyle = 1;

// Устанавливаем выравнивание по левому краю
Лист.Cells(НомерСтроки, Ном).VerticalAlignment = -4160;
// Устанавливаем перенос слов
Лист.Cells(НомерСтроки, Ном).WrapText = Истина;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;

// Показываем документ
Excel.Visible = Истина;
Excel = Неопределено;
КонецПроцедуры

Процедура Сформировать()
// Определяем все возможные объекты метаданных
ОбъектыКонфы = Новый Структура();
ОбъектыКонфы.Вставить("ОбщиеМодули", "Общие модули");
ОбъектыКонфы.Вставить("ОбщиеФормы", "Общие формы");
ОбъектыКонфы.Вставить("ОбщиеМакеты", "Общие макеты");
ОбъектыКонфы.Вставить("ОбщиеКартинки", "Общие картинки");
ОбъектыКонфы.Вставить("Роли", "Роли");
ОбъектыКонфы.Вставить("Интерфейсы", "Интерфейсы");
ОбъектыКонфы.Вставить("Стили", "Стили");
ОбъектыКонфы.Вставить("Языки", "Языки");
ОбъектыКонфы.Вставить("ПланыОбмена", "Планы обмена");
ОбъектыКонфы.Вставить("Константы", "Константы");
ОбъектыКонфы.Вставить("КритерииОтбора", "Критерии отбора");
ОбъектыКонфы.Вставить("Справочники", "Справочники");
ОбъектыКонфы.Вставить("Документы", "Документы");
ОбъектыКонфы.Вставить("ЖурналыДокументов", "Журналы документов");
ОбъектыКонфы.Вставить("Перечисления", "Перечисления");
ОбъектыКонфы.Вставить("Отчеты", "Отчеты");
ОбъектыКонфы.Вставить("Обработки", "Обработки");
ОбъектыКонфы.Вставить("ПланыВидовХарактеристик", "Планы видов характеристик");
ОбъектыКонфы.Вставить("ПланыСчетов", "Планы счетов");
ОбъектыКонфы.Вставить("ПланыВидовРасчета", "Планы видов расчета");
ОбъектыКонфы.Вставить("РегистрыСведений", "Регистры сведений");
ОбъектыКонфы.Вставить("РегистрыБухгалтерии", "Регистры бухгалтерии");
ОбъектыКонфы.Вставить("РегистрыРасчета", "Регистры расчета");

// Определяем все возможные параметры
СтруктКонфы = Новый Структура();
СтруктКонфы.Вставить("Измерения", "Измерения");
СтруктКонфы.Вставить("Ресурсы", "Ресурсы");
СтруктКонфы.Вставить("Реквизиты", "Реквизиты");
СтруктКонфы.Вставить("Формы", "Формы");
СтруктКонфы.Вставить("Макеты", "Макеты");
СтруктКонфы.Вставить("Графы", "Графы");
СтруктКонфы.Вставить("ТабличныеЧасти", "Табличные части");
СтруктКонфы.Вставить("Значения", "Значения");

ВыгрузитьВWord(); // из 1С в Microsoft Word
ВыгрузитьВExcel(); // из 1C в Microsoft Excel
КонецПроцедуры


Код 1C v 7.x
 
Процедура Справочник()
Ворд=СоздатьОбъект("Word.Application");
Ворд.DisplayAlerts=0;

Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Код");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=?(Метаданные.Справочник(СокрЛП(Имя)).ТипКода="Текстовый","Строка","Число");
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип+" ("+СокрЛП(Метаданные.Справочник(СокрЛП(Имя)).ДлинаКода)+")");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("");

Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Наименование");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Строка ("+СокрЛП(Метаданные.Справочник(СокрЛП(Имя)).ДлинаНаименования)+")");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("");

Для Сч=1 По Метаданные.Справочник(СокрЛП(Имя)).Реквизит() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Реквизит=Метаданные.Справочник(СокрЛП(Имя)).Реквизит(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Предупреждение("Готово",5);
КонецПроцедуры

Процедура Документ()
Ворд=СоздатьОбъект("Word.Application");
Ворд.DisplayAlerts=0;

Для Сч=1 По Метаданные.Документ(СокрЛП(Имя)).РеквизитШапки() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Шапка");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Реквизит=Метаданные.Документ(СокрЛП(Имя)).РеквизитШапки(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Для Сч=1 По Метаданные.Документ(СокрЛП(Имя)).РеквизитТабличнойЧасти() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Таб. часть");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Реквизит=Метаданные.Документ(СокрЛП(Имя)).РеквизитТабличнойЧасти(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Предупреждение("Готово",5);
КонецПроцедуры

Процедура Общие()
Ворд=СоздатьОбъект("Word.Application");
Ворд.DisplayAlerts=0;

Для Сч=1 По Метаданные.ОбщийРеквизитДокумента() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Шапка");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Реквизит=Метаданные.ОбщийРеквизитДокумента(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Предупреждение("Готово",5);
КонецПроцедуры

Процедура СтруктураРегистра()
Ворд=СоздатьОбъект("Word.Application");
Ворд.DisplayAlerts=0;

Для Сч=1 По Метаданные.Регистр(СокрЛП(Имя)).Измерение() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Измерение");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Реквизит=Метаданные.Регистр(СокрЛП(Имя)).Измерение(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Для Сч=1 По Метаданные.Регистр(СокрЛП(Имя)).Ресурс() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Ресурс");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Реквизит=Метаданные.Регистр(СокрЛП(Имя)).Ресурс(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Для Сч=1 По Метаданные.Регистр(СокрЛП(Имя)).Реквизит() Цикл
Ворд.ActiveDocument.ActiveWindow.S_election.I_nsertRowsBelow(1);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveLeft(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText("Реквизит");
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Реквизит=Метаданные.Регистр(СокрЛП(Имя)).Реквизит(Сч);
Синоним=Реквизит.Синоним;
Если ПустоеЗначение(Синоним)=0 Тогда
Если нрег(СтрЗаменить(Синоним," ",""))<>нрег(Реквизит.Идентификатор) Тогда
Синоним=" ("+Синоним+")";
Иначе
Синоним="";
КонецЕсли;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(СокрЛП(Реквизит.Идентификатор)+Синоним);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Тип=Реквизит.Тип;
Если Тип="Строка" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина)+")";
ИначеЕсли Тип="Число" Тогда
Тип=Тип+" ("+СокрЛП(Реквизит.Длина);
Если ПустоеЗначение(Реквизит.Точность)=0 Тогда
Тип=Тип+"."+СокрЛП(Реквизит.Точность);
КонецЕсли;
Тип=Тип+")";
Иначе
Тип=Тип+"."+Реквизит.Вид;
КонецЕсли;
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Тип);
Ворд.ActiveDocument.ActiveWindow.S_election.MoveRight(1,1);
Ворд.ActiveDocument.ActiveWindow.S_election.TypeText(Реквизит.Комментарий);
КонецЦикла;
Предупреждение("Готово",5);
КонецПроцедуры

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/452.html