Проект

Общее

Профиль

Универсальные процедуры и функции » История » Версия 20

Всеволод Дорофеев, 04.06.2017 07:40

1 1 Всеволод Дорофеев
h1. Универсальные процедуры и функции
2 1 Всеволод Дорофеев
3 20 Всеволод Дорофеев
h3. Проверить, что описание типа состоит из единственного типа значения и совпадает с нужным типом.
4 20 Всеволод Дорофеев
5 20 Всеволод Дорофеев
<pre>
6 20 Всеволод Дорофеев
// Проверить, что описание типа состоит из единственного типа значения и 
7 20 Всеволод Дорофеев
// совпадает с нужным типом.
8 20 Всеволод Дорофеев
//
9 20 Всеволод Дорофеев
// Возвращаемое значение:
10 20 Всеволод Дорофеев
//   Булево      - Совпадает или нет
11 20 Всеволод Дорофеев
//
12 20 Всеволод Дорофеев
Функция ОписаниеТипаСостоитИзТипа(ОписаниеТипа, ТипЗначения) Экспорт
13 20 Всеволод Дорофеев
	
14 20 Всеволод Дорофеев
	Если ОписаниеТипа.Типы().Количество() = 1
15 20 Всеволод Дорофеев
	   И ОписаниеТипа.Типы().Получить(0) = ТипЗначения Тогда
16 20 Всеволод Дорофеев
		Возврат Истина;
17 20 Всеволод Дорофеев
	КонецЕсли;
18 20 Всеволод Дорофеев
	
19 20 Всеволод Дорофеев
	Возврат Ложь;
20 20 Всеволод Дорофеев
21 20 Всеволод Дорофеев
КонецФункции
22 20 Всеволод Дорофеев
</pre>
23 20 Всеволод Дорофеев
24 20 Всеволод Дорофеев
25 1 Всеволод Дорофеев
h3. Проверка битых ссылок
26 1 Всеволод Дорофеев
27 1 Всеволод Дорофеев
<pre>
28 1 Всеволод Дорофеев
ЭтоБитаяСсылка = не ЗначениеЗаполнено(Ссылка.ВерсияДанных);
29 1 Всеволод Дорофеев
</pre>
30 1 Всеволод Дорофеев
31 2 Всеволод Дорофеев
h3. МенеджерИсторииРаботыПользователя
32 3 Всеволод Дорофеев
33 4 Всеволод Дорофеев
<pre>
34 4 Всеволод Дорофеев
// Добавить событие в историю работы пользователя
35 4 Всеволод Дорофеев
ИсторияРаботыПользователя.Добавить(ПолучитьНавигационнуюСсылку(Объект.Ссылка));
36 4 Всеволод Дорофеев
</pre>
37 4 Всеволод Дорофеев
38 3 Всеволод Дорофеев
h3. ОтображениеСостояния
39 5 Всеволод Дорофеев
40 5 Всеволод Дорофеев
h3. Очистка окна сообщений
41 5 Всеволод Дорофеев
42 5 Всеволод Дорофеев
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
43 5 Всеволод Дорофеев
Пример:
44 5 Всеволод Дорофеев
<pre>
45 5 Всеволод Дорофеев
ОчиститьСообщения();
46 5 Всеволод Дорофеев
</pre>
47 6 Всеволод Дорофеев
48 8 Всеволод Дорофеев
h3. Отбор в таблице значений (табличной части) с помощью построителя запроса
49 6 Всеволод Дорофеев
50 6 Всеволод Дорофеев
<pre>
51 6 Всеволод Дорофеев
&НаСервере
52 8 Всеволод Дорофеев
Функция ПолучитьКоличествоПодобраноПоСтрокеНаСервере(ИсходнаяНоменклатура)
53 6 Всеволод Дорофеев
54 6 Всеволод Дорофеев
   ПостроительЗапр = Новый ПостроительЗапроса;
55 8 Всеволод Дорофеев
   ПостроительЗапр.ИсточникДанных = Новый ОписаниеИсточникаДанных(Объект.НоваяНоменклатура.Выгрузить());
56 8 Всеволод Дорофеев
   Отбор = ПостроительЗапр.Отбор.Добавить("ИсходнаяНоменклатура");
57 8 Всеволод Дорофеев
   Отбор.ВидСравнения = ВидСравнения.Равно;
58 8 Всеволод Дорофеев
   Отбор.Значение = ИсходнаяНоменклатура;
59 8 Всеволод Дорофеев
   Отбор.Использование = Истина;
60 6 Всеволод Дорофеев
   ПостроительЗапр.Выполнить();
61 8 Всеволод Дорофеев
   ПостроительЗапр.Результат.Выгрузить().Итог("Количество");
62 6 Всеволод Дорофеев
63 8 Всеволод Дорофеев
КонецФункции
64 6 Всеволод Дорофеев
</pre>
65 9 Всеволод Дорофеев
66 10 Всеволод Дорофеев
h3. Запись справочника
67 9 Всеволод Дорофеев
68 9 Всеволод Дорофеев
<pre>
69 9 Всеволод Дорофеев
Функция ЗаписатьСправочник(ТекущийОбъект,Заголовок="",РежимСообщений="Все",РежимЗагрузки=Ложь) Экспорт
70 9 Всеволод Дорофеев
	
71 9 Всеволод Дорофеев
	ДействиеВыполнено  = Ложь;
72 9 Всеволод Дорофеев
	
73 9 Всеволод Дорофеев
	ВыводитьОшибки     = ?(РежимСообщений="Все" ИЛИ РежимСообщений="Ошибки",Истина,Ложь);
74 9 Всеволод Дорофеев
	ВыводитьИнформацию = ?(РежимСообщений="Все",Истина,Ложь);
75 9 Всеволод Дорофеев
	
76 9 Всеволод Дорофеев
	Попытка
77 9 Всеволод Дорофеев
		Если РежимЗагрузки Тогда
78 9 Всеволод Дорофеев
			ТекущийОбъект.ОбменДанными.Загрузка = Истина;
79 9 Всеволод Дорофеев
		КонецЕсли; 
80 9 Всеволод Дорофеев
		ТекущийОбъект.Записать();
81 9 Всеволод Дорофеев
		ДействиеВыполнено = Истина;
82 9 Всеволод Дорофеев
		Если ВыводитьИнформацию Тогда
83 9 Всеволод Дорофеев
			ТекстСообщения = "Записан справочник """+ТекущийОбъект.Ссылка+""". ";
84 9 Всеволод Дорофеев
			СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
85 9 Всеволод Дорофеев
		КонецЕсли; 
86 9 Всеволод Дорофеев
	Исключение
87 9 Всеволод Дорофеев
		ДействиеВыполнено = Ложь;						
88 9 Всеволод Дорофеев
		Если ВыводитьОшибки Тогда
89 9 Всеволод Дорофеев
			ТекстСообщения = "Не удалось записать справочник """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
90 9 Всеволод Дорофеев
			СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
91 9 Всеволод Дорофеев
		КонецЕсли; 
92 9 Всеволод Дорофеев
	КонецПопытки;
93 9 Всеволод Дорофеев
	
94 9 Всеволод Дорофеев
	Возврат ДействиеВыполнено;
95 9 Всеволод Дорофеев
КонецФункции //ЗаписатьПровестиДокумент()
96 9 Всеволод Дорофеев
</pre>
97 9 Всеволод Дорофеев
98 9 Всеволод Дорофеев
99 9 Всеволод Дорофеев
100 9 Всеволод Дорофеев
h3. Запись и проведение документа
101 9 Всеволод Дорофеев
102 9 Всеволод Дорофеев
<pre>
103 9 Всеволод Дорофеев
// Процедура выполняет запись/проведение/отмену проведения документа.
104 9 Всеволод Дорофеев
//
105 9 Всеволод Дорофеев
// Параметры:
106 9 Всеволод Дорофеев
//  ТекущийОбъект  – ДокументОбъект,СправочникОбъект.
107 9 Всеволод Дорофеев
//  РежимЗаписи    - РежимЗаписиДокумента.
108 9 Всеволод Дорофеев
//  Заголовок      - Строка.
109 9 Всеволод Дорофеев
//  РежимСообщений - Строка: "Нет","Все","Ошибки".
110 9 Всеволод Дорофеев
//
111 9 Всеволод Дорофеев
// Возвращаемое значение:
112 9 Всеволод Дорофеев
//   ДействиеВыполнено   – Булево.
113 9 Всеволод Дорофеев
//
114 9 Всеволод Дорофеев
Функция ЗаписатьПровестиДокумент(ТекущийОбъект,РежимЗаписи,Заголовок="",РежимСообщений="Все") Экспорт
115 9 Всеволод Дорофеев
	
