Имя: Пароль:
1C
1С v8
Поле объекта не обнаружено (ДанныеДляПечати)
0 Alex_3189
 
06.04.15
17:23
Подскажите пожалуйста, в чем может быть ошибка
{ОбщаяФорма.ПечатьДокументов.Форма(34)}: Поле объекта не обнаружено (ДанныеДляПечати)
    СформироватьПечатныеФормы(КоллекцияПечатныхФорм, Параметры.ИменаМакетов, Отказ, Параметры.ДанныеДляПечати);
1 Alex_3189
 
06.04.15
17:25
Забыл код
Функция СведенияОВнешнейОбработке() Экспорт
        ПараметрыРегистрации = Новый Структура;
        ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
        ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
        ПараметрыРегистрации.Вставить("Наименование", "ПФ_MXL_ПечатнаяФормаАктаСверки");
        ПараметрыРегистрации.Вставить("Версия", "1.0");
        ПараметрыРегистрации.Вставить("Информация", "Сделано по новому стандарту подключения внешних обработок 8.2.");
        ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
        
        Команды = ПолучитьТаблицаКоманд();
        ДобавитьКоманду (Команды,"Печатная Форма Акта Сверки",
                                 "ПФ_MXL_ПечатнаяФормаАктаСверки",
                                 "ВызовСерверногоМетода",
                                 ЛОЖЬ,
                                 "ПечатьMXL");
         ПараметрыРегистрации.Вставить("Команды", Команды);
         Возврат ПараметрыРегистрации;
КонецФункции

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

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

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

Запрос.УстановитьПараметр("Контрагент",СсылкаНаДокумент.Контрагент);
Запрос.УстановитьПараметр("НачДата", СсылкаНаДокумент.НачалоПериода);
Запрос.УстановитьПараметр("КонДата", СсылкаНаДокумент.КонецПериода);
//БИГ_ДанныеДляПечати = МассивРезультатов[0].Выбрать();
Результат = Запрос.Выполнить();
Если Результат.Пустой() <> Истина Тогда    
    
    СальдоНачальное = Результат.Выгрузить()[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);
//

//ФормированиеПечатныхФорм.ЗаполнитьТабличныйДокументПечатнаяФормаАктаСверки(ТабДок, ОбъектыПечати);

//Если ПривилегированныйРежим() Тогда
//УстановитьПривилегированныйРежим(Ложь);
//КонецЕсли;
ТабДок.АвтоМасштаб = Истина;
Возврат ТабДок;
КонецФункции
2 Лефмихалыч
 
06.04.15
17:26
Добавить в структуру параметров значение ДанныеДляПечати.
Ну... или как-то заставить себя передать параметры...
3 Alex_3189
 
06.04.15
17:30
(2) Я правильно Вас понял?
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм,ОбъектыПечати, ПараметрыВывода,ДанныеДляПечати) Экспорт
4 Лефмихалыч
 
06.04.15
17:31
(3) нет, не правильно
5 Alex_3189
 
06.04.15
17:59
(4) можно тогда поподробнее?
6 D_E_S_131
 
06.04.15
18:29
Нужно встать отладчиком в строку с ошибкой и посмотреть на "Параметры" и какие там "ДанныеДляПечати" есть в нем. Если нет, то смотрим откуда вызвана эта процедура и почему при вызове не были переданы эти данные.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn