Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УФ табличный документ сохраняется во временный файл пустым

УФ табличный документ сохраняется во временный файл пустым
Я
   arsenfn
 
11.02.21 - 14:17
Добрый день! У меня такая же проблема. Вы нашли решение?
   dka80
 
1 - 11.02.21 - 14:18
Добрый день. Нет. А должен был?
   arsenfn
 
2 - 11.02.21 - 14:19
Блин хотел спросить, а оказывается открыл новую тему. Короче проблема у меня в том, что при записи табличного документа во временный файл он записывается пустым.
   arsenfn
 
3 - 11.02.21 - 14:19
Платформа 8.3
   dka80
 
4 - 11.02.21 - 14:20
Если ты дашь немножко больше инфы (например, часть кода), то будет легче помочь
   arsenfn
 
5 - 11.02.21 - 14:23
Задумка такая. Получить запросом данные, сохранить во временный файл и этот файл отправить по почте. Но письмо приходит с пустым вложенным файлом. Вот код сохранения в файле:
Процедура ОтправитьПоПочет(ТабДок)
    
    ВременныйФайл = ПолучитьИмяВременногоФайла(".xls");
    ТабДок.Записать(ВременныйФайл, ТипФайлаТабличногоДокумента.XLS);

КонецПроцедуры
   acht
 
6 - 11.02.21 - 14:24
(5) А при формировании письма-то откуда файл читаешь?
   arsenfn
 
7 - 11.02.21 - 14:26
Почта = Новый ИнтернетПочта;
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Тема =  "Отчет Анализ доступности товаров на " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
Письмо.Отправитель = АдресОтправки;
Письмо.ИмяОтправителя = "Робот";                    
Письмо.Вложения.Добавить(ВременныйФайл);         
Получатель = Письмо.Получатели.Добавить(АдресПолучателя);
Получатель.ОтображаемоеИмя = "Робот";
   arsenfn
 
8 - 11.02.21 - 14:27
Это код из той же процедуры
   dka80
 
9 - 11.02.21 - 14:28
ВременныйФайл = ПолучитьИмяВременногоФайла(".xls");

замени на 
ВременныйФайл = ПолучитьИмяВременногоФайла("xls");
   acht
 
10 - 11.02.21 - 14:28
(8) Приведи весь код.
   Почему 1С
 
11 - 11.02.21 - 14:30
(5) ты уверен в что в функцию пришел не пустой Табдок?
   dka80
 
12 - 11.02.21 - 14:31
ТабДок.Записать(ВременныйФайл, ТипФайлаТабличногоДокумента.XLS);

после этого найди свой временный файл и посмотри что в нем
   dka80
 
13 - 11.02.21 - 14:33
Ну и верни табдок на клиент и сделай ТабДок.Показать()
   arsenfn
 
14 - 11.02.21 - 14:36
Да действительно файл пустой сохраняется.
   arsenfn
 
15 - 11.02.21 - 14:36
ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьОбщийМакет("арс_МакетОстатки");
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ТоварыНаСкладахОстатки.Склад КАК Склад,
        |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, {(Склад).* КАК Склад, (Качество).* КАК Качество, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры}) КАК ТоварыНаСкладахОстатки
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    ТоварыВРозницеОстатки.Склад,
        |    ТоварыВРозницеОстатки.Номенклатура,
        |    ТоварыВРозницеОстатки.КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыВРознице.Остатки(&ДатаКон, {(Склад).* КАК Склад, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (Качество).* КАК Качество}) КАК ТоварыВРозницеОстатки
        |ИТОГИ
        |    СУММА(КоличествоОстаток)
        |ПО
        |    Склад";
    
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(ТекущаяДата()));
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаСклад = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка");
    ОбластьСклад = Макет.ПолучитьОбласть("ОбластьСклад");
    ОбластьТовары = Макет.ПолучитьОбласть("ОбластьТовары");
    Макет.Вывести(ОбластьШапка);
    
    Пока ВыборкаСклад.Следующий() Цикл
        
        
        ОбластьСклад.Параметры.Заполнить(ВыборкаСклад);
        Макет.Вывести(ОбластьСклад);
    
        ВыборкаДетальныеЗаписи = ВыборкаСклад.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            
            ОбластьТовары.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            Макет.Вывести(ОбластьТовары);
            
        КонецЦикла;
        
    КонецЦикла;
    
    ОтправитьПоПочет(ТабДок);
   arsenfn
 
16 - 11.02.21 - 14:36
Это код формирования табличного документа
   arsenfn
 
17 - 11.02.21 - 14:37
(12) Не помогает
   Почему 1С
 
18 - 11.02.21 - 14:38
(15) Вместо Макет.Вывести надо Табдок.Вывести
   acht
 
19 - 11.02.21 - 14:38
(15) У тебя формирование неправильное
Вместо Макет.Вывести надо ТабДок.Вывести
   dka80
 
20 - 11.02.21 - 14:38
(15) а ты прикольный
Макет.Вывести(
Замени на ТабДок.Вывести(
   acht
 
21 - 11.02.21 - 14:39
Ккккомбо! =)
   arsenfn
 
22 - 11.02.21 - 14:43
Блин. Спасибо (19)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.