116 9 Всеволод Дорофеев
	ДействиеВыполнено  = Ложь;
117 9 Всеволод Дорофеев
	
118 9 Всеволод Дорофеев
	ВыводитьОшибки     = ?(РежимСообщений="Все" ИЛИ РежимСообщений="Ошибки",Истина,Ложь);
119 9 Всеволод Дорофеев
	ВыводитьИнформацию = ?(РежимСообщений="Все",Истина,Ложь);
120 9 Всеволод Дорофеев
	
121 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.Запись ИЛИ РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
122 9 Всеволод Дорофеев
		
123 9 Всеволод Дорофеев
		Попытка
124 9 Всеволод Дорофеев
			
125 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.Запись);
126 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
127 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
128 9 Всеволод Дорофеев
				ТекстСообщения = "Записан документ """+ТекущийОбъект.Ссылка+""". ";
129 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
130 9 Всеволод Дорофеев
			КонецЕсли; 
131 9 Всеволод Дорофеев
		Исключение
132 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
133 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
134 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось записать документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
135 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
136 9 Всеволод Дорофеев
			КонецЕсли; 
137 9 Всеволод Дорофеев
		КонецПопытки;
138 9 Всеволод Дорофеев
		
139 9 Всеволод Дорофеев
	КонецЕсли; 
140 9 Всеволод Дорофеев
	
141 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
142 9 Всеволод Дорофеев
		
143 9 Всеволод Дорофеев
		Попытка
144 9 Всеволод Дорофеев
			
145 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.Проведение);
146 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
147 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
148 9 Всеволод Дорофеев
				ТекстСообщения = "Проведен документ """+ТекущийОбъект.Ссылка+""". ";
149 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
150 9 Всеволод Дорофеев
			КонецЕсли; 			
151 9 Всеволод Дорофеев
		Исключение
152 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
153 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
154 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось провести документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
155 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
156 9 Всеволод Дорофеев
			КонецЕсли; 
157 9 Всеволод Дорофеев
		КонецПопытки;
158 9 Всеволод Дорофеев
		
159 9 Всеволод Дорофеев
	КонецЕсли; 
160 9 Всеволод Дорофеев
	
161 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
162 9 Всеволод Дорофеев
		
163 9 Всеволод Дорофеев
		Попытка
164 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
165 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
166 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
167 9 Всеволод Дорофеев
				ТекстСообщения = "Отменено проведение документа """+ТекущийОбъект.Ссылка+""". ";
168 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
169 9 Всеволод Дорофеев
			КонецЕсли; 			
170 9 Всеволод Дорофеев
		Исключение
171 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
172 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
173 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось отменить проведение документа """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
174 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
175 9 Всеволод Дорофеев
			КонецЕсли; 
176 9 Всеволод Дорофеев
		КонецПопытки;
177 9 Всеволод Дорофеев
		
178 9 Всеволод Дорофеев
	КонецЕсли; 
179 9 Всеволод Дорофеев
	
180 9 Всеволод Дорофеев
	Возврат ДействиеВыполнено;
181 9 Всеволод Дорофеев
КонецФункции // ЗаписатьПровестиДокумент()
182 9 Всеволод Дорофеев
183 9 Всеволод Дорофеев
</pre>
184 11 Всеволод Дорофеев
185 11 Всеволод Дорофеев
h3. Проверка на пустую дату
186 11 Всеволод Дорофеев
187 11 Всеволод Дорофеев
Пустая дата
188 11 Всеволод Дорофеев
<pre>
189 11 Всеволод Дорофеев
Дата("00010101");
190 12 Всеволод Дорофеев
Дата(1, 1, 1);
191 12 Всеволод Дорофеев
Дата("00010101000000");
192 12 Всеволод Дорофеев
Дата("0001-01-01");
193 11 Всеволод Дорофеев
</pre>
194 13 Всеволод Дорофеев
195 14 Всеволод Дорофеев
h3.  Создание структуры со свойствами, как колонки таблицы, переданной строки
196 13 Всеволод Дорофеев
197 13 Всеволод Дорофеев
<pre>
198 13 Всеволод Дорофеев
// Функция СтрокаТаблицыЗначенийВСтруктуру создает
199 13 Всеволод Дорофеев
// структуру со свойствами, как колонки таблицы
200 13 Всеволод Дорофеев
// значений передаваемой строки
201 13 Всеволод Дорофеев
// и устанавливает этим свойствам значения
202 13 Всеволод Дорофеев
// из строки таблицы значений.
203 13 Всеволод Дорофеев
// 
204 13 Всеволод Дорофеев
// Параметры:
205 13 Всеволод Дорофеев
//  СтрокаТаблицыЗначений - СтрокаТаблицыЗначений.
206 13 Всеволод Дорофеев
//
207 13 Всеволод Дорофеев
// ВозвращаемоеЗначение:
208 13 Всеволод Дорофеев
//  Структура
209 13 Всеволод Дорофеев
//
210 13 Всеволод Дорофеев
Функция СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений) Экспорт
211 13 Всеволод Дорофеев
	
212 13 Всеволод Дорофеев
	Структура = Новый Структура;
213 13 Всеволод Дорофеев
	Для каждого Колонка Из СтрокаТаблицыЗначений.Владелец().Колонки Цикл
214 13 Всеволод Дорофеев
		Структура.Вставить(Колонка.Имя, СтрокаТаблицыЗначений[Колонка.Имя]);
215 13 Всеволод Дорофеев
	КонецЦикла;
216 13 Всеволод Дорофеев
	
217 13 Всеволод Дорофеев
	Возврат Структура;
218 13 Всеволод Дорофеев
	
219 13 Всеволод Дорофеев
КонецФункции
220 13 Всеволод Дорофеев
221 13 Всеволод Дорофеев
</pre>
222 15 Всеволод Дорофеев
223 15 Всеволод Дорофеев
h3. Загрузка таблицы/соответствия из макета с помощью построителя отчета
224 15 Всеволод Дорофеев
225 15 Всеволод Дорофеев
<pre>
226 15 Всеволод Дорофеев
Функция ЗаполнитьСоответствиеИзМакета(ИмяМакета)
227 15 Всеволод Дорофеев
	
228 15 Всеволод Дорофеев
	Макет = ПолучитьМакет(ИмяМакета);
229 15 Всеволод Дорофеев
	ПостроительЗапроса = Новый ПостроительЗапроса;
230 15 Всеволод Дорофеев
	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Макет.Область());
231 15 Всеволод Дорофеев
	ТЗ = ПостроительЗапроса.Результат.Выгрузить();
232 15 Всеволод Дорофеев
233 15 Всеволод Дорофеев
	Результат = Новый Соответствие;
234 15 Всеволод Дорофеев
	Для каждого Стр Из ТЗ Цикл
235 15 Всеволод Дорофеев
		Результат.Вставить(Стр.Колонка1, Стр.Колонка2);
236 15 Всеволод Дорофеев
	КонецЦикла;
237 15 Всеволод Дорофеев
 
238 15 Всеволод Дорофеев
	Возврат Результат;
239 15 Всеволод Дорофеев
	
240 15 Всеволод Дорофеев
КонецФункции
241 15 Всеволод Дорофеев
242 15 Всеволод Дорофеев
</pre>
243 16 Всеволод Дорофеев
244 16 Всеволод Дорофеев
h3. Варианты преобразования даты из строки (конвертация строки в дату)
245 16 Всеволод Дорофеев
246 16 Всеволод Дорофеев
Проще всего преобразовать строку вида «20151215204222» используя метод «Дата»:
247 16 Всеволод Дорофеев
248 16 Всеволод Дорофеев
    Дата(«20151215204222»)  // 15.12.2015 20:42:22
249 16 Всеволод Дорофеев
250 16 Всеволод Дорофеев
Со строкой «15.12.2015 20:42:22» также прекрасно справляется типовой метод:
251 16 Всеволод Дорофеев
252 16 Всеволод Дорофеев
    Дата(«15.12.2015 20:42:22»)  //15.12.2015 20:42:22
253 16 Всеволод Дорофеев
254 16 Всеволод Дорофеев
Второй вариант, если мы знаем отдельные составляющие даты в строковом формате: год, месяц, день и т.д:
255 16 Всеволод Дорофеев
256 16 Всеволод Дорофеев
    Дата(«2015″,»12″,»15″,»20″,»42″,»22»)  // 15.12.2015 20:42:22
257 16 Всеволод Дорофеев
258 16 Всеволод Дорофеев
Пример преобразования строки вида «2015-12-15 20:42:22»:
259 16 Всеволод Дорофеев
260 16 Всеволод Дорофеев
    СтроковаяДата = «2015-12-15 20:42:22»;
