Имя: Пароль:
1C
1С v8
Помогите новичку разобраться с ВПФ !!!
🠗 (Волшебник 03.04.2015 10:47)
, ,
0 Alex_3189
 
03.04.15
10:05
Создал внешний отчет, он работает нормально. теперь пытаюсь сделать впф из этого отчета.
Постоянно выскакивает ошибка:
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(170)}: В обработчике печати не был сформирован табличный документ для: 1
            ВызватьИсключение(ТекстСообщенияОбОшибке);
Поиск в интернете результатов не дал.

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
     ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    Если
        УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПечатнаяФормаАктаСверки") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
                     "ПечатнаяФормаАктаСверки", "ПечатнаяФормаАктаСверки",
                     СформироватьПечатнуюФорму("ПечатнаяФормаАктаСверки", МассивОбъектов, ОбъектыПечати));
                 КонецЕсли;
    ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
    
КонецПроцедуры

Функция СформироватьПечатнуюФорму(Тип, МассивОбъектов, ОбъектыПечати)
    УстановитьПривилегированныйРежим(Истина);
    
    //ДанныеДокумента = ВыборкаДанныхДокумента(МассивОбъектов);
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("ПФ_MXL_Макет");
СведенияОбОрганизации = СсылкаНаОбъект.Документ.СверкаВзаиморасчетов;    
    Попытка    
    Запрос = Новый Запрос(

"ВЫБРАТЬ
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаОборот,
|    РасчетыСКлиентамиОстаткиИОбороты.Валюта
|ИЗ
|    РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(&НачДата, &КонДата, , , АналитикаУчетаПоПартнерам.Контрагент = &Контрагент) КАК РасчетыСКлиентамиОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаОборот,
|    РасчетыСКлиентамиОстаткиИОбороты.Валюта");

Запрос.УстановитьПараметр("Контрагент",СсылкаНаОбъект.Контрагент);
Запрос.УстановитьПараметр("НачДата", СсылкаНаОбъект.НачалоПериода);
Запрос.УстановитьПараметр("КонДата", СсылкаНаОбъект.КонецПериода);

Результат = Запрос.Выполнить();
Если Результат.Пустой() <> Истина Тогда    
    
    СальдоНачальное = Результат.Выгрузить()[0].СуммаНачальныйОстаток;
    СальдоКонечное  = Результат.Выгрузить()[0].СуммаКонечныйОстаток;
    Валюта  = Результат.Выгрузить()[0].Валюта;

КонецЕсли;

Запрос1 = Новый Запрос(
"ВЫБРАТЬ
|    ОрганизацииКонтактнаяИнформация.Ссылка,
|    ОрганизацииКонтактнаяИнформация.Тип,
|    ОрганизацииКонтактнаяИнформация.Вид,
|    ОрганизацииКонтактнаяИнформация.Представление
|ИЗ
|    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
|ГДЕ
|    ОрганизацииКонтактнаяИнформация.Ссылка.Ссылка = &Ссылка
|    И ОрганизацииКонтактнаяИнформация.Вид.Наименование = ""Почтовый адрес"""  );

Запрос1.УстановитьПараметр("Ссылка",СсылкаНаОбъект.Организация);

Результат = Запрос1.Выполнить();

Если Результат.Пустой() <> Истина Тогда    
        ПочтовыйАдрес = Результат.Выгрузить()[0].Представление;
    КонецЕсли;
    
ЗапросТелефон = Новый Запрос(    
    "ВЫБРАТЬ
|    ОрганизацииКонтактнаяИнформация.Ссылка,
|    ОрганизацииКонтактнаяИнформация.Тип,
|    ОрганизацииКонтактнаяИнформация.Вид,
|    ОрганизацииКонтактнаяИнформация.Представление
|ИЗ
|    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
|ГДЕ
|    ОрганизацииКонтактнаяИнформация.Ссылка.Ссылка = &Ссылка
|    И ОрганизацииКонтактнаяИнформация.Вид.Наименование = ""Телефон"""   );
ЗапросТелефон.УстановитьПараметр("Ссылка",СсылкаНаОбъект.Организация);

Результат = ЗапросТелефон.Выполнить();

Если Результат.Пустой() <> Истина Тогда    
        Телефон = Результат.Выгрузить()[0].Представление;
    КонецЕсли;    
    
//ТабДок = Новый ТабличныйДокумент;
  //   Макет = ПолучитьМакет("Макет");

          ОбластьОтчета = Макет.ПолучитьОбласть("Шапка");

    //получение области "Строка"
  
    ОбластьОтчета.Параметры.НаименованиеОрганизации = СсылкаНаОбъект.Контрагент;
    ОбластьОтчета.Параметры.НаименованиеКонтрагента = СсылкаНаОбъект.Организация;
    ОбластьОтчета.Параметры.ИННКонтрагента = СсылкаНаОбъект.Организация.ИНН;
    ОбластьОтчета.Параметры.ПочтовыйАдресКонтрагента = ПочтовыйАдрес;
    ОбластьОтчета.Параметры.КонтактныйТелефон = Телефон ;
    ОбластьОтчета.Параметры.ДатаНачалаПериодаСверки = СсылкаНаОбъект.НачалоПериода;
    ОбластьОтчета.Параметры.ДатаКонцаПериодаСверки = СсылкаНаОбъект.КонецПериода;
    ОбластьОтчета.Параметры.СальдоНачальноеПоТоварнымОперациям = СальдоНачальное;
    ОбластьОтчета.Параметры.СальдоКонечноеПоТоварнымОперациям = СальдоКонечное;
    ОбластьОтчета.Параметры.ВалютаВзаиморасчетов = Валюта;

    //установим параметры отображения табличного документа
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Истина;
    ТабДок.ОтображатьСетку = Ложь;
//ТабДок.Вывести(ОбластьОтчета);
    //покажем табличный документ на экране
    //ТабДок.Показать();

        ТабДок.Вывести(ОбластьОтчета);    
    //Возврат ТабДок;
    //Возврат 1;

    N=0;
    
    Запрос = Новый Запрос(
      
"ВЫБРАТЬ
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Документы,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Дата КАК ДатаДокумента,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Номер КАК НомерДокумента,
|    СчетФактураВыданный.Дата КАК ДатаСчетФактуры,
|    СчетФактураВыданный.Номер КАК НомерСчетФактуры,
|    РасчетыСКлиентамиОстаткиИОбороты.КОплатеПриход КАК Начислено,
|    РасчетыСКлиентамиОстаткиИОбороты.КОплатеРасход КАК Оплачено,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Комментарий КАК Примечание
|ИЗ
|    РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
|            ,
|            ,
|            Регистратор,
|            ,
|            АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
|                И (ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата)) КАК РасчетыСКлиентамиОстаткиИОбороты
|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный
|        ПО РасчетыСКлиентамиОстаткиИОбороты.Регистратор = СчетФактураВыданный.ДокументОснование");

Запрос.УстановитьПараметр("Контрагент",СсылкаНаОбъект.Контрагент);
Запрос.УстановитьПараметр("НачДата", СсылкаНаОбъект.НачалоПериода);
Запрос.УстановитьПараметр("КонДата", СсылкаНаОбъект.КонецПериода);


ВыборкаКонтрагент = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Если Запрос.Выполнить().Пустой() Тогда
        ОбластьОтчета = Макет.ПолучитьОбласть("НетВзаиморасчетов");
        ОбластьОтчета.Параметры.Начало = СсылкаНаОбъект.НачалоПериода;
        ОбластьОтчета.Параметры.конец = СсылкаНаОбъект.КонецПериода;
        ОбластьОтчета.Параметры.НаименованиеОрганизации = СсылкаНаОбъект.Контрагент;
        ТабДок.Вывести(ОбластьОтчета);
        
        //Возврат ТабДок;

    КонецЕсли;
    
ОбластьОтчета1 = Макет.ПолучитьОбласть("ШапкаТаблицы");
                        ТабДок.Вывести(ОбластьОтчета1);

    Пока ВыборкаКонтрагент.Следующий() Цикл
                ОбластьОтчета = Макет.ПолучитьОбласть("СтрокаТаблицы");
        ОбластьОтчета.Параметры.Документы = ВыборкаКонтрагент.Документы;
        ОбластьОтчета.Параметры.ДатаДокумента = ВыборкаКонтрагент.ДатаДокумента;
        ОбластьОтчета.Параметры.НомерДокумента = ВыборкаКонтрагент.НомерДокумента;
        ОбластьОтчета.Параметры.ДатаСчетаФактуры = ВыборкаКонтрагент.ДатаСчетФактуры;
        ОбластьОтчета.Параметры.НомерСчетаФактуры = ВыборкаКонтрагент.НомерСчетФактуры;
        ОбластьОтчета.Параметры.Начислено = ВыборкаКонтрагент.Начислено;
       ОбластьОтчета.Параметры.Оплачено = ВыборкаКонтрагент.Оплачено;
        ОбластьОтчета.Параметры.Примечание = ВыборкаКонтрагент.Примечание;
        ОбластьОтчета.Параметры.Счетчик = N+1;
        N=N+1;
        ОбластьОтчета.Параметры.Заполнить(ВыборкаКонтрагент);
            
    ТабДок.Вывести(ОбластьОтчета);
        //    Возврат ТабДок;
    КонецЦикла;
    
    ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="рубль,рубля,рублей,м,копейка,копейки,копеек,м,2";
ПрописьЧисла = ЧислоПрописью(СальдоКонечное, ФормСтрока, ПарПредмета);

ОбластьОтчета2 = Макет.ПолучитьОбласть("СтрокаЗадолжность");
  ОбластьОтчета2.Параметры.ДатаКонцаПериодаСверки = СсылкаНаОбъект.КонецПериода;
  ОбластьОтчета2.Параметры.НаименованиеКонтрагента = СсылкаНаОбъект.Организация;
  ОбластьОтчета2.Параметры.СальдоКонечноеПоТоварнымОперациям = СальдоКонечное;
  ОбластьОтчета2.Параметры.ВалютаВзаиморасчетов = Валюта;
ОбластьОтчета2.Параметры.ВалютаПрописью = ПрописьЧисла;
  ТабДок.Вывести(ОбластьОтчета2);
    
  ОбластьОтчета3 = Макет.ПолучитьОбласть("Подвал");
  ОбластьОтчета3.Параметры.НаименованиеКонтрагента = СсылкаНаОбъект.Организация;
  ОбластьОтчета3.Параметры.ТекущаяДата = ТекущаяДата();
ТабДок.Вывести(ОбластьОтчета3);
//Возврат ТабДок;
Исключение
        //если ошибка
        Сообщить(ОписаниеОшибки());
        //MSWord.Application.Quit();
        КонецПопытки;
      КонецФункции
1 icipher
 
03.04.15
10:08
функция должна возвращать табличный документ
2 Gbpltw
 
03.04.15
10:10
ааа,  ВПФ создавали в интернете, если поиск в интернете ничего не дал?
3 Alex_3189
 
03.04.15
10:18
ВПФ создавал в 1С:ERP Управление предприятием 2.0 (2.0.4.9)
   icipher это Возврат ТабДок; в конце?
4 vicof
 
03.04.15
10:21
Механизм внешних печатных форм в БСП и в конфах на неуправлямых формах несколько отличается.
5 Serg_1960
 
03.04.15
10:24
(0) Вы ухитрились закомментировали все "Возврат ТабДок". Хотя бы перед строкой "Конец функции" сделайте возврат "ТабДок".
6 Wobland
 
03.04.15
10:25
экая зачётная попытка.. больше так не делай
7 Wobland
 
03.04.15
10:25
+(6) так и тянет сказать Попытка //ну пожалуйста
8 thezos
 
03.04.15
10:26
(0) Неплохая попытка!) Пятнично)
9 bolder
 
