1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 |
Перем ОбъектыКонфы; Перем СтруктКонфы; Процедура ВыгрузитьВ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 КонецПроцедуры |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
Процедура Справочник() Ворд=СоздатьОбъект("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); КонецПроцедуры |