МСВорд = СоздатьОбъект("Word.Application"); Документ = МСВорд.Documents; Документ.Add(); Документ = МСВорд.ActiveDocument(); Документ.Paragraphs.Add(); Диапазон = Документ.Paragraphs(Документ.Paragraphs.Count()).Range; //Добавим таблицу фиксированного размера 3х2 Документ.Tables.Add(Диапазон,3,2); Документ.Tables(1).Range.S_elect(); Выбор = МСВорд.S_election(); Выбор.Style = "Сетка таблицы"; //Установим ширину обоих колонок по 8 см Документ.Tables(1).Columns(1).Width= МСВорд.CentimetersToPoints(8); Документ.Tables(1).Columns(2).Width= МСВорд.CentimetersToPoints(8); //Заполнение Документ.Tables(1).Cell(1,1).Range.Text = "Это первая сирока, первая колонка"; Документ.Tables(1).Cell(2,1).Range.Text = ""; Документ.Tables(1).Cell(3,1).Range.Text = ""; Документ.Tables(1).Cell(1,2).Range.Text = ""; Документ.Tables(1).Cell(2,2).Range.Text = ""; Документ.Tables(1).Cell(3,2).Range.Text = "Это третья строка, вторая колонка"; //Добавим таблицу с произвольным количеством строк, для примера возьмем 4 колонки //Сначала выведем заголовок таблицы Документ.Paragraphs.Add(); Диапазон = Документ.Paragraphs(Документ.Paragraphs.Count()).Range; Документ.Tables.Add(Диапазон,1,4); Документ.Tables(2).Range.S_elect(); Выбор = МСВорд.S_election(); Выбор.Style = "Сетка таблицы"; Выбор.Rows.AllowBreakAcrossPages = 0; //Зададим ширину колонок Документ.Tables(2).Columns(1).Width= МСВорд.CentimetersToPoints(2); Документ.Tables(2).Columns(2).Width= МСВорд.CentimetersToPoints(4); Документ.Tables(2).Columns(3).Width= МСВорд.CentimetersToPoints(4); Документ.Tables(2).Columns(4).Width= МСВорд.CentimetersToPoints(10); //Заполнение шапки таблицы Документ.Tables(2).Cell(1,1).Range.Paragraphs(1).Alignment = 1; Документ.Tables(2).Cell(1,1).Range.Text = "№"; Документ.Tables(2).Cell(1,2).Range.Paragraphs(1).Alignment = 1; Документ.Tables(2).Cell(1,2).Range.Text = "Колонка 2"; Документ.Tables(2).Cell(1,3).Range.Paragraphs(1).Alignment = 1; Документ.Tables(2).Cell(1,3).Range.Text = "Колонка 3"; Документ.Tables(2).Cell(1,4).Range.Paragraphs(1).Alignment = 1; Документ.Tables(2).Cell(1,4).Range.Text = "Примечание"; //Для документа можно так цикл организовать: //Предположим, что Док - это документ, тогда Для А =1 По Док.КоличествоСтрок() Цикл Док.ПолучитьСтрокуПоНомеру(А); Выбор.I_nsertRowsBelow(1); Документ.Tables(2).Cell(А+1,1).Range.Text = Строка(А);//номер строки Документ.Tables(2).Cell(А+1,2).Range.Text = Док.РеквизитТабличнойЧастиДокумента1; Документ.Tables(2).Cell(А+1,3).Range.Text = Док.РеквизитТабличнойЧастиДокумента2; Документ.Tables(2).Cell(А+1,4).Range.Text = Док.РеквизитТабличнойЧастиДокумента3; КонецЦикла; //или выведем таблицу по таблице значений Для А = 1 По ТЗ.КоличествоСтрок() Цикл //Добавим строку в таблицу Выбор.I_nsertRowsBelow(1); Документ.Tables(2).Cell(А+1,1).Range.Text = Строка(А);//номер строки Документ.Tables(2).Cell(А+1,2).Range.Text = ТЗ.ПолучитьЗначение(А,1); Документ.Tables(2).Cell(А+1,3).Range.Text = ТЗ.ПолучитьЗначение(А,2); Документ.Tables(2).Cell(А+1,4).Range.Text = ТЗ.ПолучитьЗначение(А,3); КонецЦикла; //Запишем Документ Документ.SaveAs("ПутьИИмяДокумента",0); Документ.Close();
Для А =1 По Док.КоличествоСтрок() Цикл Док.ПолучитьСтрокуПоНомеру(А); Выбор.I_nsertRowsBelow(1); Документ.Tables(2).Cell(А+1,1).Range.Text = Строка(А);//номер строки Документ.Tables(2).Cell(А+1,2).Range.Text = Док.РеквизитТабличнойЧастиДокумента1; Документ.Tables(2).Cell(А+1,3).Range.Text = Док.РеквизитТабличнойЧастиДокумента2; Документ.Tables(2).Cell(А+1,4).Range.Text = Док.РеквизитТабличнойЧастиДокумента3; КонецЦикла;
Перем ОбъектыКонфы; Перем СтруктКонфы; Процедура ВыгрузитьВ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 КонецПроцедуры
Процедура Справочник() Ворд=СоздатьОбъект("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); КонецПроцедуры