|
Диалог выбора каталога | ☑ | ||
---|---|---|---|---|
0
Baumgartlinger
07.02.19
✎
17:54
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
Режим = РежимДиалогаВыбораФайла.ВыборКаталога; ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытия.Каталог = ""; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберите каталог"; Если ДиалогОткрытия.Выбрать() Тогда ПутьККаталогу = ДиалогОткрытия.Каталог; КонецЕсли; Для каждого строка из Табл Цикл об = строка.документ.получитьобъект(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка, | ПоступлениеТоваровУслугТовары.Номенклатура, | ПоступлениеТоваровУслугТовары.Количество, | ПоступлениеТоваровУслугТовары.Номенклатура.ЗовнішнійID КАК ЗовнішнійID, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Сумма, | ПоступлениеТоваровУслугТовары.СтавкаНДС, | ПоступлениеТоваровУслугТовары.СуммаНДС, | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент, | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент.КодПоЕДРПОУ КАК ЕДРПОУПост, | ПоступлениеТоваровУслугТовары.Ссылка.Организация, | ПоступлениеТоваровУслугТовары.Склад КАК Склад, | ПоступлениеТоваровУслугТовары.Склад.Наименование КАК СкладНаим, | ПоступлениеТоваровУслугТовары.Склад.Код КАК СкладКод, | КодыОрганизацииСрезПоследних.КодПоЕДРПОУ КАК ЕДРПОУ |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КодыОрганизации.СрезПоследних КАК КодыОрганизацииСрезПоследних | ПО ПоступлениеТоваровУслугТовары.Ссылка.Организация = КодыОрганизацииСрезПоследних.Организация |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка=&Док | |УПОРЯДОЧИТЬ ПО | Ссылка"; запрос.УстановитьПараметр("Док",строка.документ); ТЗ = Запрос.Выполнить().Выгрузить(); //Если "Товары" пустые - отбой Если ТЗ.Количество() = 0 Тогда Сообщить("Нет актуальных данных для выгрузки!"); Продолжить; КонецЕсли; //Если есть что-то в "Товары" - работаем Если истина Тогда //Если уже выгружено в xls - идем дальше по списку Если строка.ВыгруженоВПрофит = Истина Тогда Продолжить; КонецЕсли; //Иначе производим выгрузку в xls строка.ВыгруженоВПрофит = Истина; об.ВыгруженоВПрофит = Истина; об.записать(); Попытка Excel = Новый COMОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка Книга = Excel.WorkBooks.Add(); Лист = Книга.WorkSheets(1); Лист.Name = "Выгрузка данных"; //шапка Лист.Cells(1, 1).Value = "Дата"; Лист.Cells(1, 2).Value = "ЕДРПОУ Поставщика"; Лист.Cells(1, 3).Value = "ЕДРПОУ"; Лист.Cells(1, 4).Value = "Склад"; Лист.Cells(1, 5).Value = "Вид склада"; Лист.Cells(1, 6).Value = "Код склада"; //товары Лист.Cells(4, 1).Value = "Номенклатура"; Лист.Cells(4, 2).Value = "Зовнішній ID"; Лист.Cells(4, 3).Value = "Количество"; Лист.Cells(4, 4).Value = "Цена"; Лист.Cells(4, 5).Value = "Сумма"; Лист.Cells(4, 6).Value = "Ставка НДС"; //выгружаем СчетчикСтрок = 5; Для Каждого ТекСтрока Из ТЗ Цикл Лист.Cells(2, 1).Value = ТекСтрока.Ссылка.Дата; Лист.Cells(2, 2).Value = ТекСтрока.ЕДРПОУПост; Лист.Cells(2, 3).Value = ТекСтрока.ЕДРПОУ; Лист.Cells(2, 4).Value = ТекСтрока.СкладНаим; Лист.Cells(2, 5).Value = Строка(ТекСтрока.Склад.ВидСклада); Лист.Cells(2, 6).Value = ТекСтрока.СкладКод; Лист.Cells(СчетчикСтрок, 1).Value = Строка(ТекСтрока.Номенклатура); Лист.Cells(СчетчикСтрок, 2).Value = ТекСтрока.ЗовнішнійID; Лист.Cells(СчетчикСтрок, 3).Value = ТекСтрока.Количество; Лист.Cells(СчетчикСтрок, 4).Value = ТекСтрока.Цена; Лист.Cells(СчетчикСтрок, 5).Value = ТекСтрока.Сумма; Лист.Cells(СчетчикСтрок, 6).Value = Строка(ТекСтрока.СтавкаНДС); СчетчикСтрок = СчетчикСтрок + 1; КонецЦикла; Исключение Excel.Quit(); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; путь = ПутьККаталогу; ИмяФайла = "ПН-" + ТекСтрока.Ссылка.Номер +"-"+ Формат( ТекСтрока.Ссылка.Дата, "ДФ=yyyy-MM-dd") + ".xls"; ФайлДанных = путь + "\" + ИмяФайла; Попытка Книга.SaveAs(ФайлДанных); Сообщить("Файл " + ИмяФайла + " успешно сохранен"); Исключение Сообщить(ОписаниеОшибки() + " Файл не сохранен!"); Возврат; КонецПопытки; Попытка Excel.Quit(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; КонецЕсли; КонецЦикла; КонецПроцедуры Добрый день! не понимаю в какой участок поместить открытие окна выбора каталога, так чтобы оно открывалось лишь когда оно не будет удовлетворять это условие: Если ТЗ.Количество() = 0 Тогда Продолжить; КонецЕсли; так как оно в цикле, и вызываться будет столько раз, сколько и записей у меня |
|||
1
Baumgartlinger
07.02.19
✎
17:54
|
код свернулся весь
|
|||
2
Mort
07.02.19
✎
17:59
|
переделай под один запрос и вопросы отпадут.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |