Имя: Пароль:
1C
1С v8
v8: Внешняя печатная форма акт сверки
,
0 Paul1979
 
22.03.13
10:21
Помогите пожалуйста!
Пытаюсь создать внешнюю печатную форму Акта сверки.
Создал вроде все работает,НО если не указывать во вкладке "Дополнительно" /Представитель организации.
Если указываешь, то выдает ошибку:
-------------------------------------------------------
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(4, 5)}: Таблица не найдена "РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних"
<<?>>РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(  
-------------------------------------------------------
 В стандартной форме Акта сверки все работает, код проверил, похож :((

Помогите разобраться плиз:))

Вот текст модуля объекта:


Функция Печать() Экспорт
ТабДок = Новый ТабличныйДокумент;
   ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки";
   Макет  = ПолучитьМакет("АктСверки");

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

   ТекстЗаголовка = "взаимных расчетов за период с " + Формат(ДатаНачалаПериода, "ДФ=dd.MM.yyyy") + " по " + Формат(СсылкаНаОбъект.ДатаОкончания, "ДФ=dd.MM.yyyy") + Символы.ПС
                   + "между " + НазваниеОрганизации + Символы.ПС + "и " + НаименованиеКонтрагента;
   Если ЗначениеЗаполнено(СсылкаНаОбъект.ДоговорКонтрагента) Тогда
       ТекстЗаголовка = ТекстЗаголовка + Символы.ПС + "по договору " + СокрЛП(СсылкаНаОбъект.ДоговорКонтрагента.Наименование);
   КонецЕсли;
   ОбластьЗаголовок.Параметры.ТекстЗаголовка = ТекстЗаголовка;
   
   //ДанныеПредставителяОрганизации = ДанныеФизЛица(Организация, ПредставительОрганизации, ДатаОкончания);
   //ФИОПредставителя = ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Фамилия),"",ДанныеПредставителяОрганизации.Фамилия
   //                + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Имя),""," "+ДанныеПредставителяОрганизации.Имя)
   //                + ?(НЕ ЗначениеЗаполнено(ДанныеПредставителяОрганизации.Отчество),""," "+ДанныеПредставителяОрганизации.Отчество));
   ФИОПредставителя = "" + СсылкаНаОбъект.ПредставительОрганизации;    
   СтрЗаголовокТаблица = "Мы, нижеподписавшиеся, "
               + ?(ДолжностьПредставителяОрганизации<>"",ДолжностьПредставителяОрганизации,"_______________________")+" "
               + НазваниеОрганизации
               + " " + ?(ФИОПредставителя<>"",ФИОПредставителя,"__________________________________________") + ", с одной стороны, "
               + "и " + ?(ДолжностьПредставителяКонтрагента<>"",ДолжностьПредставителяКонтрагента,"___________________________")
               + " " + НаименованиеКонтрагента + " "
               + ?(НЕ ЗначениеЗаполнено(СсылкаНаОбъект.ПредставительКонтрагента),"_____________________________________________",СсылкаНаОбъект.ПредставительКонтрагента) + ", с другой стороны, "
               + "составили настоящий акт сверки в том, что состояние взаимных расчетов по данным учета следующее:";
   
   ОбластьЗаголовок.Параметры.СтрЗаголовокТаблица = СтрЗаголовокТаблица;
   ОбластьЗаголовок.Параметры.ВалютаДокумента = СсылкаНаОбъект.ВалютаДокумента;
   
   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапкаТаблицы);
   
   ИтСуммаОборотДт      = 0;
   ИтСуммаОборотКт      = 0;
   ИтСуммаОборотДтКонтр = 0;
   ИтСуммаОборотКтКонтр = 0;
   
   НачОстДебет  = ?(СсылкаНаОбъект.ОстатокНаНачало > 0, СсылкаНаОбъект.ОстатокНаНачало, 0);
   НачОстКредит = ?(СсылкаНаОбъект.ОстатокНаНачало < 0, -СсылкаНаОбъект.ОстатокНаНачало, 0);
   
   ОстатокНаКонец = СсылкаНаОбъект.ОстатокНаНачало + СсылкаНаОбъект.ПоДаннымОрганизации.Итог("Дебет") -  СсылкаНаОбъект.ПоДаннымОрганизации.Итог("Кредит");
   
   КонОстДебет  = ?(ОстатокНаКонец > 0, ОстатокНаКонец, 0);
   КонОстКредит = ?(ОстатокНаКонец < 0, -ОстатокНаКонец, 0);
   
   ОстатокНаКонецК = -СсылкаНаОбъект.ОстатокНаНачало + СсылкаНаОбъект.ПоДаннымКонтрагента.Итог("Дебет") -  СсылкаНаОбъект.ПоДаннымКонтрагента.Итог("Кредит");
   
   КонОстДебетК  = ?(ОстатокНаКонецК > 0, ОстатокНаКонецК, 0);
   КонОстКредитК = ?(ОстатокНаКонецК < 0, -ОстатокНаКонецК, 0);
   
   ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокДт = НачОстДебет;
   ОбластьНачОстатки.Параметры.СуммаНачальныйОстатокКт = НачОстКредит;
   ТабДок.Вывести(ОбластьНачОстатки);
   
   ТабДок.НачатьАвтогруппировкуСтрок();
   
   МаксИндекс = Макс(СсылкаНаОбъект.ПоДаннымОрганизации.Количество(), СсылкаНаОбъект.ПоДаннымКонтрагента.Количество()) - 1;
   Для Инд = 0 По МаксИндекс Цикл
       Если Инд < СсылкаНаОбъект.ПоДаннымОрганизации.Количество() Тогда
           СтрокаОрганизации = СсылкаНаОбъект.ПоДаннымОрганизации[Инд];
           Регистратор =     СтрокаОрганизации.Представление;
           СуммаОборотДт = СтрокаОрганизации.Дебет;
           СуммаОборотКт = СтрокаОрганизации.Кредит;
           ОбластьОбороты.Параметры.СуммаОборотДт = СуммаОборотДт;
           ОбластьОбороты.Параметры.СуммаОборотКт = СуммаОборотКт;
           ИтСуммаОборотДт = ИтСуммаОборотДт + СуммаОборотДт;
           ИтСуммаОборотКт = ИтСуммаОборотКт + СуммаОборотКт;
           ОбластьОбороты.Параметры.РегистраторПредставление = СтрокаОрганизации.Представление;
           ОбластьОбороты.Параметры.Регистратор = СтрокаОрганизации.ДокументРегистратор;
           ОбластьОбороты.Параметры.ДатаДокумента = Формат(СтрокаОрганизации.Дата,"ЧЦ=21; ЧДЦ=2; ДФ=dd.MM.yy");
       Иначе
           ОбластьОбороты.Параметры.СуммаОборотДт = "";
           ОбластьОбороты.Параметры.СуммаОборотКт = "";
           ОбластьОбороты.Параметры.РегистраторПредставление = "";
           ОбластьОбороты.Параметры.Регистратор = "";
           ОбластьОбороты.Параметры.ДатаДокумента = "";
       КонецЕсли;
       Если Инд < СсылкаНаОбъект.ПоДаннымКонтрагента.Количество() Тогда
           СтрокаОрганизации = СсылкаНаОбъект.ПоДаннымКонтрагента[Инд];
           Регистратор =     СтрокаОрганизации.Представление;
           СуммаОборотДт = СтрокаОрганизации.Дебет;
           СуммаОборотКт = СтрокаОрганизации.Кредит;
           ОбластьОбороты.Параметры.СуммаОборотДтКонтр = СуммаОборотДт;
           ОбластьОбороты.Параметры.СуммаОборотКтКонтр = СуммаОборотКт;
           ИтСуммаОборотДтКонтр = ИтСуммаОборотДтКонтр + СуммаОборотДт;
           ИтСуммаОборотКтКонтр = ИтСуммаОборотКтКонтр + СуммаОборотКт;
           ОбластьОбороты.Параметры.РегистраторПредставлениеКонтр = СтрокаОрганизации.Представление;
           ОбластьОбороты.Параметры.ДатаДокументаКонтр = Формат(СтрокаОрганизации.Дата,"ЧЦ=21; ЧДЦ=2; ДФ=dd.MM.yy");
       Иначе
           ОбластьОбороты.Параметры.СуммаОборотДтКонтр = "";
           ОбластьОбороты.Параметры.СуммаОборотКтКонтр = "";
           ОбластьОбороты.Параметры.РегистраторПредставлениеКонтр = "";
           ОбластьОбороты.Параметры.ДатаДокументаКонтр = "";
       КонецЕсли;
       ТабДок.Вывести(ОбластьОбороты);
   КонецЦикла;
   
   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   
   ОбластьОборотыИтог.Параметры.СуммаОборотДт      = ИтСуммаОборотДт;
   ОбластьОборотыИтог.Параметры.СуммаОборотКт      = ИтСуммаОборотКт;
   Если СсылкаНаОбъект.СверкаСогласована тогда
       ОбластьОборотыИтог.Параметры.СуммаОборотДтКонтр = ИтСуммаОборотДтКонтр;
       ОбластьОборотыИтог.Параметры.СуммаОборотКтКонтр = ИтСуммаОборотКтКонтр;
   КонецЕсли;
   ТабДок.Вывести(ОбластьОборотыИтог);
   
   ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДт = КонОстДебет;
   ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКт = КонОстКредит;
   
   Если СсылкаНаОбъект.СверкаСогласована тогда
       ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокДтКонтр = КонОстДебетК;
       ОбластьКонОстатки.Параметры.СуммаКонечныйОстатокКтКонтр = КонОстКредитК;
   КонецЕсли;
   
   ТабДок.Вывести(ОбластьКонОстатки);
   
   // Результаты сверки
   
      Если СсылкаНаОбъект.ПоДаннымОрганизации.Количество() = 0 и СсылкаНаОбъект.ОстатокНаНачало = 0 Тогда
          РезультатыСверки = "<сверка не проведена>";
     ИначеЕсли НЕ ЗначениеЗаполнено(СсылкаНаОбъект.ДатаОкончания) Тогда
          РезультатыСверки = "<не указана дата сверки>";
      ИначеЕсли НЕ ЗначениеЗаполнено(СсылкаНаОбъект.Контрагент) Тогда
          РезультатыСверки = "<не указан контрагент>";
      Иначе
       РезультатыСверки = "на " + Формат(СсылкаНаОбъект.ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность ";
           
          Если ОстатокНаКонец > 0 Тогда
           РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " " + Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " " + строка(СсылкаНаОбъект.ВалютаДокумента);
   
          ИначеЕсли ОстатокНаКонец < 0 Тогда
           РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " " + Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " " + строка(СсылкаНаОбъект.ВалютаДокумента);
   
          Иначе
              РезультатыСверки = РезультатыСверки + "отсутствует.";
          КонецЕсли;
   КонецЕсли;
   ОбластьПодвал.Параметры.РезультатыСверки = РезультатыСверки;
   
   Если СсылкаНаОбъект.СверкаСогласована тогда
       ОбластьПодвал.Параметры.СсылкаНаОбъект.ПоДаннымКонтрагента = "По данным " + СокрЛП(НаименованиеКонтрагента);
       
          Если СсылкаНаОбъект.ПоДаннымКонтрагента.Количество() = 0 и СсылкаНаОбъект.ОстатокНаНачало = 0 Тогда
              РезультатыСверки = "<сверка не проведена>";
         ИначеЕсли НЕ ЗначениеЗаполнено(СсылкаНаОбъект.ДатаОкончания) Тогда
              РезультатыСверки = "<не указана дата сверки>";
          ИначеЕсли НЕ ЗначениеЗаполнено(СсылкаНаОбъект.Контрагент) Тогда
              РезультатыСверки = "<не указан контрагент>";
          Иначе
           РезультатыСверки = "на " + Формат(СсылкаНаОбъект.ДатаОкончания, "ДФ=dd.MM.yyyy") + " задолженность ";
               
              Если ОстатокНаКонецК < 0 Тогда
               РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НазваниеОрганизации) + " " + Формат(-ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " " + строка(СсылкаНаОбъект.ВалютаДокумента);
       
              ИначеЕсли ОстатокНаКонецК > 0 Тогда
               РезультатыСверки = РезультатыСверки + "в пользу " + СокрЛП(НаименованиеКонтрагента) + " " + Формат(ОстатокНаКонецК, "ЧЦ=21; ЧДЦ=2") + " " + строка(СсылкаНаОбъект.ВалютаДокумента);
       
              Иначе
                  РезультатыСверки = РезультатыСверки + "отсутствует.";
              КонецЕсли;
          КонецЕсли;
       
       ОбластьПодвал.Параметры.РезультатыСверкиК = РезультатыСверки;
       
       Если ОстатокНаКонец+ОстатокНаКонецК<>0 Тогда
            ИтогСверки = "В результате сверки выявлено расхождение информации о состоянии расчетов в размере "+Формат(?(ОстатокНаКонец+ОстатокНаКонецК>0,1,-1)*(ОстатокНаКонец+ОстатокНаКонецК), "ЧЦ=21; ЧДЦ=2") +" "+ Строка(СсылкаНаОбъект.ВалютаДокумента);
            ОбластьПодвал.Параметры.ИтогСверки = Символы.ПС+ ИтогСверки+Символы.ПС+" ";
       КонецЕсли;
   КонецЕсли;
   
   ОбластьПодвал.Параметры.НазваниеОрганизации = СокрЛП(НазваниеОрганизации);
   ОбластьПодвал.Параметры.НаименованиеКонтрагента = СокрЛП(НаименованиеКонтрагента);
   
   ОбластьПодвал.Параметры.Должность = "________________";
   ОбластьПодвал.Параметры.ДолжностьК ="________________";
   
   ОбластьПодвал.Параметры.ФИОПредставителя  = "("+ ФИОПредставителя +")";
   ОбластьПодвал.Параметры.ФИОПредставителяК = "("+?(НЕ ЗначениеЗаполнено(СсылкаНаОбъект.ПредставительКонтрагента),"_______________________",СсылкаНаОбъект.ПредставительКонтрагента)+")";
   
   ТабДок.Вывести(ОбластьПодвал);
   
   Возврат ТабДок;

КонецФункции



Как победить?????????? Help!
1 Wobland
 
22.03.13
10:22
куда таблицу дел?
2 Wobland
 
22.03.13
10:24
берёшь запрос, берёшь конструктор и скрещаваешь их до полного взаимопонимания
3 Paul1979
 
22.03.13
11:46
Спасибо за подсказку я сделал так:

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


:))))
4 Wobland
 
