Имя: Пароль:
1C
1С v8
ОСВ программно
0 1cLuser
 
02.06.15
12:47
Здравствуйте!

Пытаюсь программно создать ОСВ и записать в файл, процедура выполняется без ошибок, но файл пустой, что не так?

Процедура ЕжедневнаяОСВедомость() Экспорт
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Очистить();
    НоваяОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
    НоваяОСВ.РежимРасшифровки = Истина;
    НоваяОСВ.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН","111111111111");
    НоваяОСВ.НачалоПериода = НачалоГода(ТекущаяДата());
    НоваяОСВ.КонецПериода = ТекущаяДата();
    НоваяОСВ.ПоСубсчетам = Истина;
    НоваяОСВ.СкомпоноватьРезультат(ТабДок);
    
    ТабДок.Записать("C:\ОСВ.pdf", ТипФайлаТабличногоДокумента.PDF);
    
КонецПроцедуры


Конфигурация БухгалтерияПредприятия 3.0  (3.0.40.24)
1 pessok
 
02.06.15
13:02
(0) к сожалению, все не так...

    
    ПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;    
    ДополнительныеСвойства = ПользовательскиеНастройки.ДополнительныеСвойства;
    ДополнительныеСвойства.Вставить("НачалоПериода",    НачалоПериода);
    ДополнительныеСвойства.Вставить("КонецПериода",        КонецПериода);
    ДополнительныеСвойства.Вставить("Счет",                СчетУчетаОСВ);    
    ДополнительныеСвойства.Вставить("ПоСубсчетам",        Истина);
        
    
    Отбор = ПользовательскиеНастройки.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
    Отбор.ИдентификаторПользовательскойНастройки = "Отбор";
    ЗаполнитьЭлементОтбораКомпоновкиДанных(Отбор,ЗначениеЗаполнено(Номенклатура),ВидСравненияКомпоновкиДанных.Равно,"Субконто1", Номенклатура);
    ЗаполнитьЭлементОтбораКомпоновкиДанных(Отбор,ЗначениеЗаполнено(Склад),ВидСравненияКомпоновкиДанных.Равно,"Субконто3", Склад);
    ЗаполнитьЭлементОтбораКомпоновкиДанных(Отбор,ЗначениеЗаполнено(Сотрудник),ВидСравненияКомпоновкиДанных.Равно,"Субконто3", Сотрудник);
    
    ДополнительныеСвойства.Вставить("Отбор", Отбор);
    
    ПараметрыФормы = Новый Структура();
    ПараметрыФормы.Вставить("РежимРасшифровки",         Ложь);
    ПараметрыФормы.Вставить("ВидРасшифровки",             2);
    ПараметрыФормы.Вставить("ПользовательскиеНастройки",     ПользовательскиеНастройки);
    ПараметрыФормы.Вставить("ЗаполняемыеНастройки",         Новый Структура("Показатели, Отбор, Группировка", Истина, Истина, Истина));
    ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);    
    
    ФормаОтчета = ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету.Форма", ПараметрыФормы, ЭтаФорма, Истина);
    ФормаОтчета.Элементы.Счет.Доступность = Ложь;
2 pessok
 
02.06.15
13:04
соответственно, форму можно не открывать, а уже после этого скомпоновать. В данном случае важным будет параметр "ВидРасшифровки"
3 1cLuser
 
02.06.15
13:37
(1) Отчёт должен формироваться на сервере и записываться в файл.
Не понятно зачем формировать форму отчёта?
Пока ничего не выходит.
4 1cLuser
 
03.06.15
12:31
Почему процедура выдаёт ошибку?
"Неправильный путь к файлу 'ОборотноСальдоваяВедомость'"

