Перем ОбъектыКонфы; Перем СтруктКонфы; Процедура ВыгрузитьВ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); КонецПроцедуры
Процедура ВывестиСписокЭлементовСправочникаВWord() спр1=создатьобъект("справочник.сотрудники"); спр1.ИспользоватьДату(ТекущаяДата()); Сообщить( спр1.НайтиПоНаименованию("Администрация",0,1)); Сообщить(спр1.ПолучитьАтрибут("Наименование")); сотр=создатьобъект("справочник.сотрудники"); сотр.ИспользоватьДату(ТекущаяДата()); сотр.ИспользоватьРодителя(спр1); отчет=создатьобъект("word.application"); отчет.visible = 1; отчет.documents.add("d:\spisok.dot"); отчет.documents(1).tables(1).cell(1,2).range.text= спр1.ПолучитьАтрибут("Наименование"); сотр.ВыбратьЭлементы(); ном=2; Пока сотр.ПолучитьЭлемент(1)=1 цикл Сообщить(сотр.ПолучитьАтрибут("Наименование")); отчет.documents(1).tables(2).cell(ном,1).range.text = сотр.ПолучитьАтрибут("Код"); отчет.documents(1).tables(2).cell(ном,2).range.text = сотр.ПолучитьАтрибут("Наименование"); отчет.documents(1).tables(2).cell(ном,3).range.text = сотр.ПолучитьАтрибут("Должность"); отчет.documents(1).tables(2).cell(ном,4).range.text = сотр.ПолучитьАтрибут("Оклад"); отчет.documents(1).tables(2).rows.add(); ном=ном+1; КонецЦикла; КонецПроцедуры
Процедура ПечатьВWord() wrd=создатьобъект("word.application"); wrd.documents.add("D:\doc.dot"); wrd.visible=1; wrd.documents(1).tables(1).cell(1,2).range.text = НомерДок; wrd.documents(1).tables(1).cell(1,4).range.text = ДатаДок; wrd.documents(1).tables(1).cell(2,2).range.text = Склад.Наименование; wrd.documents(1).tables(1).cell(3,2).range.text = Получатель.Наименование; ВыбратьСтроки(); n=КоличествоСтрок() ; Для i=1 по n-1 Цикл wrd.documents(1).tables(2).rows.add(wrd.documents(1).tables(2).rows(2).range) КонецЦикла; стр = 2; Пока ПолучитьСтроку()=1 Цикл wrd.documents(1).tables(2).cell(стр,1).range.text = НомерСтроки; wrd.documents(1).tables(2).cell(стр,2).range.text =Строка(Товар); wrd.documents(1).tables(2).cell(стр,4).range.text =Строка(Цена); wrd.documents(1).tables(2).cell(стр,3).range.text =Строка(Количество); wrd.documents(1).tables(2).cell(стр,5).range.text =Строка(Сумма); стр=стр+1; КонецЦикла; СуммаДокумента = Итог("Сумма"); wrd.documents(1).tables(2).cell(стр,5).range.text =Строка(СуммаДокумента); КонецПроцедуры