03.04.15
10:26
(5) Так и создание табдок тоже закомментировано)
10 13_Mult
 
03.04.15
10:28
Ну да, Попытка не хилая )
11 Alex_3189
 
03.04.15
10:28
(5) раскоментировал ошибка та же самая
12 thezos
 
03.04.15
10:29
(11) Эх, не с того Вы начали... учите мат часть
13 Alex_3189
 
03.04.15
10:30
(10) (8) (7) Что вы имеете ввиду
14 13_Mult
 
03.04.15
10:30
(13) Попытку
15 Wobland
 
03.04.15
10:31
(13) мы имеем в виду хоть какое-нибудь образование программиста
16 Alex_3189
 
03.04.15
10:37
лучше сказали где ошибки, а какая из меня "классный" программист я  сам понимаю
17 Wobland
 
03.04.15
10:42
(16) мне лениво


Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ВПФ_MXL_ПеремещенияИзЗаказа") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "ВПФ_MXL_ПеремещенияИзЗаказа",
            "Накладные на перемещение",
            СформироватьТабличныйДокумент(МассивОбъектов, ОбъектыПечати),
            ,
            "ВПФ_MXL_ПеремещенияИзЗаказа");
    КонецЕсли;
КонецФункции

Функция СформироватьТабличныйДокумент(МассивОбъектов, ОбъектыПечати)

    ТабДокумент=Новый ТабличныйДокумент;
...
    Возврат ТабДокумент;
КонецФункции

дальше сам
18 Alex_3189
 
03.04.15
10:46
(17) Спасибо, щас попробую
19 Alex_3189
 
03.04.15
12:18
опять ошибка:
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(170)}: В обработчике печати не был сформирован табличный документ для: ПечатнаяФормаАктаСверки
            ВызватьИсключение(ТекстСообщенияОбОшибке);
Что я делая не так?
Функция СведенияОВнешнейОбработке() Экспорт
        ПараметрыРегистрации = Новый Структура;
        ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
        ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
        ПараметрыРегистрации.Вставить("Наименование", "ПечатнаяФормаАктаСверки");
        ПараметрыРегистрации.Вставить("Версия", "1.0");
        ПараметрыРегистрации.Вставить("Информация", "Сделано по новому стандарту подключения внешних обработок 8.2.");
        ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
        
        Команды = ПолучитьТаблицаКоманд();
        ДобавитьКоманду (Команды,"Печатная Форма Акта Сверки",
                                 "ПечатнаяФормаАктаСверки",
                                 "ВызовСерверногоМетода",
                                 ЛОЖЬ,
                                 "ПечатьMXL");
         ПараметрыРегистрации.Вставить("Команды", Команды);
         Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьНазначениеОбработки()
     Массив = Новый массив;
     Массив.Добавить("Документ.СверкаВзаиморасчетов");
     Возврат Массив;
     КонецФункции
    
