Добрый всем день, необходимо сложить две строки в обработке которая выгружает документы "Поступление товаров и услуг" вот эта обработка выводит ячейки сумму и суммуНДС, необходимо их сложить чтобы получить суммуСНДС, помогите как это сделать (см. скриншот в нем все подробно описал). При лагаю во втором сообщении код обработки.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
Показать
(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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
ПоказатьПроцедура КнопкаВыполнитьНажатие(Кнопка)
НомерЛиста = 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();
КонецПроцедуры
Показать
Если я правильно поняла, Вам нужно получить сумму с НДС по всему документу. В этом случае, может, при обходе табличной части подсчитывать полную сумму? Т.е., ввести переменную СуммаСНДС, и дальше суммировать строки по ТЧ.
наверное, где-то в этой области
То есть еще доступен ТекДокумент, и можно получить нужные данные
Лист.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 = РезультатЗапроса.СчетДт.Код;
То есть еще доступен ТекДокумент, и можно получить нужные данные
Смотрите, Вы в запросе получаете проводки. Это означает, что по одному документу может быть сформировано несколько проводок. Потом Вы получаете документ-регистратор, и обходите его табличную часть. Таким образом, Вы получаете дублирование данных. Может, стоит переписать запрос? Или же записывать обработанные документы в таблицу значений, и проверять наличие документа в этой таблице?
И еще: а почему бы это условие не поставить в сам запрос?
Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда ...
Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда ...
Только что бухгалтер проверила предыдущий вариант обработки, тоесть гне нет НДС все отлично, где в документе одна проводка тоже отлично считает, а вот где в одном документе несколько проводок - - (см. скриншот). а на данный момент обработка суммирует все проводки.
Прикрепленные файлы: