Проект

Общее

Профиль

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

Всеволод Дорофеев, 11.01.2020 13:09

1 1 Всеволод Дорофеев
h1. Универсальные процедуры и функции
2 1 Всеволод Дорофеев
3 23 Всеволод Дорофеев
h3. Процедуры и функции общего назначения
4 23 Всеволод Дорофеев
5 23 Всеволод Дорофеев
<pre>
6 23 Всеволод Дорофеев
	КонтактноеЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователи.ТекущийПользователь(), "ФизическоеЛицо");
7 23 Всеволод Дорофеев
</pre>
8 23 Всеволод Дорофеев
9 20 Всеволод Дорофеев
h3. Проверить, что описание типа состоит из единственного типа значения и совпадает с нужным типом.
10 20 Всеволод Дорофеев
11 20 Всеволод Дорофеев
<pre>
12 20 Всеволод Дорофеев
// Проверить, что описание типа состоит из единственного типа значения и 
13 20 Всеволод Дорофеев
// совпадает с нужным типом.
14 20 Всеволод Дорофеев
//
15 20 Всеволод Дорофеев
// Возвращаемое значение:
16 20 Всеволод Дорофеев
//   Булево      - Совпадает или нет
17 20 Всеволод Дорофеев
//
18 20 Всеволод Дорофеев
Функция ОписаниеТипаСостоитИзТипа(ОписаниеТипа, ТипЗначения) Экспорт
19 20 Всеволод Дорофеев
	
20 20 Всеволод Дорофеев
	Если ОписаниеТипа.Типы().Количество() = 1
21 20 Всеволод Дорофеев
	   И ОписаниеТипа.Типы().Получить(0) = ТипЗначения Тогда
22 20 Всеволод Дорофеев
		Возврат Истина;
23 20 Всеволод Дорофеев
	КонецЕсли;
24 20 Всеволод Дорофеев
	
25 20 Всеволод Дорофеев
	Возврат Ложь;
26 20 Всеволод Дорофеев
27 20 Всеволод Дорофеев
КонецФункции
28 20 Всеволод Дорофеев
</pre>
29 21 Всеволод Дорофеев
УТ11:
30 21 Всеволод Дорофеев
<pre>
31 21 Всеволод Дорофеев
	ОписаниеСвойства.Булево = ОбщегоНазначения.ОписаниеТипаСостоитИзТипа(ТипЗначенияСвойства, Тип("Булево"));
32 21 Всеволод Дорофеев
</pre>
33 20 Всеволод Дорофеев
34 22 Всеволод Дорофеев
h3. Функция ЕстьРеквизитОбъекта - проверяет наличие у произвольного объекта реквизита с указанным именем (УТ11.ОбщегоНазначенияУТКлиентСервер)
35 22 Всеволод Дорофеев
36 22 Всеволод Дорофеев
<pre>
37 22 Всеволод Дорофеев
#Область МетодыРаботыСРеквизитамиОбъектов
38 22 Всеволод Дорофеев
39 22 Всеволод Дорофеев
// Проверяет наличие у произвольного объекта реквизита с указанным именем.
40 22 Всеволод Дорофеев
//
41 22 Всеволод Дорофеев
Функция ЕстьРеквизитОбъекта(Объект, ИмяРеквизита) Экспорт
42 22 Всеволод Дорофеев
	
43 22 Всеволод Дорофеев
	КлючУникальности   = Новый УникальныйИдентификатор;
44 22 Всеволод Дорофеев
	СтруктураРеквизита = Новый Структура(ИмяРеквизита, КлючУникальности);
45 22 Всеволод Дорофеев
46 22 Всеволод Дорофеев
	ЗаполнитьЗначенияСвойств(СтруктураРеквизита, Объект);
47 22 Всеволод Дорофеев
	
48 22 Всеволод Дорофеев
	Возврат СтруктураРеквизита[ИмяРеквизита] <> КлючУникальности;
49 22 Всеволод Дорофеев
	
50 22 Всеволод Дорофеев
КонецФункции
51 22 Всеволод Дорофеев
52 22 Всеволод Дорофеев
#КонецОбласти
53 22 Всеволод Дорофеев
</pre>
54 22 Всеволод Дорофеев
55 1 Всеволод Дорофеев
h3. Проверка битых ссылок
56 1 Всеволод Дорофеев
57 1 Всеволод Дорофеев
<pre>
58 1 Всеволод Дорофеев
ЭтоБитаяСсылка = не ЗначениеЗаполнено(Ссылка.ВерсияДанных);
59 1 Всеволод Дорофеев
</pre>
60 1 Всеволод Дорофеев
61 2 Всеволод Дорофеев
h3. МенеджерИсторииРаботыПользователя
62 3 Всеволод Дорофеев
63 4 Всеволод Дорофеев
<pre>
64 4 Всеволод Дорофеев
// Добавить событие в историю работы пользователя
65 4 Всеволод Дорофеев
ИсторияРаботыПользователя.Добавить(ПолучитьНавигационнуюСсылку(Объект.Ссылка));
66 4 Всеволод Дорофеев
</pre>
67 4 Всеволод Дорофеев
68 3 Всеволод Дорофеев
h3. ОтображениеСостояния
69 5 Всеволод Дорофеев
70 5 Всеволод Дорофеев
h3. Очистка окна сообщений
71 5 Всеволод Дорофеев
72 5 Всеволод Дорофеев
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
73 5 Всеволод Дорофеев
Пример:
74 5 Всеволод Дорофеев
<pre>
75 5 Всеволод Дорофеев
ОчиститьСообщения();
76 5 Всеволод Дорофеев
</pre>
77 6 Всеволод Дорофеев
78 8 Всеволод Дорофеев
h3. Отбор в таблице значений (табличной части) с помощью построителя запроса
79 6 Всеволод Дорофеев
80 6 Всеволод Дорофеев
<pre>
81 6 Всеволод Дорофеев
&НаСервере
82 8 Всеволод Дорофеев
Функция ПолучитьКоличествоПодобраноПоСтрокеНаСервере(ИсходнаяНоменклатура)
83 6 Всеволод Дорофеев
84 6 Всеволод Дорофеев
   ПостроительЗапр = Новый ПостроительЗапроса;
85 8 Всеволод Дорофеев
   ПостроительЗапр.ИсточникДанных = Новый ОписаниеИсточникаДанных(Объект.НоваяНоменклатура.Выгрузить());
86 8 Всеволод Дорофеев
   Отбор = ПостроительЗапр.Отбор.Добавить("ИсходнаяНоменклатура");
87 8 Всеволод Дорофеев
   Отбор.ВидСравнения = ВидСравнения.Равно;
88 8 Всеволод Дорофеев
   Отбор.Значение = ИсходнаяНоменклатура;
89 8 Всеволод Дорофеев
   Отбор.Использование = Истина;
90 6 Всеволод Дорофеев
   ПостроительЗапр.Выполнить();
91 8 Всеволод Дорофеев
   ПостроительЗапр.Результат.Выгрузить().Итог("Количество");
92 6 Всеволод Дорофеев
93 8 Всеволод Дорофеев
КонецФункции
94 6 Всеволод Дорофеев
</pre>
95 9 Всеволод Дорофеев
96 10 Всеволод Дорофеев
h3. Запись справочника
97 9 Всеволод Дорофеев
98 9 Всеволод Дорофеев
<pre>
99 9 Всеволод Дорофеев
Функция ЗаписатьСправочник(ТекущийОбъект,Заголовок="",РежимСообщений="Все",РежимЗагрузки=Ложь) Экспорт
100 9 Всеволод Дорофеев
	
101 9 Всеволод Дорофеев
	ДействиеВыполнено  = Ложь;
102 9 Всеволод Дорофеев
	
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 Всеволод Дорофеев
</pre>
127 9 Всеволод Дорофеев
128 9 Всеволод Дорофеев
129 9 Всеволод Дорофеев
130 9 Всеволод Дорофеев
h3. Запись и проведение документа
131 9 Всеволод Дорофеев
132 9 Всеволод Дорофеев
<pre>
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 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
184 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось провести документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
185 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
186 9 Всеволод Дорофеев
			КонецЕсли; 
187 9 Всеволод Дорофеев
		КонецПопытки;
188 9 Всеволод Дорофеев
		
189 9 Всеволод Дорофеев
	КонецЕсли; 
190 9 Всеволод Дорофеев
	
191 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
192 9 Всеволод Дорофеев
		
193 9 Всеволод Дорофеев
		Попытка
194 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
195 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
196 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
197 9 Всеволод Дорофеев
				ТекстСообщения = "Отменено проведение документа """+ТекущийОбъект.Ссылка+""". ";
198 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
199 9 Всеволод Дорофеев
			КонецЕсли; 			
200 9 Всеволод Дорофеев
		Исключение
201 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
202 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
203 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось отменить проведение документа """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
204 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
205 9 Всеволод Дорофеев
			КонецЕсли; 
206 9 Всеволод Дорофеев
		КонецПопытки;
207 9 Всеволод Дорофеев
		
208 9 Всеволод Дорофеев
	КонецЕсли; 
209 9 Всеволод Дорофеев
	
210 9 Всеволод Дорофеев
	Возврат ДействиеВыполнено;
211 9 Всеволод Дорофеев
КонецФункции // ЗаписатьПровестиДокумент()
212 9 Всеволод Дорофеев
213 9 Всеволод Дорофеев
</pre>
214 11 Всеволод Дорофеев
215 11 Всеволод Дорофеев
h3. Проверка на пустую дату
216 11 Всеволод Дорофеев
217 11 Всеволод Дорофеев
Пустая дата
218 11 Всеволод Дорофеев
<pre>
219 11 Всеволод Дорофеев
Дата("00010101");
220 12 Всеволод Дорофеев
Дата(1, 1, 1);
221 12 Всеволод Дорофеев
Дата("00010101000000");
222 12 Всеволод Дорофеев
Дата("0001-01-01");
223 11 Всеволод Дорофеев
</pre>
224 13 Всеволод Дорофеев
225 14 Всеволод Дорофеев
h3.  Создание структуры со свойствами, как колонки таблицы, переданной строки
226 13 Всеволод Дорофеев
227 13 Всеволод Дорофеев
<pre>
228 13 Всеволод Дорофеев
// Функция СтрокаТаблицыЗначенийВСтруктуру создает
229 13 Всеволод Дорофеев
// структуру со свойствами, как колонки таблицы
230 13 Всеволод Дорофеев
// значений передаваемой строки
231 13 Всеволод Дорофеев
// и устанавливает этим свойствам значения
232 13 Всеволод Дорофеев
// из строки таблицы значений.
233 13 Всеволод Дорофеев
// 
234 13 Всеволод Дорофеев
// Параметры:
235 13 Всеволод Дорофеев
//  СтрокаТаблицыЗначений - СтрокаТаблицыЗначений.
236 13 Всеволод Дорофеев
//
237 13 Всеволод Дорофеев
// ВозвращаемоеЗначение:
238 13 Всеволод Дорофеев
//  Структура
239 13 Всеволод Дорофеев
//
240 13 Всеволод Дорофеев
Функция СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений) Экспорт
241 13 Всеволод Дорофеев
	
242 13 Всеволод Дорофеев
	Структура = Новый Структура;
243 13 Всеволод Дорофеев
	Для каждого Колонка Из СтрокаТаблицыЗначений.Владелец().Колонки Цикл
244 13 Всеволод Дорофеев
		Структура.Вставить(Колонка.Имя, СтрокаТаблицыЗначений[Колонка.Имя]);
245 13 Всеволод Дорофеев
	КонецЦикла;