Функция ПолучитьТаблицаКоманд()
        Команды = Новый ТаблицаЗначений;
        Команды.Колонки.Добавить("Представление",Новый ОписаниеТипов ("Строка"));
        Команды.Колонки.Добавить("Идентификатор",Новый ОписаниеТипов ("Строка"));
        Команды.Колонки.Добавить("Использование",Новый ОписаниеТипов ("Строка"));
        Команды.Колонки.Добавить("ПоказыватьОповещение",Новый ОписаниеТипов ("Булево"));
        Команды.Колонки.Добавить("Модификатор",Новый ОписаниеТипов ("Строка"));
        Возврат Команды
     КонецФункции
    
    
Процедура ДобавитьКоманду (ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = ЛОЖЬ, Модификатор = "")
         НоваяКоманда = ТаблицаКоманд.Добавить();
         НоваяКоманда.Представление = Представление;
         НоваяКоманда.Идентификатор = Идентификатор;
         НоваяКоманда.Использование = Использование;
         НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
         НоваяКоманда.Модификатор = Модификатор;
     КонецПроцедуры
    
Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ВПФ_MXL_ПечатнаяФормаАктаСверки") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "ВПФ_MXL_ПечатнаяФормаАктаСверки",
            "Печатная Форма Акта Сверки",
            СформироватьТабличныйДокумент(МассивОбъектов, ОбъектыПечати),
            ,
            "ВПФ_MXL_ПечатнаяФормаАктаСверки");
    КонецЕсли;
ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);    
КонецФункции

Функция СформироватьТабличныйДокумент(МассивОбъектов, ОбъектыПечати)

    ТабДок=Новый ТабличныйДокумент;
//
Макет = ПолучитьМакет("ПФ_MXL_ПечатнаяФормаАктаСверки");
            
    Запрос = Новый Запрос(
"ВЫБРАТЬ
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаОборот,
|    РасчетыСКлиентамиОстаткиИОбороты.Валюта
|ИЗ
|    РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(&НачДата, &КонДата, , , АналитикаУчетаПоПартнерам.Контрагент = &Контрагент) КАК РасчетыСКлиентамиОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток,
|    РасчетыСКлиентамиОстаткиИОбороты.СуммаОборот,
|    РасчетыСКлиентамиОстаткиИОбороты.Валюта");

Запрос.УстановитьПараметр("Контрагент",СсылкаНаОбъект.Контрагент);
Запрос.УстановитьПараметр("НачДата", СсылкаНаОбъект.НачалоПериода);
Запрос.УстановитьПараметр("КонДата", СсылкаНаОбъект.КонецПериода);

Результат = Запрос.Выполнить();
Если Результат.Пустой() <> Истина Тогда    
    
    СальдоНачальное = Результат.Выгрузить()[0].СуммаНачальныйОстаток;
    СальдоКонечное  = Результат.Выгрузить()[0].СуммаКонечныйОстаток;
    Валюта  = Результат.Выгрузить()[0].Валюта;

КонецЕсли;

Запрос1 = Новый Запрос(
"ВЫБРАТЬ
|    ОрганизацииКонтактнаяИнформация.Ссылка,
|    ОрганизацииКонтактнаяИнформация.Тип,
|    ОрганизацииКонтактнаяИнформация.Вид,
|    ОрганизацииКонтактнаяИнформация.Представление
|ИЗ
|    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
|ГДЕ
|    ОрганизацииКонтактнаяИнформация.Ссылка.Ссылка = &Ссылка
|    И ОрганизацииКонтактнаяИнформация.Вид.Наименование = ""Почтовый адрес"""  );

Запрос1.УстановитьПараметр("Ссылка",СсылкаНаОбъект.Организация);

Результат = Запрос1.Выполнить();

Если Результат.Пустой() <> Истина Тогда    
        ПочтовыйАдрес = Результат.Выгрузить()[0].Представление;
    КонецЕсли;
    
ЗапросТелефон = Новый Запрос(    
    "ВЫБРАТЬ
|    ОрганизацииКонтактнаяИнформация.Ссылка,
|    ОрганизацииКонтактнаяИнформация.Тип,
|    ОрганизацииКонтактнаяИнформация.Вид,
|    ОрганизацииКонтактнаяИнформация.Представление
|ИЗ
|    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
|ГДЕ
|    ОрганизацииКонтактнаяИнформация.Ссылка.Ссылка = &Ссылка
|    И ОрганизацииКонтактнаяИнформация.Вид.Наименование = ""Телефон"""   );
ЗапросТелефон.УстановитьПараметр("Ссылка",СсылкаНаОбъект.Организация);

Результат = ЗапросТелефон.Выполнить();

Если Результат.Пустой() <> Истина Тогда    
        Телефон = Результат.Выгрузить()[0].Представление;
    КонецЕсли;    
    
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");

          ОбластьОтчета = Макет.ПолучитьОбласть("Шапка");

    //получение области "Строка"
  
    ОбластьОтчета.Параметры.НаименованиеОрганизации = СсылкаНаОбъект.Контрагент;
    ОбластьОтчета.Параметры.НаименованиеКонтрагента = СсылкаНаОбъект.Организация;
    ОбластьОтчета.Параметры.ИННКонтрагента = СсылкаНаОбъект.Организация.ИНН;
    ОбластьОтчета.Параметры.ПочтовыйАдресКонтрагента = ПочтовыйАдрес;
    ОбластьОтчета.Параметры.КонтактныйТелефон = Телефон ;
    ОбластьОтчета.Параметры.ДатаНачалаПериодаСверки = СсылкаНаОбъект.НачалоПериода;
    ОбластьОтчета.Параметры.ДатаКонцаПериодаСверки = СсылкаНаОбъект.КонецПериода;
    ОбластьОтчета.Параметры.СальдоНачальноеПоТоварнымОперациям = СальдоНачальное;
    ОбластьОтчета.Параметры.СальдоКонечноеПоТоварнымОперациям = СальдоКонечное;
    ОбластьОтчета.Параметры.ВалютаВзаиморасчетов = Валюта;

    //установим параметры отображения табличного документа
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Истина;
    ТабДок.ОтображатьСетку = Ложь;

    ТабДок.Вывести(ОбластьОтчета);    
    Возврат ТабДок;
    //Возврат 1;

    N=0;
    
    Запрос = Новый Запрос(
      
"ВЫБРАТЬ
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Документы,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Дата КАК ДатаДокумента,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Номер КАК НомерДокумента,
|    СчетФактураВыданный.Дата КАК ДатаСчетФактуры,
|    СчетФактураВыданный.Номер КАК НомерСчетФактуры,
|    РасчетыСКлиентамиОстаткиИОбороты.КОплатеПриход КАК Начислено,
|    РасчетыСКлиентамиОстаткиИОбороты.КОплатеРасход КАК Оплачено,
|    РасчетыСКлиентамиОстаткиИОбороты.Регистратор.Комментарий КАК Примечание
|ИЗ
|    РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
|            ,
|            ,
|            Регистратор,
|            ,
|            АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
|                И (ЗаказКлиента.Дата МЕЖДУ &НачДата И &КонДата)) КАК РасчетыСКлиентамиОстаткиИОбороты
|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный
|        ПО РасчетыСКлиентамиОстаткиИОбороты.Регистратор = СчетФактураВыданный.ДокументОснование");

Запрос.УстановитьПараметр("Контрагент",СсылкаНаОбъект.Контрагент);
Запрос.УстановитьПараметр("НачДата", СсылкаНаОбъект.НачалоПериода);
Запрос.УстановитьПараметр("КонДата", СсылкаНаОбъект.КонецПериода);


ВыборкаКонтрагент = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Если Запрос.Выполнить().Пустой() Тогда
        ОбластьОтчета = Макет.ПолучитьОбласть("НетВзаиморасчетов");
        ОбластьОтчета.Параметры.Начало = СсылкаНаОбъект.НачалоПериода;
        ОбластьОтчета.Параметры.конец = СсылкаНаОбъект.КонецПериода;
        ОбластьОтчета.Параметры.НаименованиеОрганизации = СсылкаНаОбъект.Контрагент;
        ТабДок.Вывести(ОбластьОтчета);
        
        Возврат ТабДок;

    КонецЕсли;
    
ОбластьОтчета1 = Макет.ПолучитьОбласть("ШапкаТаблицы");
                        ТабДок.Вывести(ОбластьОтчета1);

    Пока ВыборкаКонтрагент.Следующий() Цикл
                ОбластьОтчета = Макет.ПолучитьОбласть("СтрокаТаблицы");
        ОбластьОтчета.Параметры.Документы = ВыборкаКонтрагент.Документы;
        ОбластьОтчета.Параметры.ДатаДокумента = ВыборкаКонтрагент.ДатаДокумента;
        ОбластьОтчета.Параметры.НомерДокумента = ВыборкаКонтрагент.НомерДокумента;
        ОбластьОтчета.Параметры.ДатаСчетаФактуры = ВыборкаКонтрагент.ДатаСчетФактуры;
        ОбластьОтчета.Параметры.НомерСчетаФактуры = ВыборкаКонтрагент.НомерСчетФактуры;
        ОбластьОтчета.Параметры.Начислено = ВыборкаКонтрагент.Начислено;
       ОбластьОтчета.Параметры.Оплачено = ВыборкаКонтрагент.Оплачено;
        ОбластьОтчета.Параметры.Примечание = ВыборкаКонтрагент.Примечание;
        ОбластьОтчета.Параметры.Счетчик = N+1;
        N=N+1;
        ОбластьОтчета.Параметры.Заполнить(ВыборкаКонтрагент);
            
    ТабДок.Вывести(ОбластьОтчета);
            Возврат ТабДок;
    КонецЦикла;
    
    ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="рубль,рубля,рублей,м,копейка,копейки,копеек,м,2";
ПрописьЧисла = ЧислоПрописью(СальдоКонечное, ФормСтрока, ПарПредмета);

ОбластьОтчета2 = Макет.ПолучитьОбласть("СтрокаЗадолжность");
  ОбластьОтчета2.Параметры.ДатаКонцаПериодаСверки = СсылкаНаОбъект.КонецПериода;
  ОбластьОтчета2.Параметры.НаименованиеКонтрагента = СсылкаНаОбъект.Организация;
  ОбластьОтчета2.Параметры.СальдоКонечноеПоТоварнымОперациям = СальдоКонечное;
  ОбластьОтчета2.Параметры.ВалютаВзаиморасчетов = Валюта;
ОбластьОтчета2.Параметры.ВалютаПрописью = ПрописьЧисла;
  ТабДок.Вывести(ОбластьОтчета2);
    
  ОбластьОтчета3 = Макет.ПолучитьОбласть("Подвал");
  ОбластьОтчета3.Параметры.НаименованиеКонтрагента = СсылкаНаОбъект.Организация;
  ОбластьОтчета3.Параметры.ТекущаяДата = ТекущаяДата();
ТабДок.Вывести(ОбластьОтчета3);
//
    Возврат ТабДок;
КонецФункции