|
Табдок.записать не работает | ☑ | ||
---|---|---|---|---|
0
Camous
11.09.13
✎
18:55
|
Пытался сохранить отчет в файл xls, но ниче не получается. скопировал из модуля менеджера
&НаКлиентеСервере Процедура СохранитьОтчетВExcel(Команда) // Вставить содержимое обработчика. Макет = УправлениеПечатью.ПолучитьМакет("Документ.ОтчетОРозничныхПродажах.ПФ_MXL_ОтчетОРозничныхПродажах"); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Чек_Накладная"; Для каждого ЧекККМ Из МассивОбъектов Цикл НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЧекККМ.Ссылка); Запрос.Текст = "ВЫБРАТЬ | ОтчетОРозничныхПродажах.Номер КАК Номер, | ОтчетОРозничныхПродажах.Дата КАК Дата, | ОтчетОРозничныхПродажах.КассаККМ КАК КассаККМ, | ОтчетОРозничныхПродажах.ВалютаДокумента КАК Валюта, | ОтчетОРозничныхПродажах.КассаККМ.Представление КАК Покупатель, | ОтчетОРозничныхПродажах.Организация КАК Организация, | ОтчетОРозничныхПродажах.Организация.Префикс КАК Префикс, | ОтчетОРозничныхПродажах.Организация.Представление КАК Поставщик, | ОтчетОРозничныхПродажах.СуммаДокумента КАК СуммаДокумента, | ОтчетОРозничныхПродажах.СуммаВключаетНДС КАК СуммаВключаетНДС, | ОтчетОРозничныхПродажах.Запасы.( | НомерСтроки КАК НомерСтроки, | Номенклатура КАК Номенклатура, | Номенклатура.Представление КАК Запас, | Номенклатура.НаименованиеПолное КАК ЗапасПолноеНаименование, | Номенклатура.Код КАК Код, | Номенклатура.Артикул КАК Артикул, | Характеристика КАК Характеристика, | Количество КАК Количество, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Цена КАК Цена, | Сумма КАК Сумма, | СуммаНДС КАК СуммаНДС, | ПроцентСкидкиНаценки, | ВЫБОР | КОГДА ОтчетОРозничныхПродажах.Запасы.ПроцентСкидкиНаценки <> 0 | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ЕстьСкидка | ) |ИЗ | Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах |ГДЕ | ОтчетОРозничныхПродажах.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата, ,); Если Шапка.Дата < Дата('20110101') Тогда НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(Шапка.Номер, Шапка.Префикс); Иначе НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Шапка.Номер, Истина, Истина); КонецЕсли; // Выводим шапку накладной. ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = "Отчет о розничных продажах № " + НомерДокумента + " от " + Формат(Шапка.Дата, "ДЛФ=DD"); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ПредставлениеПоставщика = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"); ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика; ОбластьМакета.Параметры.Поставщик = Шапка.Организация; ТабДокумент.Вывести(ОбластьМакета); ЕстьСкидки = Шапка.Запасы.Выгрузить().Итог("ЕстьСкидка") <> 0; ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма"); ТабДокумент.Вывести(ОбластьНомера); ТабДокумент.Присоединить(ОбластьДанных); Если ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ТабДокумент.Присоединить(ОбластьСуммы); ОбластьКолонкаЗапас = Макет.Область("Запас"); Если Не ЕстьСкидки Тогда ОбластьКолонкаЗапас.ШиринаКолонки = ОбластьКолонкаЗапас.ШиринаКолонки + Макет.Область("СуммаБезСкидки").ШиринаКолонки + Макет.Область("СуммаСкидки").ШиринаКолонки; КонецЕсли; ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма"); Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; ВыборкаСтрокЗапасы = Шапка.Запасы.Выбрать(); Пока ВыборкаСтрокЗапасы.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокЗапасы.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; ОбластьНомера.Параметры.Заполнить(ВыборкаСтрокЗапасы); ТабДокумент.Вывести(ОбластьНомера); ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокЗапасы); ОбластьДанных.Параметры.Запас = УправлениеНебольшойФирмойСервер.ПолучитьПредставлениеНоменклатурыДляПечати( ВыборкаСтрокЗапасы.Запас, ВыборкаСтрокЗапасы.Характеристика, ВыборкаСтрокЗапасы.Артикул ); ТабДокумент.Присоединить(ОбластьДанных); Скидка = 0; Если ЕстьСкидки Тогда Если ВыборкаСтрокЗапасы.ПроцентСкидкиНаценки = 100 Тогда Скидка = ВыборкаСтрокЗапасы.Цена * ВыборкаСтрокЗапасы.Количество; ОбластьСкидок.Параметры.Скидка = Скидка; ОбластьСкидок.Параметры.СуммаБезСкидки = Скидка; ИначеЕсли ВыборкаСтрокЗапасы.ПроцентСкидкиНаценки = 0 Тогда ОбластьСкидок.Параметры.Скидка = 0; ОбластьСкидок.Параметры.СуммаБезСкидки = ВыборкаСтрокЗапасы.Сумма; Иначе Скидка = ВыборкаСтрокЗапасы.Сумма * ВыборкаСтрокЗапасы.ПроцентСкидкиНаценки / (100 - ВыборкаСтрокЗапасы.ПроцентСкидкиНаценки); ОбластьСкидок.Параметры.Скидка = Скидка; ОбластьСкидок.Параметры.СуммаБезСкидки = ВыборкаСтрокЗапасы.Сумма + Скидка; КонецЕсли; ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокЗапасы); ТабДокумент.Присоединить(ОбластьСуммы); Сумма = Сумма + ВыборкаСтрокЗапасы.Сумма; ВсегоСкидок = ВсегоСкидок + Скидка; ВсегоБезСкидок = Сумма + ВсегоСкидок; СуммаНДС = СуммаНДС + ВыборкаСтрокЗапасы.СуммаНДС; КонецЦикла; // Вывести Итого. ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Итого|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма"); ТабДокумент.Вывести(ОбластьНомера); ТабДокумент.Присоединить(ОбластьДанных); Если ЕстьСкидки Тогда ОбластьСкидок.Параметры.ВсегоСкидок = ВсегоСкидок; ОбластьСкидок.Параметры.ВсегоБезСкидок = ВсегоБезСкидок; ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Всего = Сумма; ТабДокумент.Присоединить(ОбластьСуммы); // Вывести Сумму прописью. ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + Строка(ВыборкаСтрокЗапасы.Количество()) + ", на сумму " + УправлениеНебольшойФирмойСервер.ФорматСумм(СуммаКПрописи, Шапка.Валюта); ОбластьМакета.Параметры.СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.Валюта); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи. ОбластьМакета = Макет.ПолучитьОбласть("Подписи"); ОбластьМакета.Параметры.Заполнить(Шапка); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, ЧекККМ); КонецЦикла; ТабДокумент.Записать("C:\ОтчетОРознице12.09.13.xls","xls"); //не работает(( КонецПроцедуры |
|||
1
Нуф-Нуф
11.09.13
✎
19:00
|
а что значит не работает?
|
|||
2
Camous
11.09.13
✎
19:08
|
Желаемый файл не появляется
|
|||
3
Camous
11.09.13
✎
19:09
|
Пытаюсь получить отчет в xls
|
|||
4
Нуф-Нуф
11.09.13
✎
19:11
|
режим управляемый? база файловая?
|
|||
5
Camous
11.09.13
✎
19:14
|
Да
|
|||
6
Лефмихалыч
11.09.13
✎
20:04
|
(2) чудес не бывает. он появлется, но не на твоем компе, а на сервере приложений
|
|||
7
Лефмихалыч
11.09.13
✎
20:06
|
и я бы на твоем месте запрос из цикла так вынес
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |