Код 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 ) ;
КонецПроцедуры