helpf.pro
Регистрация
 +1 
Распечатать

Выгрузка метаданных конфигурации в 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);
КонецПроцедуры 
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 23028
 +1 
Распечатать
Возможно, вас также заинтересует
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 2
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э
Excel файл как Внешний источник данных 17
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img
SMTP greeting failure: 421 SMTP connection broken (reply) 8
Опи­са­ние ошиб­ки: С сен­тяб­ря 2014 Ян­декс.Почта, Mail.ru пе­ре­шли на про­то­кол SSL, что сде­ла­ло их еще более без­опас­ны­ми. Чтобы и даль­ше ра­бо­тать с пись­ма­ми через 1С, Вам нужно из­ме­нить их на­строй­ки и вне­сти до­ра­бот­ки в код
Автоматическая архивация баз 1С 8.х для файлового и клиент-серверного варианта 6
Данный способ архивации подходит для файловых и SQL версий баз 1С: И так: 1. Создаем скрипт vbs и сохраняем его в C:BackupZUP.vbs Set WshShell = CreateObject(" WScript.Shell" ) dim d,m,y d = day(date()) if d 10 then d = " 0" d end
Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 9
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем: Первым делом настроим автоматическую архивац
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!