22.03.13
11:54
это вам даже не разные кодировки. с третьего раза только понял ;)
5 Paul1979
 
22.03.13
11:56
А не кто не сталкивался с тем, что стандартная даже форма "Акта сверки" почему то не сохраняться в *pdf.

Точнее вся форма выгружается, а таблица с цифрами пустая.
На принтер все отправляется нормально:(
6 Paul1979
 
10.04.13
12:21
ПОМОГИТЕ ЕЩЕ РАЗ!!!!!

в этой же форме вылезла другая ошибка.

Т.к. Аудиторы прикопались, что в акте сверки надо ставить галочку "СВЕРКА Согласована", форма перестала работать и выдаеш следующую ошибку



{ВнешняяОбработка.АктСверки7.МодульОбъекта(220)}: Поле объекта не обнаружено (СсылкаНаОбъект)
       ОбластьПодвал.Параметры.СсылкаНаОбъект.ПоДаннымКонтрагента = "По данным " + СокрЛП(СсылкаНаОбъект.НаименованиеКонтрагенга);


где косяк? подскажите плиззз:))
7 Славен
 
10.04.13
12:23
реквизит СсылкаНаОбъект добавь с типом твоего документа
8 zzerro
 
10.04.13
12:24
ОбластьПодвал.Параметры.СсылкаНаОбъект.ПоДаннымКонтрагента - это что такое?
9 Славен
 
10.04.13
12:24
ОбластьПодвал.Параметры.СсылкаНаОбъект.ПоДаннымКонтрагента - это что? у тебя есть в макете параметр ССылкаНаобъект.ПоДаннымКонтрагента
10 zzerro
 
10.04.13
12:25
надо наверно ОбластьПодвал.Параметры.ПоДаннымКонтрагента
11 Paul1979
 
10.04.13
12:37
Спасибо за подсказку:)
подправил вот так заработало:))  УРАА!!

     ОбластьПодвал.Параметры.ПоДаннымКонтрагента = "По данным " + СокрЛП(НаименованиеКонтрагента);