261 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «-«,»»);
262 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
263 16 Всеволод Дорофеев
    НоваяДата = Дата(СтроковаяДата ); // 15.12.2015 20:42:22
264 16 Всеволод Дорофеев
265 16 Всеволод Дорофеев
Если дата указан так «20:42:22 2015/12/15» можно преобразовать её следующим образом:
266 16 Всеволод Дорофеев
267 16 Всеволод Дорофеев
    СтроковаяДата = «20:42:22 2015/12/15»;
268 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «/»,»»);
269 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
270 16 Всеволод Дорофеев
    НоваяДата = Дата(Прав(СтроковаяДата , 8) + Лев(СтроковаяДата ,6));
271 17 Всеволод Дорофеев
272 17 Всеволод Дорофеев
h3. Генератор случайных чисел
273 17 Всеволод Дорофеев
274 17 Всеволод Дорофеев
<pre>
275 17 Всеволод Дорофеев
		ГСЧ = Новый ГенераторСлучайныхЧисел();
276 17 Всеволод Дорофеев
		СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, 100000);
277 17 Всеволод Дорофеев
</pre>
278 18 Всеволод Дорофеев
279 18 Всеволод Дорофеев
h3. Пересохранение книги в Эксель (Excel) с отображением листов
280 18 Всеволод Дорофеев
281 18 Всеволод Дорофеев
http://infostart.ru/public/323606/
282 18 Всеволод Дорофеев
Код:
283 18 Всеволод Дорофеев
284 18 Всеволод Дорофеев
Для v8:
285 18 Всеволод Дорофеев
286 18 Всеволод Дорофеев
<pre>
287 18 Всеволод Дорофеев
ТабДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS);
288 18 Всеволод Дорофеев
289 18 Всеволод Дорофеев
Excel = Новый COMОбъект("Excel.Application");
290 18 Всеволод Дорофеев
Excel.WorkBooks.Open(ПолноеИмяФайла); 
291 18 Всеволод Дорофеев
Excel.Visible = 0;
292 18 Всеволод Дорофеев
293 18 Всеволод Дорофеев
Excel.ActiveWindow.DisplayWorkbookTabs = 1; 
294 18 Всеволод Дорофеев
Excel.ActiveWindow.TabRatio = 0.6;         
295 18 Всеволод Дорофеев
296 18 Всеволод Дорофеев
FullName = Excel.ActiveWorkbook.FullName;            
297 18 Всеволод Дорофеев
Excel.DisplayAlerts = false;
298 18 Всеволод Дорофеев
Excel.ActiveWorkbook.SaveAs(FullName, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013
299 18 Всеволод Дорофеев
300 18 Всеволод Дорофеев
//Excel.Visible = 1;       // если нужно поработать дальше с книгой
301 18 Всеволод Дорофеев
//Excel.Application.Quit() // если просто выходим
302 18 Всеволод Дорофеев
</pre> 
303 18 Всеволод Дорофеев
304 18 Всеволод Дорофеев
Для v7.7:
305 18 Всеволод Дорофеев
306 18 Всеволод Дорофеев
<pre>
307 18 Всеволод Дорофеев
308 18 Всеволод Дорофеев
ТабДокумент.Записать(ПолноеИмяФайла, "XLS");
309 18 Всеволод Дорофеев
310 18 Всеволод Дорофеев
Excel = СоздатьОбъект("Excel.Application");
311 18 Всеволод Дорофеев
Excel.WorkBooks.Open(ПолноеИмяФайла); 
312 18 Всеволод Дорофеев
Excel.Visible = 0; 
313 18 Всеволод Дорофеев
314 18 Всеволод Дорофеев
Excel.ActiveWindow.DisplayWorkbookTabs = 1; 
315 18 Всеволод Дорофеев
Excel.ActiveWindow.TabRatio = 0.6;
316 18 Всеволод Дорофеев
317 18 Всеволод Дорофеев
FullName = Excel.ActiveWorkbook.FullName;            
318 18 Всеволод Дорофеев
Excel.DisplayAlerts = false;
319 18 Всеволод Дорофеев
Excel.ActiveWorkbook.SaveAs(FullName, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013
320 18 Всеволод Дорофеев
321 18 Всеволод Дорофеев
//Excel.Visible = 1;       // если нужно поработать дальше с книгой
322 18 Всеволод Дорофеев
//Excel.Application.Quit() // если просто выходим
323 18 Всеволод Дорофеев
</pre>