246 13 Всеволод Дорофеев
	
247 13 Всеволод Дорофеев
	Возврат Структура;
248 13 Всеволод Дорофеев
	
249 13 Всеволод Дорофеев
КонецФункции
250 13 Всеволод Дорофеев
251 13 Всеволод Дорофеев
</pre>
252 15 Всеволод Дорофеев
253 15 Всеволод Дорофеев
h3. Загрузка таблицы/соответствия из макета с помощью построителя отчета
254 15 Всеволод Дорофеев
255 15 Всеволод Дорофеев
<pre>
256 15 Всеволод Дорофеев
Функция ЗаполнитьСоответствиеИзМакета(ИмяМакета)
257 15 Всеволод Дорофеев
	
258 15 Всеволод Дорофеев
	Макет = ПолучитьМакет(ИмяМакета);
259 15 Всеволод Дорофеев
	ПостроительЗапроса = Новый ПостроительЗапроса;
260 15 Всеволод Дорофеев
	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Макет.Область());
261 15 Всеволод Дорофеев
	ТЗ = ПостроительЗапроса.Результат.Выгрузить();
262 15 Всеволод Дорофеев
263 15 Всеволод Дорофеев
	Результат = Новый Соответствие;
264 15 Всеволод Дорофеев
	Для каждого Стр Из ТЗ Цикл
265 15 Всеволод Дорофеев
		Результат.Вставить(Стр.Колонка1, Стр.Колонка2);
266 15 Всеволод Дорофеев
	КонецЦикла;
267 15 Всеволод Дорофеев
 
268 15 Всеволод Дорофеев
	Возврат Результат;
269 15 Всеволод Дорофеев
	
270 15 Всеволод Дорофеев
КонецФункции
271 15 Всеволод Дорофеев
272 15 Всеволод Дорофеев
</pre>
273 16 Всеволод Дорофеев
274 16 Всеволод Дорофеев
h3. Варианты преобразования даты из строки (конвертация строки в дату)
275 16 Всеволод Дорофеев
276 16 Всеволод Дорофеев
Проще всего преобразовать строку вида «20151215204222» используя метод «Дата»:
277 16 Всеволод Дорофеев
278 16 Всеволод Дорофеев
    Дата(«20151215204222»)  // 15.12.2015 20:42:22
279 16 Всеволод Дорофеев
280 16 Всеволод Дорофеев
Со строкой «15.12.2015 20:42:22» также прекрасно справляется типовой метод:
281 16 Всеволод Дорофеев
282 16 Всеволод Дорофеев
    Дата(«15.12.2015 20:42:22»)  //15.12.2015 20:42:22
283 16 Всеволод Дорофеев
284 16 Всеволод Дорофеев
Второй вариант, если мы знаем отдельные составляющие даты в строковом формате: год, месяц, день и т.д:
285 16 Всеволод Дорофеев
286 16 Всеволод Дорофеев
    Дата(«2015″,»12″,»15″,»20″,»42″,»22»)  // 15.12.2015 20:42:22
287 16 Всеволод Дорофеев
288 16 Всеволод Дорофеев
Пример преобразования строки вида «2015-12-15 20:42:22»:
289 16 Всеволод Дорофеев
290 16 Всеволод Дорофеев
    СтроковаяДата = «2015-12-15 20:42:22»;
291 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «-«,»»);
292 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
293 16 Всеволод Дорофеев
    НоваяДата = Дата(СтроковаяДата ); // 15.12.2015 20:42:22
294 16 Всеволод Дорофеев
295 16 Всеволод Дорофеев
Если дата указан так «20:42:22 2015/12/15» можно преобразовать её следующим образом:
296 16 Всеволод Дорофеев
297 16 Всеволод Дорофеев
    СтроковаяДата = «20:42:22 2015/12/15»;
298 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «/»,»»);
299 16 Всеволод Дорофеев
    СтроковаяДата = СтрЗаменить(СтроковаяДата , «:»,»»);
300 16 Всеволод Дорофеев
    НоваяДата = Дата(Прав(СтроковаяДата , 8) + Лев(СтроковаяДата ,6));
301 17 Всеволод Дорофеев
302 17 Всеволод Дорофеев
h3. Генератор случайных чисел
303 17 Всеволод Дорофеев
304 17 Всеволод Дорофеев
<pre>
305 17 Всеволод Дорофеев
		ГСЧ = Новый ГенераторСлучайныхЧисел();
306 17 Всеволод Дорофеев
		СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, 100000);
307 17 Всеволод Дорофеев
</pre>
308 18 Всеволод Дорофеев
309 18 Всеволод Дорофеев
h3. Пересохранение книги в Эксель (Excel) с отображением листов
310 18 Всеволод Дорофеев
311 18 Всеволод Дорофеев
http://infostart.ru/public/323606/
312 18 Всеволод Дорофеев
Код:
313 18 Всеволод Дорофеев
314 18 Всеволод Дорофеев
Для v8:
315 18 Всеволод Дорофеев
316 18 Всеволод Дорофеев
<pre>
317 18 Всеволод Дорофеев
ТабДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS);
318 18 Всеволод Дорофеев
319 18 Всеволод Дорофеев
Excel = Новый COMОбъект("Excel.Application");
320 18 Всеволод Дорофеев
Excel.WorkBooks.Open(ПолноеИмяФайла); 
321 18 Всеволод Дорофеев
Excel.Visible = 0;
322 18 Всеволод Дорофеев
323 18 Всеволод Дорофеев
Excel.ActiveWindow.DisplayWorkbookTabs = 1; 
324 18 Всеволод Дорофеев
Excel.ActiveWindow.TabRatio = 0.6;         
325 18 Всеволод Дорофеев
326 18 Всеволод Дорофеев
FullName = Excel.ActiveWorkbook.FullName;            
327 18 Всеволод Дорофеев
Excel.DisplayAlerts = false;
328 18 Всеволод Дорофеев
Excel.ActiveWorkbook.SaveAs(FullName, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013
329 18 Всеволод Дорофеев
330 18 Всеволод Дорофеев
//Excel.Visible = 1;       // если нужно поработать дальше с книгой
331 18 Всеволод Дорофеев
//Excel.Application.Quit() // если просто выходим
332 18 Всеволод Дорофеев
</pre> 
333 18 Всеволод Дорофеев
334 18 Всеволод Дорофеев
Для v7.7:
335 18 Всеволод Дорофеев
336 18 Всеволод Дорофеев
<pre>
337 18 Всеволод Дорофеев
338 18 Всеволод Дорофеев
ТабДокумент.Записать(ПолноеИмяФайла, "XLS");
339 18 Всеволод Дорофеев
340 18 Всеволод Дорофеев
Excel = СоздатьОбъект("Excel.Application");
341 18 Всеволод Дорофеев
Excel.WorkBooks.Open(ПолноеИмяФайла); 
342 18 Всеволод Дорофеев
Excel.Visible = 0; 
343 18 Всеволод Дорофеев
344 18 Всеволод Дорофеев
Excel.ActiveWindow.DisplayWorkbookTabs = 1; 
345 18 Всеволод Дорофеев
Excel.ActiveWindow.TabRatio = 0.6;
346 18 Всеволод Дорофеев
347 18 Всеволод Дорофеев
FullName = Excel.ActiveWorkbook.FullName;            
348 18 Всеволод Дорофеев
Excel.DisplayAlerts = false;
349 18 Всеволод Дорофеев
Excel.ActiveWorkbook.SaveAs(FullName, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013
350 18 Всеволод Дорофеев
351 18 Всеволод Дорофеев
//Excel.Visible = 1;       // если нужно поработать дальше с книгой
352 18 Всеволод Дорофеев
//Excel.Application.Quit() // если просто выходим
353 18 Всеволод Дорофеев
</pre>