Процедура ЕжедневнаяОСВедомость() Экспорт
    
    НоваяОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
    
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("Организация"                      , Справочники.Организации.НайтиПоРеквизиту("ИНН","1112119111"));
    ПараметрыОтчета.Вставить("НачалоПериода"                    , НачалоГода(ТекущаяДата()));
    ПараметрыОтчета.Вставить("КонецПериода"                     , ТекущаяДата());
    ПараметрыОтчета.Вставить("ВключатьОбособленныеПодразделения", ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательБУ"                     , Истина);
    ПараметрыОтчета.Вставить("ПоказательНУ"                     , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательПР"                     , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательВР"                     , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательВалютнаяСумма"          , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательКонтроль"               , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ВыводитьЗабалансовыеСчета"        , ЛОЖЬ);
    ПараметрыОтчета.Вставить("РазмещениеДополнительныхПолей"    , 0);
    ПараметрыОтчета.Вставить("ПоСубсчетам"                      , Истина);
    ПараметрыОтчета.Вставить("Группировка"                      , НоваяОСВ.Группировка.Выгрузить());
    ПараметрыОтчета.Вставить("ДополнительныеПоля"               , НоваяОСВ.ДополнительныеПоля.Выгрузить());
    ПараметрыОтчета.Вставить("РазвернутоеСальдо"                , НоваяОСВ.РазвернутоеСальдо.Выгрузить());
    ПараметрыОтчета.Вставить("РежимРасшифровки"                 , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ВыводитьЗаголовок"                , Истина);
    ПараметрыОтчета.Вставить("ВыводитьПодвал"                   , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ДанныеРасшифровки"                , Неопределено);
    ПараметрыОтчета.Вставить("МакетОформления"                  , "ОформлениеОтчётовЗелёный");
    ПараметрыОтчета.Вставить("СхемаКомпоновкиДанных"            , НоваяОСВ.ПолучитьМакет("СхемаКомпоновкиДанных"));
    ПараметрыОтчета.Вставить("ИдентификаторОтчета"              , "ОборотноСальдоваяВедомость");
    ПараметрыОтчета.Вставить("НастройкиКомпоновкиДанных"        , НоваяОСВ.КомпоновщикНастроек.ПолучитьНастройки());
    ПараметрыОтчета.Вставить("НаборПоказателей"                 , Отчеты["ОборотноСальдоваяВедомость"].ПолучитьНаборПоказателей());
    ПараметрыОтчета.Вставить("ОтветственноеЛицо"                , Перечисления.ОтветственныеЛицаОрганизаций.ОтветственныйЗаБухгалтерскиеРегистры);
    ПараметрыОтчета.Вставить("ВыводитьЕдиницуИзмерения"         , ЛОЖЬ);
    
    АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, "ОборотноСальдоваяВедомость");
    БухгалтерскиеОтчетыВызовСервера.СформироватьОтчет(ПараметрыОтчета, АдресХранилища);
    
    РезультатВыполнения = ПолучитьИзВременногоХранилища(АдресХранилища);
    Результат = РезультатВыполнения.Результат;    
    Результат.Записать("C:\ОСВ.pdf", ТипФайлаТабличногоДокумента.PDF);
    
КонецПроцедуры
5 1cLuser
 
03.06.15
12:45
Всё разобрался, всё работает

Процедура ЕжедневнаяОСВедомость() Экспорт
    
    НоваяОСВ = Отчеты.ОборотноСальдоваяВедомость.Создать();
    
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("Организация"                      , Справочники.Организации.НайтиПоРеквизиту("ИНН","1112119111"));
    ПараметрыОтчета.Вставить("НачалоПериода"                    , НачалоГода(ТекущаяДата()));
    ПараметрыОтчета.Вставить("КонецПериода"                     , ТекущаяДата());
    ПараметрыОтчета.Вставить("ВключатьОбособленныеПодразделения", ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательБУ"                     , Истина);
    ПараметрыОтчета.Вставить("ПоказательНУ"                     , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательПР"                     , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательВР"                     , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательВалютнаяСумма"          , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ПоказательКонтроль"               , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ВыводитьЗабалансовыеСчета"        , ЛОЖЬ);
    ПараметрыОтчета.Вставить("РазмещениеДополнительныхПолей"    , 0);
    ПараметрыОтчета.Вставить("ПоСубсчетам"                      , Истина);
    ПараметрыОтчета.Вставить("Группировка"                      , НоваяОСВ.Группировка.Выгрузить());
    ПараметрыОтчета.Вставить("ДополнительныеПоля"               , НоваяОСВ.ДополнительныеПоля.Выгрузить());
    ПараметрыОтчета.Вставить("РазвернутоеСальдо"                , НоваяОСВ.РазвернутоеСальдо.Выгрузить());
    ПараметрыОтчета.Вставить("РежимРасшифровки"                 , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ВыводитьЗаголовок"                , Истина);
    ПараметрыОтчета.Вставить("ВыводитьПодвал"                   , ЛОЖЬ);
    ПараметрыОтчета.Вставить("ДанныеРасшифровки"                , Неопределено);
    ПараметрыОтчета.Вставить("МакетОформления"                  , "ОформлениеОтчётовЗелёный");
    ПараметрыОтчета.Вставить("СхемаКомпоновкиДанных"            , НоваяОСВ.ПолучитьМакет("СхемаКомпоновкиДанных"));
    ПараметрыОтчета.Вставить("ИдентификаторОтчета"              , "ОборотноСальдоваяВедомость");
    ПараметрыОтчета.Вставить("НастройкиКомпоновкиДанных"        , НоваяОСВ.КомпоновщикНастроек.ПолучитьНастройки());
    ПараметрыОтчета.Вставить("НаборПоказателей"                 , Отчеты["ОборотноСальдоваяВедомость"].ПолучитьНаборПоказателей());
    ПараметрыОтчета.Вставить("ОтветственноеЛицо"                , Перечисления.ОтветственныеЛицаОрганизаций.ОтветственныйЗаБухгалтерскиеРегистры);
    ПараметрыОтчета.Вставить("ВыводитьЕдиницуИзмерения"         , ЛОЖЬ);
    
    АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
    БухгалтерскиеОтчетыВызовСервера.СформироватьОтчет(ПараметрыОтчета, АдресХранилища);
    
    РезультатВыполнения = ПолучитьИзВременногоХранилища(АдресХранилища);
    Результат = РезультатВыполнения.Результат;    
    Результат.Записать("C:\ОСВ.pdf", ТипФайлаТабличногоДокумента.PDF);
    
КонецПроцедуры