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

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

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

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