Сложение двух строк (Вопрос)!!!

1. 1cBokov 7 09.06.17 09:18 Сейчас в теме
Добрый всем день, необходимо сложить две строки в обработке которая выгружает документы "Поступление товаров и услуг" вот эта обработка выводит ячейки сумму и суммуНДС, необходимо их сложить чтобы получить суммуСНДС, помогите как это сделать (см. скриншот в нем все подробно описал). При лагаю во втором сообщении код обработки.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. 1cBokov 7 09.06.17 09:19 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	 НомерЛиста         = 1;
   
    //Пытаемся подключиться к Excel
    Попытка
        Excel = новый COMОбъект("Excel.Application");
    Исключение
        Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
        Возврат;
    КонецПопытки;     
   
    //Подключились удачно, открываем файл
    Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
    //Открываем необходимый лист
    Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|	ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|	ХозрасчетныйДвиженияССубконто.СчетДт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|	ХозрасчетныйДвиженияССубконто.Сумма,
	|	ХозрасчетныйДвиженияССубконто.СчетКт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|	ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|	ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|	ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|	ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|			&НачалоПериода,
	|			&КонецПериода,
	|			СчетКт.Родитель.Код = ""60""
	|				ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|				ИЛИ СчетКт.Родитель.Код = ""76""
	|				ИЛИ СчетКт.Родитель.Код = ""97"",
	|			,
	|			) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|	ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|	И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|			ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|			ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Период,
	|	Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));

	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда
				a = a + 1;
				Лист.Cells(a,1).NumberFormat = "@";
				Лист.Cells(a,1).value = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());				
				Лист.Cells(a,2).NumberFormat = "@";
				Лист.Cells(a,2).value = РезультатЗапроса.Регистратор.Номер;
				Лист.Cells(a,3).NumberFormat = "ДД.ММ.ГГГГ";
				Лист.Cells(a,3).value = РезультатЗапроса.Регистратор.Дата;
				Лист.Cells(a,4).NumberFormat = "@";
				Лист.Cells(a,4).value = Строка(РезультатЗапроса.Регистратор);
				Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
					Лист.Cells(a,5).NumberFormat = "@";
					Лист.Cells(a,5).value =РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
					Лист.Cells(a,6).NumberFormat = "@";
					Лист.Cells(a,6).value = РезультатЗапроса.СубконтоКт1.ИНН;
					Лист.Cells(a,7).NumberFormat = "@";
					Лист.Cells(a,7).value = РезультатЗапроса.СубконтоКт1.КПП;
					Лист.Cells(a,8).NumberFormat = "@";
					Лист.Cells(a,8).value = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
					Лист.Cells(a,12).NumberFormat = "@";
					Лист.Cells(a,12).value = РезультатЗапроса.КоличествоДт;
				КонецЕсли;
				Лист.Cells(a,9).NumberFormat = "@";
				Лист.Cells(a,10).NumberFormat = "@";
				Лист.Cells(a,11).NumberFormat = "@";
				Лист.Cells(a,13).NumberFormat = "0,00";
				Лист.Cells(a,14).NumberFormat = "@";
				
								
				Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
					Лист.Cells(a,9).value = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
					Лист.Cells(a,10).value = РезультатЗапроса.СубконтоДт1.Код;
					//Лист.Cells(a,11).value = РезультатЗапроса.СубконтоДт1.НоменклатураАНАЛИТИКИ.УИД;
					Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Для Каждого Стр Из ТекДокумент.Товары Цикл
							Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
								Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
								Лист.Cells(a,10).value = Стр.Номенклатура.Код;
								//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
								Лист.Cells(a,13).value = Стр.Цена;
								Лист.Cells(a,14).value = Строка(Стр.СтавкаНДС);
								Прервать;
							КонецЕсли;
						КонецЦикла;
					ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Лист.Cells(a,5).NumberFormat = "@";
						Лист.Cells(a,5).value = ТекДокумент.Контрагент.НаименованиеПолное;
						Лист.Cells(a,6).NumberFormat = "@";
						Лист.Cells(a,6).value = ТекДокумент.Контрагент.ИНН;
						Лист.Cells(a,7).NumberFormat = "@";
						Лист.Cells(a,7).value = ТекДокумент.Контрагент.КПП;
						Лист.Cells(a,8).NumberFormat = "@";
						Лист.Cells(a,8).value = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
						Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС);
						Для Каждого Стр Из ТекДокумент.Товары Цикл
							Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
								Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
								Лист.Cells(a,10).value = Стр.Номенклатура.Код;
								//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
								Лист.Cells(a,12).value = Стр.Количество;
								Прервать;
							КонецЕсли;
						КонецЦикла;
					КонецЕсли;
				ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда
					Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Для Каждого Стр Из ТекДокумент.Услуги Цикл
							//Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
							Лист.Cells(a,10).value = Стр.Номенклатура.Код;
							//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							Лист.Cells(a,13).value = Стр.Цена;
							Лист.Cells(a,14).value = Строка(Стр.СтавкаНДС);
							Прервать;
							//КонецЕсли;
						КонецЦикла;
					ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Лист.Cells(a,5).NumberFormat = "@";
						Лист.Cells(a,5).value = ТекДокумент.Контрагент.НаименованиеПолное;
						Лист.Cells(a,6).NumberFormat = "@";
						Лист.Cells(a,6).value = ТекДокумент.Контрагент.ИНН;
						Лист.Cells(a,7).NumberFormat = "@";
						Лист.Cells(a,7).value = ТекДокумент.Контрагент.КПП;
						Лист.Cells(a,8).NumberFormat = "@";
						Лист.Cells(a,8).value = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
						Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС);
						Для Каждого Стр Из ТекДокумент.Товары Цикл
							Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
								Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
								Лист.Cells(a,10).value = Стр.Номенклатура.Код;
								Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
								Лист.Cells(a,12).value = Стр.Количество;
								Прервать;
							КонецЕсли;
						КонецЦикла;
					КонецЕсли;
					
				КонецЕсли;
				Лист.Cells(a,15).NumberFormat = "0,00";
				Лист.Cells(a,15).value = РезультатЗапроса.Сумма;
																
				Лист.Cells(a,18).NumberFormat = "@";
				Лист.Cells(a,18).value = РезультатЗапроса.СчетКт.Код;
				Лист.Cells(a,19).NumberFormat = "@";
				Лист.Cells(a,19).value = РезультатЗапроса.СчетДт.Код;
				
			КонецЕсли;		
			
			
			
			
		КонецЦикла;
		
		
		
		Excel.Save();
		
	
Excel.quit();			
КонецПроцедуры
Показать
8. iskdv 09.06.17 09:48 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка) 
	НомерЛиста = 1; 
	
	//Пытаемся подключиться к Excel 
	Попытка 
		Excel = новый COMОбъект("Excel.Application"); 
	Исключение 
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel."); 
		Возврат; 
	КонецПопытки; 
	
	//Подключились удачно, открываем файл 
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx"); 
	//Открываем необходимый лист 
	Лист = Excel.Sheets(1); 
	ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; 
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19); 
	Запрос = Новый Запрос( 
	"ВЫБРАТЬ 
	|	ХозрасчетныйДвиженияССубконто.Период КАК Период, 
	|	ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор, 
	|	ХозрасчетныйДвиженияССубконто.СчетДт, 
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт1, 
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт2, 
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт3, 
	|	ХозрасчетныйДвиженияССубконто.Сумма, 
	|	ХозрасчетныйДвиженияССубконто.СчетКт, 
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт1, 
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2, 
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3, 
	|	ХозрасчетныйДвиженияССубконто.КоличествоДт, 
	|	ХозрасчетныйДвиженияССубконто.КоличествоКт, 
	|	ХозрасчетныйДвиженияССубконто.СуммаНУКт, 
	|	ХозрасчетныйДвиженияССубконто.СуммаНУДт, 
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт2 
	|ИЗ 
	|	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( 
	|	&НачалоПериода, 
	|	&КонецПериода, 
	|	СчетКт.Родитель.Код = ""60"" 
	|	ИЛИ СчетКт.Родитель.Родитель.Код = ""76"" 
	|	ИЛИ СчетКт.Родитель.Код = ""76"" 
	|	ИЛИ СчетКт.Родитель.Код = ""97"", 
	|	, 
	|	) КАК ХозрасчетныйДвиженияССубконто 
	|ГДЕ 
	|	ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода 
	|	И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух 
	|	ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг 
	|	ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов) 
	| 
	|УПОРЯДОЧИТЬ ПО 
	|	Период, 
	|	Регистратор"); 
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000')); 
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000')); 
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать(); 
	a=1; 
	Пока РезультатЗапроса.Следующий() Цикл 
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда 
			a = a + 1; 
			Лист.Cells(a,1).NumberFormat = "@"; 
			Лист.Cells(a,1).value = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());	
			Лист.Cells(a,2).NumberFormat = "@"; 
			Лист.Cells(a,2).value = РезультатЗапроса.Регистратор.Номер; 
			Лист.Cells(a,3).NumberFormat = "ДД.ММ.ГГГГ"; 
			Лист.Cells(a,3).value = РезультатЗапроса.Регистратор.Дата; 
			Лист.Cells(a,4).NumberFormat = "@"; 
			Лист.Cells(a,4).value = Строка(РезультатЗапроса.Регистратор); 
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда 
				Лист.Cells(a,5).NumberFormat = "@"; 
				Лист.Cells(a,5).value =РезультатЗапроса.СубконтоКт1.НаименованиеПолное; 
				Лист.Cells(a,6).NumberFormat = "@"; 
				Лист.Cells(a,6).value = РезультатЗапроса.СубконтоКт1.ИНН; 
				Лист.Cells(a,7).NumberFormat = "@"; 
				Лист.Cells(a,7).value = РезультатЗапроса.СубконтоКт1.КПП; 
				Лист.Cells(a,8).NumberFormat = "@"; 
				Лист.Cells(a,8).value = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор()); 
				Лист.Cells(a,12).NumberFormat = "@"; 
				Лист.Cells(a,12).value = РезультатЗапроса.КоличествоДт; 
			КонецЕсли; 
			Лист.Cells(a,9).NumberFormat = "@"; 
			Лист.Cells(a,10).NumberFormat = "@"; 
			Лист.Cells(a,11).NumberFormat = "@"; 
			Лист.Cells(a,13).NumberFormat = "0,00"; 
			Лист.Cells(a,14).NumberFormat = "@"; 
			
			
			Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда 
				Лист.Cells(a,9).value = РезультатЗапроса.СубконтоДт1.НаименованиеПолное; 
				Лист.Cells(a,10).value = РезультатЗапроса.СубконтоДт1.Код; 
				//Лист.Cells(a,11).value = РезультатЗапроса.СубконтоДт1.НоменклатураАНАЛИТИКИ.УИД; 
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда 
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 
					Для Каждого Стр Из ТекДокумент.Товары Цикл 
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда 
							Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное; 
							Лист.Cells(a,10).value = Стр.Номенклатура.Код; 
							//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД; 
							Лист.Cells(a,13).value = Стр.Цена; 
							Лист.Cells(a,14).value = Строка(Стр.СтавкаНДС);
							
							Лист.Cells(a,15).value = ТекДокумент.Товары.Итог("Сумма") + ТекДокумент.Товары.Итог("СуммаНДС")
							
							Прервать; 
						КонецЕсли; 
					КонецЦикла; 
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда 
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 
					Лист.Cells(a,5).NumberFormat = "@"; 
					Лист.Cells(a,5).value = ТекДокумент.Контрагент.НаименованиеПолное; 
					Лист.Cells(a,6).NumberFormat = "@"; 
					Лист.Cells(a,6).value = ТекДокумент.Контрагент.ИНН; 
					Лист.Cells(a,7).NumberFormat = "@"; 
					Лист.Cells(a,7).value = ТекДокумент.Контрагент.КПП; 
					Лист.Cells(a,8).NumberFormat = "@"; 
					Лист.Cells(a,8).value = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор()); 
					Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС); 
					Для Каждого Стр Из ТекДокумент.Товары Цикл 
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда 
							Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное; 
							Лист.Cells(a,10).value = Стр.Номенклатура.Код; 
							//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД; 
							Лист.Cells(a,12).value = Стр.Количество; 
							Прервать; 
						КонецЕсли; 
					КонецЦикла; 
				КонецЕсли; 
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда 
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда 
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 
					Для Каждого Стр Из ТекДокумент.Услуги Цикл 
						//Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда 
						Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное; 
						Лист.Cells(a,10).value = Стр.Номенклатура.Код; 
						//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД; 
						Лист.Cells(a,13).value = Стр.Цена; 
						Лист.Cells(a,14).value = Строка(Стр.СтавкаНДС);
						
						Лист.Cells(a,15).value = ТекДокумент.Услуги.Итог("Сумма") + ТекДокумент.Услуги.Итог("СуммаНДС");
						
						Прервать; 
						//КонецЕсли; 
					КонецЦикла; 
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда 
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 
					Лист.Cells(a,5).NumberFormat = "@"; 
					Лист.Cells(a,5).value = ТекДокумент.Контрагент.НаименованиеПолное; 
					Лист.Cells(a,6).NumberFormat = "@"; 
					Лист.Cells(a,6).value = ТекДокумент.Контрагент.ИНН; 
					Лист.Cells(a,7).NumberFormat = "@"; 
					Лист.Cells(a,7).value = ТекДокумент.Контрагент.КПП; 
					Лист.Cells(a,8).NumberFormat = "@"; 
					Лист.Cells(a,8).value = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор()); 
					Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС); 
					Для Каждого Стр Из ТекДокумент.Товары Цикл 
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда 
							Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное; 
							Лист.Cells(a,10).value = Стр.Номенклатура.Код; 
							Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД; 
							Лист.Cells(a,12).value = Стр.Количество; 
							Прервать; 
						КонецЕсли; 
					КонецЦикла; 
				КонецЕсли; 
				
				Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС);
				Лист.Cells(a,15).value = ТекДокумент.Товары.Итог("Сумма") + ТекДокумент.Товары.Итог("СуммаНДС");
				
			КонецЕсли; 
			Лист.Cells(a,15).NumberFormat = "0,00"; 
			////Лист.Cells(a,15).value = РезультатЗапроса.Сумма; 
			
			Лист.Cells(a,18).NumberFormat = "@"; 
			Лист.Cells(a,18).value = РезультатЗапроса.СчетКт.Код; 
			Лист.Cells(a,19).NumberFormat = "@"; 
			Лист.Cells(a,19).value = РезультатЗапроса.СчетДт.Код; 
			
		КонецЕсли;	
		
		
		
		
	КонецЦикла; 
	
	
	
	Excel.Save(); 
	
	
	Excel.quit();	
КонецПроцедуры
Показать
24. 1cBokov 7 09.06.17 10:29 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	 НомерЛиста         = 1;
   
    //Пытаемся подключиться к Excel
    Попытка
        Excel = новый COMОбъект("Excel.Application");
    Исключение
        Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
        Возврат;
    КонецПопытки;     
   
    //Подключились удачно, открываем файл
    Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
    //Открываем необходимый лист
    Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|	ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|	ХозрасчетныйДвиженияССубконто.СчетДт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|	ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|	ХозрасчетныйДвиженияССубконто.Сумма,
	|	ХозрасчетныйДвиженияССубконто.СчетКт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|	ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|	ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|	ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|	ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|	ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|	ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|			&НачалоПериода,
	|			&КонецПериода,
	|			СчетКт.Родитель.Код = ""60""
	|				ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|				ИЛИ СчетКт.Родитель.Код = ""76""
	|				ИЛИ СчетКт.Родитель.Код = ""97"",
	|			,
	|			) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|	ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|	И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|			ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|			ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Период,
	|	Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));

	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда
				a = a + 1;
				Лист.Cells(a,1).NumberFormat = "@";
				Лист.Cells(a,1).value = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());				
				Лист.Cells(a,2).NumberFormat = "@";
				Лист.Cells(a,2).value = РезультатЗапроса.Регистратор.Номер;
				Лист.Cells(a,3).NumberFormat = "ДД.ММ.ГГГГ";
				Лист.Cells(a,3).value = РезультатЗапроса.Регистратор.Дата;
				Лист.Cells(a,4).NumberFormat = "@";
				Лист.Cells(a,4).value = Строка(РезультатЗапроса.Регистратор);
				Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
					Лист.Cells(a,5).NumberFormat = "@";
					Лист.Cells(a,5).value =РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
					Лист.Cells(a,6).NumberFormat = "@";
					Лист.Cells(a,6).value = РезультатЗапроса.СубконтоКт1.ИНН;
					Лист.Cells(a,7).NumberFormat = "@";
					Лист.Cells(a,7).value = РезультатЗапроса.СубконтоКт1.КПП;
					Лист.Cells(a,8).NumberFormat = "@";
					Лист.Cells(a,8).value = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
					Лист.Cells(a,12).NumberFormat = "@";
					Лист.Cells(a,12).value = РезультатЗапроса.КоличествоДт;
				КонецЕсли;
				Лист.Cells(a,9).NumberFormat = "@";
				Лист.Cells(a,10).NumberFormat = "@";
				Лист.Cells(a,11).NumberFormat = "@";
				Лист.Cells(a,13).NumberFormat = "0,00";
				Лист.Cells(a,14).NumberFormat = "@";
				
								
				Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
					Лист.Cells(a,9).value = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
					Лист.Cells(a,10).value = РезультатЗапроса.СубконтоДт1.Код;
					//Лист.Cells(a,11).value = РезультатЗапроса.СубконтоДт1.НоменклатураАНАЛИТИКИ.УИД;
					Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Для Каждого Стр Из ТекДокумент.Товары Цикл
							Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
								Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
								Лист.Cells(a,10).value = Стр.Номенклатура.Код;
								//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
								Лист.Cells(a,13).value = Стр.Цена;
								Лист.Cells(a,14).value = Строка(Стр.СтавкаНДС);
								Прервать;
							КонецЕсли;
						КонецЦикла;
					ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Лист.Cells(a,5).NumberFormat = "@";
						Лист.Cells(a,5).value = ТекДокумент.Контрагент.НаименованиеПолное;
						Лист.Cells(a,6).NumberFormat = "@";
						Лист.Cells(a,6).value = ТекДокумент.Контрагент.ИНН;
						Лист.Cells(a,7).NumberFormat = "@";
						Лист.Cells(a,7).value = ТекДокумент.Контрагент.КПП;
						Лист.Cells(a,8).NumberFormat = "@";
						Лист.Cells(a,8).value = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
						Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС);
						Для Каждого Стр Из ТекДокумент.Товары Цикл
							Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
								Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
								Лист.Cells(a,10).value = Стр.Номенклатура.Код;
								//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
								Лист.Cells(a,12).value = Стр.Количество;
								Прервать;
							КонецЕсли;
						КонецЦикла;
					КонецЕсли;
				ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда
					Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Для Каждого Стр Из ТекДокумент.Услуги Цикл
							//Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
							Лист.Cells(a,10).value = Стр.Номенклатура.Код;
							//Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							Лист.Cells(a,13).value = Стр.Цена;
							Лист.Cells(a,14).value = Строка(Стр.СтавкаНДС);
							Прервать;
							//КонецЕсли;
						КонецЦикла;
					ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
						ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
						Лист.Cells(a,5).NumberFormat = "@";
						Лист.Cells(a,5).value = ТекДокумент.Контрагент.НаименованиеПолное;
						Лист.Cells(a,6).NumberFormat = "@";
						Лист.Cells(a,6).value = ТекДокумент.Контрагент.ИНН;
						Лист.Cells(a,7).NumberFormat = "@";
						Лист.Cells(a,7).value = ТекДокумент.Контрагент.КПП;
						Лист.Cells(a,8).NumberFormat = "@";
						Лист.Cells(a,8).value = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
						Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС);
						Для Каждого Стр Из ТекДокумент.Товары Цикл
							Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
								Лист.Cells(a,9).value = Стр.Номенклатура.НаименованиеПолное;
								Лист.Cells(a,10).value = Стр.Номенклатура.Код;
								Лист.Cells(a,11).value = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
								Лист.Cells(a,12).value = Стр.Количество;
								Прервать;
							КонецЕсли;
						КонецЦикла;
					КонецЕсли;
				КонецЕсли;
				Лист.Cells(a,15).NumberFormat = "0,00";
				Лист.Cells(a,15).value = РезультатЗапроса.Сумма;
				
				Лист.Cells(a,17).NumberFormat = "0,00";
				Лист.Cells(a,17).value = Стр.Сумма + Стр.СуммаНДС;
				
				
				Лист.Cells(a,18).NumberFormat = "@";
				Лист.Cells(a,18).value = РезультатЗапроса.СчетКт.Код;
				Лист.Cells(a,19).NumberFormat = "@";
				Лист.Cells(a,19).value = РезультатЗапроса.СчетДт.Код;
				
				
				
			КонецЕсли;
			
			
			
		КонецЦикла;
		
		
		
		Excel.Save();
		
	
Excel.quit();			
КонецПроцедуры
Показать
40. iskdv 09.06.17 11:18 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCells = Новый ТаблицаЗначений;
	ЛистCells.Колонки.Добавить( "a_1"  );
	ЛистCells.Колонки.Добавить( "a_2"  );
	ЛистCells.Колонки.Добавить( "a_3"  );
	ЛистCells.Колонки.Добавить( "a_4"  );
	ЛистCells.Колонки.Добавить( "a_5"  );
	ЛистCells.Колонки.Добавить( "a_6"  );
	ЛистCells.Колонки.Добавить( "a_7"  );
	ЛистCells.Колонки.Добавить( "a_8"  );
	ЛистCells.Колонки.Добавить( "a_9"  );
	ЛистCells.Колонки.Добавить( "a_10" );
	ЛистCells.Колонки.Добавить( "a_11" );
	ЛистCells.Колонки.Добавить( "a_12" );
	ЛистCells.Колонки.Добавить( "a_13" );
	ЛистCells.Колонки.Добавить( "a_14" );
	ЛистCells.Колонки.Добавить( "a_15" );
	ЛистCells.Колонки.Добавить( "a_16" );
	ЛистCells.Колонки.Добавить( "a_17" );
	ЛистCells.Колонки.Добавить( "a_18" );
	ЛистCells.Колонки.Добавить( "a_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells.a_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.a_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.a_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.a_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.a_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.a_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.a_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.a_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.a_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.a_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.a_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.a_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.a_10 = Стр.Номенклатура.Код;
							ЛистCells.a_13 = Стр.Цена;
							ЛистCells.a_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.a_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.a_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.a_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.a_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.a_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.a_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.a_10 = Стр.Номенклатура.Код;
							ЛистCells.a_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26"
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.a_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.a_10 = Стр.Номенклатура.Код;
						ЛистCells.a_13 = Стр.Цена;
						ЛистCells.a_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.a_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.a_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.a_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.a_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.a_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.a_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.a_10 = Стр.Номенклатура.Код;
							ЛистCells.a_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.a_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.a_15 = РезультатЗапроса.Сумма;
			ЛистCells.a_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.a_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCells.Свернуть("a_1,
	|a_2,
	|a_3,
	|a_4,
	|a_5,
	|a_6,
	|a_7,
	|a_8,
	|a_9,
	|a_10,
	|a_11,
	|a_12,
	|a_13,
	|a_14,
	|a_15,
	|a_16,
	|a_17,
	|a_18,
	|a_19", "a_15");
	
	а=1;
	Для Каждого стр Из ЛистCells Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.a_1;
		Лист.Cells(а,2).value = стр.a_2;
		Лист.Cells(а,3).value = стр.a_3;
		Лист.Cells(а,4).value = стр.a_4;
		Лист.Cells(а,5).value = стр.a_5;
		Лист.Cells(а,6).value = стр.a_6;
		Лист.Cells(а,7).value = стр.a_7;
		Лист.Cells(а,8).value = стр.a_8;
		Лист.Cells(а,9).value = стр.a_9;
		Лист.Cells(а,10).value = стр.a_10;
		Лист.Cells(а,11).value = стр.a_11;
		Лист.Cells(а,12).value = стр.a_12;
		Лист.Cells(а,13).value = стр.a_13;
		Лист.Cells(а,14).value = стр.a_14;
		Лист.Cells(а,15).value = стр.a_15;
		Лист.Cells(а,16).value = стр.a_16;
		Лист.Cells(а,17).value = стр.a_17;
		Лист.Cells(а,18).value = стр.a_18;
		Лист.Cells(а,19).value = стр.a_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
41. 1cBokov 7 09.06.17 12:40 Сейчас в теме
(40)Ваш вариант дает ошибку.
Прикрепленные файлы:
42. iskdv 09.06.17 12:43 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCells = Новый ТаблицаЗначений;
	ЛистCells.Колонки.Добавить( "а_1"  );
	ЛистCells.Колонки.Добавить( "а_2"  );
	ЛистCells.Колонки.Добавить( "а_3"  );
	ЛистCells.Колонки.Добавить( "а_4"  );
	ЛистCells.Колонки.Добавить( "а_5"  );
	ЛистCells.Колонки.Добавить( "а_6"  );
	ЛистCells.Колонки.Добавить( "а_7"  );
	ЛистCells.Колонки.Добавить( "а_8"  );
	ЛистCells.Колонки.Добавить( "а_9"  );
	ЛистCells.Колонки.Добавить( "а_10" );
	ЛистCells.Колонки.Добавить( "а_11" );
	ЛистCells.Колонки.Добавить( "а_12" );
	ЛистCells.Колонки.Добавить( "а_13" );
	ЛистCells.Колонки.Добавить( "а_14" );
	ЛистCells.Колонки.Добавить( "а_15" );
	ЛистCells.Колонки.Добавить( "а_16" );
	ЛистCells.Колонки.Добавить( "а_17" );
	ЛистCells.Колонки.Добавить( "а_18" );
	ЛистCells.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26"
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCells.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_15,
	|а_16,
	|а_17,
	|а_18,
	|а_19", "а_15");
	
	а=1;
	Для Каждого стр Из ЛистCells Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
44. 1cBokov 7 09.06.17 12:47 Сейчас в теме
45. iskdv 09.06.17 12:51 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCells = Новый ТаблицаЗначений;
	ЛистCells.Колонки.Добавить( "а_1"  );
	ЛистCells.Колонки.Добавить( "а_2"  );
	ЛистCells.Колонки.Добавить( "а_3"  );
	ЛистCells.Колонки.Добавить( "а_4"  );
	ЛистCells.Колонки.Добавить( "а_5"  );
	ЛистCells.Колонки.Добавить( "а_6"  );
	ЛистCells.Колонки.Добавить( "а_7"  );
	ЛистCells.Колонки.Добавить( "а_8"  );
	ЛистCells.Колонки.Добавить( "а_9"  );
	ЛистCells.Колонки.Добавить( "а_10" );
	ЛистCells.Колонки.Добавить( "а_11" );
	ЛистCells.Колонки.Добавить( "а_12" );
	ЛистCells.Колонки.Добавить( "а_13" );
	ЛистCells.Колонки.Добавить( "а_14" );
	ЛистCells.Колонки.Добавить( "а_15" );
	ЛистCells.Колонки.Добавить( "а_16" );
	ЛистCells.Колонки.Добавить( "а_17" );
	ЛистCells.Колонки.Добавить( "а_18" );
	ЛистCells.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCells.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_15,
	|а_16,
	|а_17,
	|а_18,
	|а_19", "а_15");
	
	а=1;
	Для Каждого стр Из ЛистCells Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
51. iskdv 09.06.17 12:56 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCell = Новый ТаблицаЗначений;
	ЛистCell.Колонки.Добавить( "а_1"  );
	ЛистCell.Колонки.Добавить( "а_2"  );
	ЛистCell.Колонки.Добавить( "а_3"  );
	ЛистCell.Колонки.Добавить( "а_4"  );
	ЛистCell.Колонки.Добавить( "а_5"  );
	ЛистCell.Колонки.Добавить( "а_6"  );
	ЛистCell.Колонки.Добавить( "а_7"  );
	ЛистCell.Колонки.Добавить( "а_8"  );
	ЛистCell.Колонки.Добавить( "а_9"  );
	ЛистCell.Колонки.Добавить( "а_10" );
	ЛистCell.Колонки.Добавить( "а_11" );
	ЛистCell.Колонки.Добавить( "а_12" );
	ЛистCell.Колонки.Добавить( "а_13" );
	ЛистCell.Колонки.Добавить( "а_14" );
	ЛистCell.Колонки.Добавить( "а_15" );
	ЛистCell.Колонки.Добавить( "а_16" );
	ЛистCell.Колонки.Добавить( "а_17" );
	ЛистCell.Колонки.Добавить( "а_18" );
	ЛистCell.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells = ЛистCell.Добавить();
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCell.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_15,
	|а_16,
	|а_17,
	|а_18,
	|а_19", "а_15");
	
	а=1;
	Для Каждого стр Из ЛистCell Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
54. iskdv 09.06.17 13:11 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCell = Новый ТаблицаЗначений;
	ЛистCell.Колонки.Добавить( "а_1"  );
	ЛистCell.Колонки.Добавить( "а_2"  );
	ЛистCell.Колонки.Добавить( "а_3"  );
	ЛистCell.Колонки.Добавить( "а_4"  );
	ЛистCell.Колонки.Добавить( "а_5"  );
	ЛистCell.Колонки.Добавить( "а_6"  );
	ЛистCell.Колонки.Добавить( "а_7"  );
	ЛистCell.Колонки.Добавить( "а_8"  );
	ЛистCell.Колонки.Добавить( "а_9"  );
	ЛистCell.Колонки.Добавить( "а_10" );
	ЛистCell.Колонки.Добавить( "а_11" );
	ЛистCell.Колонки.Добавить( "а_12" );
	ЛистCell.Колонки.Добавить( "а_13" );
	ЛистCell.Колонки.Добавить( "а_14" );
	ЛистCell.Колонки.Добавить( "а_15" );
	ЛистCell.Колонки.Добавить( "а_16" );
	ЛистCell.Колонки.Добавить( "а_17" );
	ЛистCell.Колонки.Добавить( "а_18" );
	ЛистCell.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells = ЛистCell.Добавить();
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCell.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_16,
	|а_17,
	|а_18,
	|а_19", "а_15");
	
	а=1;
	Для Каждого стр Из ЛистCell Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
61. iskdv 09.06.17 13:26 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCell = Новый ТаблицаЗначений;
	ЛистCell.Колонки.Добавить( "а_1"  );
	ЛистCell.Колонки.Добавить( "а_2"  );
	ЛистCell.Колонки.Добавить( "а_3"  );
	ЛистCell.Колонки.Добавить( "а_4"  );
	ЛистCell.Колонки.Добавить( "а_5"  );
	ЛистCell.Колонки.Добавить( "а_6"  );
	ЛистCell.Колонки.Добавить( "а_7"  );
	ЛистCell.Колонки.Добавить( "а_8"  );
	ЛистCell.Колонки.Добавить( "а_9"  );
	ЛистCell.Колонки.Добавить( "а_10" );
	ЛистCell.Колонки.Добавить( "а_11" );
	ЛистCell.Колонки.Добавить( "а_12" );
	ЛистCell.Колонки.Добавить( "а_13" );
	ЛистCell.Колонки.Добавить( "а_14" );
	ЛистCell.Колонки.Добавить( "а_15" );
	ЛистCell.Колонки.Добавить( "а_16" );
	ЛистCell.Колонки.Добавить( "а_17" );
	ЛистCell.Колонки.Добавить( "а_18" );
	ЛистCell.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells = ЛистCell.Добавить();
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_17 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCell.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_16,
	|а_17,
	|а_18,
	|а_19", "а_15");
	
	а=1;
	Для Каждого стр Из ЛистCell Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
62. 1cBokov 7 09.06.17 13:29 Сейчас в теме
(61)
Процедура КнопкаВыполнитьНажатие(Кнопка) 
НомерЛиста = 1; 

//Пытаемся подключиться к Excel 
Попытка 
Excel = новый COMОбъект("Excel.Application"); 
Исключение 
Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel."); 
Возврат; 
КонецПопытки; 

//Подключились удачно, открываем файл 
Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx"); 
//Открываем необходимый лист 
Лист = Excel.Sheets(1); 
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; 
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19); 
Запрос = Новый Запрос( 
"ВЫБРАТЬ 
| ХозрасчетныйДвиженияССубконто.Период КАК Период, 
| ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор, 
| ХозрасчетныйДвиженияССубконто.СчетДт, 
| ХозрасчетныйДвиженияССубконто.СубконтоДт1, 
| ХозрасчетныйДвиженияССубконто.СубконтоДт2, 
| ХозрасчетныйДвиженияССубконто.СубконтоДт3, 
| ХозрасчетныйДвиженияССубконто.Сумма, 
| ХозрасчетныйДвиженияССубконто.СчетКт, 
| ХозрасчетныйДвиженияССубконто.СубконтоКт1, 
| ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2, 
| ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3, 
| ХозрасчетныйДвиженияССубконто.КоличествоДт, 
| ХозрасчетныйДвиженияССубконто.КоличествоКт, 
| ХозрасчетныйДвиженияССубконто.СуммаНУКт, 
| ХозрасчетныйДвиженияССубконто.СуммаНУДт, 
| ХозрасчетныйДвиженияССубконто.СубконтоКт2 
|ИЗ 
| РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( 
| &НачалоПериода, 
| &КонецПериода, 
| СчетКт.Родитель.Код = ""60"" 
| ИЛИ СчетКт.Родитель.Родитель.Код = ""76"" 
| ИЛИ СчетКт.Родитель.Код = ""76"" 
| ИЛИ СчетКт.Родитель.Код = ""97"", 
| , 
| ) КАК ХозрасчетныйДвиженияССубконто 
|ГДЕ 
| ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода 
| И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух 
| ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг 
| ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов) 
| 
|УПОРЯДОЧИТЬ ПО 
| Период, 
| Регистратор"); 
Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000')); 
Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000')); 

РезультатЗапроса = Запрос.Выполнить().Выбрать(); 
a=1; 

ЛистCell = Новый ТаблицаЗначений; 
ЛистCell.Колонки.Добавить( "а_1" ); 
ЛистCell.Колонки.Добавить( "а_2" ); 
ЛистCell.Колонки.Добавить( "а_3" ); 
ЛистCell.Колонки.Добавить( "а_4" ); 
ЛистCell.Колонки.Добавить( "а_5" ); 
ЛистCell.Колонки.Добавить( "а_6" ); 
ЛистCell.Колонки.Добавить( "а_7" ); 
ЛистCell.Колонки.Добавить( "а_8" ); 
ЛистCell.Колонки.Добавить( "а_9" ); 
ЛистCell.Колонки.Добавить( "а_10" ); 
ЛистCell.Колонки.Добавить( "а_11" ); 
ЛистCell.Колонки.Добавить( "а_12" ); 
ЛистCell.Колонки.Добавить( "а_13" ); 
ЛистCell.Колонки.Добавить( "а_14" ); 
ЛистCell.Колонки.Добавить( "а_15" ); 
ЛистCell.Колонки.Добавить( "а_16" ); 
ЛистCell.Колонки.Добавить( "а_17" ); 
ЛистCell.Колонки.Добавить( "а_18" ); 
ЛистCell.Колонки.Добавить( "а_19" ); 


Пока РезультатЗапроса.Следующий() Цикл 
Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ 
РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ 
РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ 
РезультатЗапроса.СчетДт.Код = "25" ИЛИ 
РезультатЗапроса.СчетДт.Код = "26" ИЛИ 
РезультатЗапроса.СчетДт.Код = "19" Тогда 

ЛистCells = ЛистCell.Добавить(); 

ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор()); 
ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер; 
ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата; 
ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор); 

Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда 
ЛистCells.а_5 = РезультатЗапроса.СубконтоКт1.НаименованиеПолное; 
ЛистCells.а_6 = РезультатЗапроса.СубконтоКт1.ИНН; 
ЛистCells.а_7 = РезультатЗапроса.СубконтоКт1.КПП; 
ЛистCells.а_8 = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор()); 
ЛистCells.а_12 = РезультатЗапроса.КоличествоДт; 

КонецЕсли; 

Если	РезультатЗапроса.СчетДт.Родитель.Код = "10" 
ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда 

ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное; 
ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код; 

Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда 
ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 
Для Каждого Стр Из ТекДокумент.Товары Цикл 
Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда 
ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное; 
ЛистCells.а_10 = Стр.Номенклатура.Код; 
ЛистCells.а_13 = Стр.Цена; 
ЛистCells.а_14 = Строка(Стр.СтавкаНДС); 
Прервать; 

КонецЕсли; 

КонецЦикла; 

ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда 
ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 

ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное; 
ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН; 
ЛистCells.а_7 = ТекДокумент.Контрагент.КПП; 
ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор()); 
ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС); 

Для Каждого Стр Из ТекДокумент.Товары Цикл 
Если Стр.Сумма = РезультатЗапроса.Сумма Тогда 
ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное; 
ЛистCells.а_10 = Стр.Номенклатура.Код; 
ЛистCells.а_12 = Стр.Количество; 
Прервать; 

КонецЕсли; 

КонецЦикла; 

КонецЕсли; 

ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ 
РезультатЗапроса.СчетДт.Код = "25" ИЛИ 
РезультатЗапроса.СчетДт.Код = "26" ИЛИ 
РезультатЗапроса.СчетДт.Код = "19" Тогда 
Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда 
ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 
Для Каждого Стр Из ТекДокумент.Услуги Цикл 
ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное; 
ЛистCells.а_10 = Стр.Номенклатура.Код; 
ЛистCells.а_13 = Стр.Цена; 
ЛистCells.а_14 = Строка(Стр.СтавкаНДС); 

Прервать; 

КонецЦикла; 

ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда 
ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект(); 

ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное; 
ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН; 
ЛистCells.а_7 = ТекДокумент.Контрагент.КПП; 
ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор()); 
ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС); 

Для Каждого Стр Из ТекДокумент.Товары Цикл 
Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда 
ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное; 
ЛистCells.а_10 = Стр.Номенклатура.Код; 
ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД; 
ЛистCells.а_12 = Стр.Количество; 

Прервать; 
КонецЕсли; 
КонецЦикла; 
КонецЕсли; 

КонецЕсли; 

ЛистCells.а_15 = РезультатЗапроса.Сумма; 
ЛистCells.а_17 = РезультатЗапроса.Сумма; 
ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код; 
ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код; 

КонецЕсли; 

КонецЦикла; 

ЛистCell.Свернуть("а_1, 
|а_2, 
|а_3, 
|а_4, 
|а_5, 
|а_6, 
|а_7, 
|а_8, 
|а_9, 
|а_10, 
|а_11, 
|а_12, 
|а_13, 
|а_14, 
|а_16, 
|а_17, 
|а_18, 
|а_19", "а_15"); 

а=1; 
Для Каждого стр Из ЛистCell Цикл 
а = а + 1; 

Лист.Cells(а,1).NumberFormat = "@"; 
Лист.Cells(а,2).NumberFormat = "@"; 
Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ"; 
Лист.Cells(а,4).NumberFormat = "@"; 

Лист.Cells(а,5).NumberFormat = "@"; 
Лист.Cells(а,6).NumberFormat = "@"; 
Лист.Cells(а,7).NumberFormat = "@"; 
Лист.Cells(а,8).NumberFormat = "@"; 

Лист.Cells(а,9).NumberFormat = "@"; 
Лист.Cells(а,12).NumberFormat = "@"; 
Лист.Cells(а,10).NumberFormat = "@"; 
Лист.Cells(а,11).NumberFormat = "@"; 
Лист.Cells(а,13).NumberFormat = "0,00"; 
Лист.Cells(а,14).NumberFormat = "@"; 

Лист.Cells(а,15).NumberFormat = "0,00"; 
Лист.Cells(а,18).NumberFormat = "@"; 
Лист.Cells(а,19).NumberFormat = "@"; 

Лист.Cells(а,1).value = стр.а_1; 
Лист.Cells(а,2).value = стр.а_2; 
Лист.Cells(а,3).value = стр.а_3; 
Лист.Cells(а,4).value = стр.а_4; 
Лист.Cells(а,5).value = стр.а_5; 
Лист.Cells(а,6).value = стр.а_6; 
Лист.Cells(а,7).value = стр.а_7; 
Лист.Cells(а,8).value = стр.а_8; 
Лист.Cells(а,9).value = стр.а_9; 
Лист.Cells(а,10).value = стр.а_10; 
Лист.Cells(а,11).value = стр.а_11; 
Лист.Cells(а,12).value = стр.а_12; 
Лист.Cells(а,13).value = стр.а_13; 
Лист.Cells(а,14).value = стр.а_14; 
Лист.Cells(а,15).value = стр.а_15; 
Лист.Cells(а,16).value = стр.а_16; 
Лист.Cells(а,17).value = стр.а_17; 
Лист.Cells(а,18).value = стр.а_18; 
Лист.Cells(а,19).value = стр.а_19; 

КонецЦикла; 



Excel.Save(); 


Excel.quit(); 

КонецПроцедуры
Показать
64. 1cBokov 7 09.06.17 13:31 Сейчас в теме
(61)17 колонка дублирует 15 теперь просто. То есть это не сумма с НДС, а просто сумма документа.
65. iskdv 09.06.17 13:33 Сейчас в теме
66. 1cBokov 7 09.06.17 13:34 Сейчас в теме
(65)Тоже самое дублирует 15 колонку.
63. iskdv 09.06.17 13:30 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCell = Новый ТаблицаЗначений;
	ЛистCell.Колонки.Добавить( "а_1"  );
	ЛистCell.Колонки.Добавить( "а_2"  );
	ЛистCell.Колонки.Добавить( "а_3"  );
	ЛистCell.Колонки.Добавить( "а_4"  );
	ЛистCell.Колонки.Добавить( "а_5"  );
	ЛистCell.Колонки.Добавить( "а_6"  );
	ЛистCell.Колонки.Добавить( "а_7"  );
	ЛистCell.Колонки.Добавить( "а_8"  );
	ЛистCell.Колонки.Добавить( "а_9"  );
	ЛистCell.Колонки.Добавить( "а_10" );
	ЛистCell.Колонки.Добавить( "а_11" );
	ЛистCell.Колонки.Добавить( "а_12" );
	ЛистCell.Колонки.Добавить( "а_13" );
	ЛистCell.Колонки.Добавить( "а_14" );
	ЛистCell.Колонки.Добавить( "а_15" );
	ЛистCell.Колонки.Добавить( "а_16" );
	ЛистCell.Колонки.Добавить( "а_17" );
	ЛистCell.Колонки.Добавить( "а_18" );
	ЛистCell.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19" Тогда
			
			ЛистCells = ЛистCell.Добавить();
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_17 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCell.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_16,
	|а_18,
	|а_19",
	"а_15,
	|а_17");
	
	а=1;
	Для Каждого стр Из ЛистCell Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
72. iskdv 09.06.17 13:42 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
	|    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCell = Новый ТаблицаЗначений;
	ЛистCell.Колонки.Добавить( "а_1"  );
	ЛистCell.Колонки.Добавить( "а_2"  );
	ЛистCell.Колонки.Добавить( "а_3"  );
	ЛистCell.Колонки.Добавить( "а_4"  );
	ЛистCell.Колонки.Добавить( "а_5"  );
	ЛистCell.Колонки.Добавить( "а_6"  );
	ЛистCell.Колонки.Добавить( "а_7"  );
	ЛистCell.Колонки.Добавить( "а_8"  );
	ЛистCell.Колонки.Добавить( "а_9"  );
	ЛистCell.Колонки.Добавить( "а_10" );
	ЛистCell.Колонки.Добавить( "а_11" );
	ЛистCell.Колонки.Добавить( "а_12" );
	ЛистCell.Колонки.Добавить( "а_13" );
	ЛистCell.Колонки.Добавить( "а_14" );
	ЛистCell.Колонки.Добавить( "а_15" );
	ЛистCell.Колонки.Добавить( "а_16" );
	ЛистCell.Колонки.Добавить( "а_17" );
	ЛистCell.Колонки.Добавить( "а_18" );
	ЛистCell.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19"
			РезультатЗапроса.СчетДт.Родитель.Код = "19" Тогда
			
			ЛистCells = ЛистCell.Добавить();
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_17 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCell.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_16,
	|а_18,
	|а_19",
	"а_15,
	|а_17");
	
	а=1;
	Для Каждого стр Из ЛистCell Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
78. tata_1211 64 09.06.17 14:06 Сейчас в теме
(72) А все же попробуйте в колонку 17 вставить сумму не по результату запроса, а внутри цикла нужную сумму по строке ТЧ.
79. 1cBokov 7 09.06.17 14:13 Сейчас в теме
(78)А можете написать как это должно быть по строке ТЧ.
83. iskdv 09.06.17 14:25 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
	НомерЛиста         = 1;
	
	//Пытаемся подключиться к Excel
	Попытка
		Excel = новый COMОбъект("Excel.Application");
	Исключение
		Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
		Возврат;
	КонецПопытки;     
	
	//Подключились удачно, открываем файл
	Excel.Workbooks.Open("C:\Documents and Settings\Программист-3\Рабочий стол\333.xlsx");   
	//Открываем необходимый лист
	Лист = Excel.Sheets(1);   
	ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
	ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 19);
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|    ХозрасчетныйДвиженияССубконто.Период КАК Период,
	|    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
	|    ХозрасчетныйДвиженияССубконто.СчетДт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
	|    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	|    ХозрасчетныйДвиженияССубконто.Сумма,
	|    ХозрасчетныйДвиженияССубконто.СчетКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
	|    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
	|    ХозрасчетныйДвиженияССубконто.КоличествоДт,
	|    ХозрасчетныйДвиженияССубконто.КоличествоКт,
	|    ХозрасчетныйДвиженияССубконто.СубконтоКт2
	|ИЗ
	|    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
	|            &НачалоПериода,
	|            &КонецПериода,
	|            СчетКт.Родитель.Код = ""60""
	|                ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""76""
	|                ИЛИ СчетКт.Родитель.Код = ""97"",
	|            ,
	|            ) КАК ХозрасчетныйДвиженияССубконто
	|ГДЕ
	|    ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачалоПериода И &КонецПериода
	|    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОперацияБух
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	|            ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ПоступлениеДопРасходов)
	|
	|УПОРЯДОЧИТЬ ПО
	|    Период,
	|    Регистратор");
	Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца('20170430000000'));
	Запрос.УстановитьПараметр("КонецПериода",КонецМесяца('20170630000000'));
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	a=1;
	
	ЛистCell = Новый ТаблицаЗначений;
	ЛистCell.Колонки.Добавить( "а_1"  );
	ЛистCell.Колонки.Добавить( "а_2"  );
	ЛистCell.Колонки.Добавить( "а_3"  );
	ЛистCell.Колонки.Добавить( "а_4"  );
	ЛистCell.Колонки.Добавить( "а_5"  );
	ЛистCell.Колонки.Добавить( "а_6"  );
	ЛистCell.Колонки.Добавить( "а_7"  );
	ЛистCell.Колонки.Добавить( "а_8"  );
	ЛистCell.Колонки.Добавить( "а_9"  );
	ЛистCell.Колонки.Добавить( "а_10" );
	ЛистCell.Колонки.Добавить( "а_11" );
	ЛистCell.Колонки.Добавить( "а_12" );
	ЛистCell.Колонки.Добавить( "а_13" );
	ЛистCell.Колонки.Добавить( "а_14" );
	ЛистCell.Колонки.Добавить( "а_15" );
	ЛистCell.Колонки.Добавить( "а_16" );
	ЛистCell.Колонки.Добавить( "а_17" );
	ЛистCell.Колонки.Добавить( "а_18" );
	ЛистCell.Колонки.Добавить( "а_19" );
	
	
	Пока РезультатЗапроса.Следующий() Цикл
		Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ
			РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
			РезультатЗапроса.СчетДт.Код = "25" ИЛИ
			РезультатЗапроса.СчетДт.Код = "26" ИЛИ
			РезультатЗапроса.СчетДт.Код = "19"
			РезультатЗапроса.СчетДт.Родитель.Код = "19" Тогда
			
			ЛистCells = ЛистCell.Добавить();
			
			ЛистCells.а_1 = Строка(РезультатЗапроса.Регистратор.УникальныйИдентификатор());                
			ЛистCells.а_2 = РезультатЗапроса.Регистратор.Номер;
			ЛистCells.а_3 = РезультатЗапроса.Регистратор.Дата;
			ЛистCells.а_4 = Строка(РезультатЗапроса.Регистратор);
			
			Если РезультатЗапроса.СчетКт.Родитель.Код <> "97" Тогда
				ЛистCells.а_5  = РезультатЗапроса.СубконтоКт1.НаименованиеПолное;
				ЛистCells.а_6  = РезультатЗапроса.СубконтоКт1.ИНН;
				ЛистCells.а_7  = РезультатЗапроса.СубконтоКт1.КПП;
				ЛистCells.а_8  = Строка(РезультатЗапроса.СубконтоКт2.УникальныйИдентификатор());
				ЛистCells.а_12 = РезультатЗапроса.КоличествоДт;
				
			КонецЕсли;
			
			Если	РезультатЗапроса.СчетДт.Родитель.Код = "10"
				ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" Тогда
				
				ЛистCells.а_9 = РезультатЗапроса.СубконтоДт1.НаименованиеПолное;
				ЛистCells.а_10 = РезультатЗапроса.СубконтоДт1.Код;
				
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если ((Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма) ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_13 = Стр.Цена;
							ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
							ЛистCells.а_17 = Стр.Сумма + Стр.СуммаНДС;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если Стр.Сумма = РезультатЗапроса.Сумма Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_12 = Стр.Количество;
							ЛистCells.а_17 = Стр.Сумма + Стр.СуммаНДС;
							Прервать;
							
						КонецЕсли;
						
					КонецЦикла;
					
				КонецЕсли;
				
			ИначеЕсли РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ
				РезультатЗапроса.СчетДт.Код = "25" ИЛИ
				РезультатЗапроса.СчетДт.Код = "26" ИЛИ
				РезультатЗапроса.СчетДт.Код = "19" Тогда
				Если (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ОперацияБух")) И (ТипЗнч(РезультатЗапроса.Регистратор) <> Тип("ДокументСсылка.ПоступлениеДопРасходов")) Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					Для Каждого Стр Из ТекДокумент.Услуги Цикл
						ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
						ЛистCells.а_10 = Стр.Номенклатура.Код;
						ЛистCells.а_13 = Стр.Цена;
						ЛистCells.а_14 = Строка(Стр.СтавкаНДС);
						ЛистCells.а_17 = Стр.Сумма + Стр.СуммаНДС;
						Прервать;

					КонецЦикла;
					
				ИначеЕсли ТипЗнч(РезультатЗапроса.Регистратор) = Тип("ДокументСсылка.ПоступлениеДопРасходов") Тогда
					ТекДокумент = РезультатЗапроса.Регистратор.ПолучитьОбъект();
					
					ЛистCells.а_5 = ТекДокумент.Контрагент.НаименованиеПолное;
					ЛистCells.а_6 = ТекДокумент.Контрагент.ИНН;
					ЛистCells.а_7 = ТекДокумент.Контрагент.КПП;
					ЛистCells.а_8 = Строка(ТекДокумент.ДоговорКонтрагента.УникальныйИдентификатор());
					ЛистCells.а_14 = Строка(ТекДокумент.СтавкаНДС);
					
					Для Каждого Стр Из ТекДокумент.Товары Цикл
						Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма) Тогда
							ЛистCells.а_9 = Стр.Номенклатура.НаименованиеПолное;
							ЛистCells.а_10 = Стр.Номенклатура.Код;
							ЛистCells.а_11 = Стр.Номенклатура.НоменклатураАНАЛИТИКИ.УИД;
							ЛистCells.а_12 = Стр.Количество;
							ЛистCells.а_17 = Стр.Сумма + Стр.СуммаНДС;
							
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
				
			КонецЕсли;
			
			ЛистCells.а_15 = РезультатЗапроса.Сумма;
			ЛистCells.а_18 = РезультатЗапроса.СчетКт.Код;
			ЛистCells.а_19 = РезультатЗапроса.СчетДт.Код;
			
		КонецЕсли;        
		
	КонецЦикла;
	
	ЛистCell.Свернуть("а_1,
	|а_2,
	|а_3,
	|а_4,
	|а_5,
	|а_6,
	|а_7,
	|а_8,
	|а_9,
	|а_10,
	|а_11,
	|а_12,
	|а_13,
	|а_14,
	|а_16,
	|а_18,
	|а_19",
	"а_15,
	|а_17");
	
	а=1;
	Для Каждого стр Из ЛистCell Цикл
		а = а + 1;
		
		Лист.Cells(а,1).NumberFormat = "@";
		Лист.Cells(а,2).NumberFormat = "@";
		Лист.Cells(а,3).NumberFormat = "ДД.ММ.ГГГГ";
		Лист.Cells(а,4).NumberFormat = "@";
		
		Лист.Cells(а,5).NumberFormat = "@";
		Лист.Cells(а,6).NumberFormat = "@";
		Лист.Cells(а,7).NumberFormat = "@";
		Лист.Cells(а,8).NumberFormat = "@";
		
		Лист.Cells(а,9).NumberFormat = "@";
		Лист.Cells(а,12).NumberFormat = "@";
		Лист.Cells(а,10).NumberFormat = "@";
		Лист.Cells(а,11).NumberFormat = "@";
		Лист.Cells(а,13).NumberFormat = "0,00";
		Лист.Cells(а,14).NumberFormat = "@";
		
		Лист.Cells(а,15).NumberFormat = "0,00";
		Лист.Cells(а,18).NumberFormat = "@";
		Лист.Cells(а,19).NumberFormat = "@";
		
		Лист.Cells(а,1).value = стр.а_1;
		Лист.Cells(а,2).value = стр.а_2;
		Лист.Cells(а,3).value = стр.а_3;
		Лист.Cells(а,4).value = стр.а_4;
		Лист.Cells(а,5).value = стр.а_5;
		Лист.Cells(а,6).value = стр.а_6;
		Лист.Cells(а,7).value = стр.а_7;
		Лист.Cells(а,8).value = стр.а_8;
		Лист.Cells(а,9).value = стр.а_9;
		Лист.Cells(а,10).value = стр.а_10;
		Лист.Cells(а,11).value = стр.а_11;
		Лист.Cells(а,12).value = стр.а_12;
		Лист.Cells(а,13).value = стр.а_13;
		Лист.Cells(а,14).value = стр.а_14;
		Лист.Cells(а,15).value = стр.а_15;
		Лист.Cells(а,16).value = стр.а_16;
		Лист.Cells(а,17).value = стр.а_17;
		Лист.Cells(а,18).value = стр.а_18;
		Лист.Cells(а,19).value = стр.а_19;
		
	КонецЦикла;
	
	
	
	Excel.Save();
	
	
	Excel.quit();
	
КонецПроцедуры
Показать
85. WasiliyMay 8 09.06.17 14:26 Сейчас в теме
(1) Проще добавить оборотный регистр накопления и через подписку на событие писать туда данные. Потом брать данные из регистра
3. tata_1211 64 09.06.17 09:32 Сейчас в теме
Если я правильно поняла, Вам нужно получить сумму с НДС по всему документу. В этом случае, может, при обходе табличной части подсчитывать полную сумму? Т.е., ввести переменную СуммаСНДС, и дальше суммировать строки по ТЧ.
4. 1cBokov 7 09.06.17 09:35 Сейчас в теме
5. Dream_kz 129 09.06.17 09:37 Сейчас в теме
(4) Документ.ТабличнаяЧасть.Итог("Сумма") + Документ.ТабличнаяЧасть.Итог("СуммаНДС")
6. 1cBokov 7 09.06.17 09:38 Сейчас в теме
(5)Скажите а куда эту строчку вставлять в коде?
10. Dream_kz 129 09.06.17 09:49 Сейчас в теме
(6) Ну где итоги выводишь, там и вставляй
7. tata_1211 64 09.06.17 09:42 Сейчас в теме
наверное, где-то в этой области
Лист.Cells(a,15).NumberFormat = "0,00";
Лист.Cells(a,15).value = РезультатЗапроса.Сумма;

Лист.Cells(a,18).NumberFormat = "@";
Лист.Cells(a,18).value = РезультатЗапроса.СчетКт.Код;
Лист.Cells(a,19).NumberFormat = "@";
Лист.Cells(a,19).value = РезультатЗапроса.СчетДт.Код;

То есть еще доступен ТекДокумент, и можно получить нужные данные
9. iskdv 09.06.17 09:49 Сейчас в теме
добавлены строки в код. начинается с "Лист.Cells(a,15).value = "
11. 1cBokov 7 09.06.17 09:55 Сейчас в теме
(9)Ругается на ставкуНДС.
12. 1cBokov 7 09.06.17 09:55 Сейчас в теме
Ругается на ставкуНДС.
Прикрепленные файлы:
13. iskdv 09.06.17 10:01 Сейчас в теме
Попытка
					Лист.Cells(a,14).value = Строка(ТекДокумент.СтавкаНДС);
					
				Исключение
				КонецПопытки;
14. iskdv 09.06.17 10:02 Сейчас в теме
и можно поставить точку останова и посмотреть что это за документ и где у него "ставка ндс"
15. 1cBokov 7 09.06.17 10:03 Сейчас в теме
(14)Сумма НДС находится в проводке, она и должна суммироваться с основной суммой. (см. скриншот №1).
20. tata_1211 64 09.06.17 10:17 Сейчас в теме
(15) Если НДС это сумма по проводке, тогда сумму с НДС, наверное, правильно будет брать не из итога, а из табличной части
ПолКило; +1 Ответить
21. 1cBokov 7 09.06.17 10:23 Сейчас в теме
(20)Вот что у меня получилось, это работает, только теперь ели есть НДС суммируется все суммы в проводке, как это исправить знаете?
Прикрепленные файлы:
22. 1cBokov 7 09.06.17 10:25 Сейчас в теме
(20)А можете написать как это осуществить?
23. tata_1211 64 09.06.17 10:27 Сейчас в теме
(22) на вид все вроде нормально. А можно весь получившийся код еще раз? Ощущение, что эта строка находится где-то не в том месте.
16. 1cBokov 7 09.06.17 10:06 Сейчас в теме
(14)Выводит не сумму с ндс а просто "0".
17. tata_1211 64 09.06.17 10:06 Сейчас в теме
у документа есть такой реквизит? или это реквизит ТЧ?
18. 1cBokov 7 09.06.17 10:07 Сейчас в теме
19. tata_1211 64 09.06.17 10:10 Сейчас в теме
Посмотрите в отладчике, что возвращается в качестве "ТекДокумент.СтавкаНДС", и что по итогам табличных частей: Сумма и СуммаНДС
25. tata_1211 64 09.06.17 10:37 Сейчас в теме
Смотрите, Вы в запросе получаете проводки. Это означает, что по одному документу может быть сформировано несколько проводок. Потом Вы получаете документ-регистратор, и обходите его табличную часть. Таким образом, Вы получаете дублирование данных. Может, стоит переписать запрос? Или же записывать обработанные документы в таблицу значений, и проверять наличие документа в этой таблице?
26. tata_1211 64 09.06.17 10:39 Сейчас в теме
И еще: а почему бы это условие не поставить в сам запрос?
Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда ...
27. iskdv 09.06.17 10:40 Сейчас в теме
(26) здесь нужен еще 19 счет.
28. iskdv 09.06.17 10:40 Сейчас в теме
29. iskdv 09.06.17 10:42 Сейчас в теме
(26) тогда можно собрать все в Таблицу значений. свернуть и суммировать данные в ней и только потом выгрузить все в Ексель. напишем?
30. 1cBokov 7 09.06.17 10:43 Сейчас в теме
(29)Конечно если поможете, а то я не особо силен.
31. tata_1211 64 09.06.17 10:44 Сейчас в теме
32. tata_1211 64 09.06.17 10:44 Сейчас в теме
У меня нет этой конфы. Будет дольше
33. 1cBokov 7 09.06.17 10:44 Сейчас в теме
Вы мне примерно подскажите кусками что куда подставить а я уже допишу.
34. tata_1211 64 09.06.17 10:59 Сейчас в теме
еще раз пересмотрела код - у Вас Лист.Cells(a,17).value = Стр.Сумма + Стр.СуммаНДС; должна находиться внутри цикла по товарам и услугам
35. 1cBokov 7 09.06.17 11:06 Сейчас в теме
(34) Ок сейчас вставлю, спасибо Вам.
36. 1cBokov 7 09.06.17 11:09 Сейчас в теме
(34)Вставил внутрь цикла.
Прикрепленные файлы:
37. tata_1211 64 09.06.17 11:12 Сейчас в теме
(36) в итоге получили то, что нужно?
38. 1cBokov 7 09.06.17 11:13 Сейчас в теме
(37)В тех документах в которых одна проводка то-есть один документ ставит сумму ту что надо (отлично), а в документах где несколько проводок суммирует все и выводит общую сумму.
39. 1cBokov 7 09.06.17 11:17 Сейчас в теме
(38)Сейчас отдал выгрузку бухгалтеру, по точнее скажет что не так сразу отпишусь.
43. tata_1211 64 09.06.17 12:43 Сейчас в теме
потому что нет добавления строки в таблицу значений
46. iskdv 09.06.17 12:52 Сейчас в теме
там в "а_" а -- это русская буква?
47. 1cBokov 7 09.06.17 12:54 Сейчас в теме
49. 1cBokov 7 09.06.17 12:55 Сейчас в теме
(46)Снова такая же ошибка.
48. tata_1211 64 09.06.17 12:54 Сейчас в теме
Дело в другом. Создается таблица значений, определяются колонки, но для установки значений нет добавления строки для этой установки.
50. tata_1211 64 09.06.17 12:55 Сейчас в теме
то есть Таблица = Новый ТаблицаЗначений;

Дальше определяем колонки.
А затем для добавления значений:
Стр = Таблица.Добавить();
Стр.Колонка1 = .....

И так далее
52. iskdv 09.06.17 12:56 Сейчас в теме
53. 1cBokov 7 09.06.17 13:07 Сейчас в теме
(52)Теперь так выдает.
Прикрепленные файлы:
55. iskdv 09.06.17 13:11 Сейчас в теме
59. 1cBokov 7 09.06.17 13:24 Сейчас в теме
(55)Теперь колонка 17 вообще пустая
56. 1cBokov 7 09.06.17 13:16 Сейчас в теме
Только что бухгалтер проверила предыдущий вариант обработки, тоесть гне нет НДС все отлично, где в документе одна проводка тоже отлично считает, а вот где в одном документе несколько проводок - - (см. скриншот). а на данный момент обработка суммирует все проводки.
Прикрепленные файлы:
57. tata_1211 64 09.06.17 13:20 Сейчас в теме
(56) Ощущение, что мы Вас вообще неправильно поняли. Можете на пальцах объяснить, что в конечном итоге должно быть в файле?
58. 1cBokov 7 09.06.17 13:23 Сейчас в теме
(57)Сумма с НДС по каждому документу, она получается сумма проводки + налог = сумма с ндс как на моем скриншоте,
60. iskdv 09.06.17 13:26 Сейчас в теме
сумма ложится в 15 колонку. нужно чтоб в 17?
67. iskdv 09.06.17 13:38 Сейчас в теме
в 15 -- мы складываем сумму без НДС, а в 17 сумму с НДС?
69. 1cBokov 7 09.06.17 13:39 Сейчас в теме
(67) в 15 сумма без НДС она выводится все отлично, а вот в 17 необходимо высчитать сумму с ндс.
68. tata_1211 64 09.06.17 13:38 Сейчас в теме
ЛистCells.а_15 = РезультатЗапроса.Сумма;
ЛистCells.а_17 = РезультатЗапроса.Сумма; 

Вот почему дублирует. В 17 должна быть сумма с НДС
70. 1cBokov 7 09.06.17 13:40 Сейчас в теме
(68)Точнее в 17 должна быть сумма с НДС, а не сумма ндс.
71. iskdv 09.06.17 13:42 Сейчас в теме
73. tata_1211 64 09.06.17 13:44 Сейчас в теме
ЛистCells.а_15 = РезультатЗапроса.Сумма;
ЛистCells.а_17 = РезультатЗапроса.Сумма; 

Видимо, еще не поправили
74. 1cBokov 7 09.06.17 13:49 Сейчас в теме
Вообще сумма с ндс та что и нужна находится в документе в табличной части колонка "Всего".
(73)Да, тоже самое опять дублирует только теперь 50 на 50 на две колонки (см. скриншот).
Прикрепленные файлы:
75. tata_1211 64 09.06.17 13:52 Сейчас в теме
предлагаю снова рассмотреть 34
76. 1cBokov 7 09.06.17 13:55 Сейчас в теме
(75)(34) ставит сумму с НДС правильно только там где в документе есть одна проводка тоесть он правильно все суммирует, а где в одном документе несколько проводок, тут он начинает суммировать все проводки в одну строчку по этому документу.
77. tata_1211 64 09.06.17 14:00 Сейчас в теме
тогда, если в строках документа одна и та же номенклатура, группировка сворачивает эти строки. Хотя - не вариант.
80. iskdv 09.06.17 14:18 Сейчас в теме
вот сейчас "по идее" сумма в 15ст=сумме в 17ст=сумма+суммаНДС. но ведь это не так?
81. 1cBokov 7 09.06.17 14:21 Сейчас в теме
82. tata_1211 64 09.06.17 14:21 Сейчас в теме
ЛистCells.а_17 = РезультатЗапроса.Сумма; - Закомментируем.
Внутри цикла по товарам и услугам:
ЛистCells.а_17 = Стр.Сумма+Стр.СуммаНДС;
Как-то так
84. iskdv 09.06.17 14:25 Сейчас в теме
86. 1cBokov 7 09.06.17 14:38 Сейчас в теме
(84)Теперь в колонках пробелы присутствуют. (см. скриншот).
Прикрепленные файлы:
87. tata_1211 64 09.06.17 14:40 Сейчас в теме
(86) а в строках с нулями номенклатура выводится?
88. 1cBokov 7 09.06.17 14:44 Сейчас в теме
(87)Нет номенклатура кстати невыводится
89. tata_1211 64 09.06.17 14:54 Сейчас в теме
(88) а что содержит в себе документ, по которому выводятся такие пустые строки?
90. 1cBokov 7 09.06.17 14:57 Сейчас в теме
(89)Все строки которые с нулями оказались это и есть докуменыт по которым несколько проводок, превая отображается а остальные превращаются в нули и пустые строки
91. 1cBokov 7 09.06.17 15:00 Сейчас в теме