Имя: Пароль:
1C
1С v8
Помогите с переменными в ВПФ
0 zmeyako999
 
30.01.12
22:59
Сделал так:

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

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

   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();

   ТабДокумент   = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходныйКассовыйОрдер_КО2";
   Макет         = ПолучитьОбщийМакет("КО2");
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   
   ЕстьРасчетыСКонтрагентами=УправлениеДенежнымиСредствами.ЕстьРасчетыСКонтрагентами(ВидОперации);
   ЕстьРасчетыПоКредитам=УправлениеДенежнымиСредствами.ЕстьРасчетыПоКредитам(ВидОперации);

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

   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Руководители, КонецДня(Шапка.ДатаДокумента),);
   Руководитель = Руководители.Руководитель;
   РуководительДолжность = Руководители.РуководительДолжность;
   Бухгалтер    = Руководители.ГлавныйБухгалтер;
   Кассир       = Руководители.Кассир;

   ОбластьМакета.Параметры.ФИОРуководителя       = Руководитель;
   ОбластьМакета.Параметры.ДолжностьРуководителя = РуководительДолжность;

   ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
   ОбластьМакета.Параметры.ФИОКассира            = Кассир;
   
   ТекстОснование=Шапка.Основание;
   
   Если ТекстОснование="" И ЗначениеЗаполнено(РасчетныйДокумент) Тогда
       
       ТекстОснование=Лев(Строка(РасчетныйДокумент),Найти(Строка(РасчетныйДокумент),Строка(РасчетныйДокумент.Дата))-1)+Формат(РасчетныйДокумент.Дата,"ДФ=dd.MM.yyyy");
       
   КонецЕсли;

   ОбластьМакета.Параметры.Основание             = ТекстОснование;
   ОбластьМакета.Параметры.Приложение            = Шапка.Приложение;
   
   ОбластьМакета.Параметры.ФИОПолучателя         = Шапка.Выдать;
   ОбластьМакета.Параметры.РеквизитыДокументаУдостоверяющегоЛичность = Шапка.ПоДокументу;

   ТабДокумент.Вывести(ОбластьМакета);

   Возврат ТабДокумент;
КонецФункции // ПечатьРКО()  
Функция РубКопПрописью(Сумма)
   
   СуммаРубКоп = ЧислоПрописью(Сумма, , "руб.,руб.,руб.,м,коп.,коп.,коп.,ж");
   Возврат СуммаРубКоп;
   
КонецФункции

Функция ОпределитьКодыСчетСубсчет()
   
   КодыСчетов=Новый Структура("Дебет,Кредит");
   
   Возврат КодыСчетов;
   
КонецФункции // ОпределитьКодыСчетСубсчет()




Но при этом руается вот так:
{ВнешняяОбработка.РкоСпаспортнымиДанными.МодульОбъекта(11,17)}: Переменная не определена (СсылкаНаОбъект)
       ВидОперации = <<?>>СсылкаНаОбъект.ВидОперации;          (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.РкоСпаспортнымиДанными.МодульОбъекта(13,23)}: Переменная не определена (СсылкаНаОбъект)
       РасчетныйДокумент = <<?>>СсылкаНаОбъект.РасчетныйДокумент (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.РкоСпаспортнымиДанными.МодульОбъекта(60,51)}: Переменная не определена (Касса)
   ОбластьМакета.Параметры.СуммаПрописью     = ?(НЕ <<?>>Касса.ВалютаДенежныхСредств = мВалютаРегламентированногоУчета,  (Проверка: Толстый клиент (обычное приложение))
1 Террз
 
30.01.12
23:03
может быть все-таки не СсылкаНаОбъект, а ЭтотОбъект???
что указали как в обработке как ссылку на документ? а то в параметрах запроса фигурирует ЭтотОбъект

Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
2 zmeyako999
 
30.01.12
23:11
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);

Исправил - да тупнул, но это с переменными ничего не решило
3 zmeyako999
 
30.01.12
23:12
Сделал  Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент",СсылкаНаОбъект
4 zmeyako999
 
30.01.12
23:27
ВидОперации - есть строка, а как тогда переменную то составить
5 zmeyako999
 
31.01.12
00:09
Получилось! Имя Реквизита указал как СсылкаНаДокумент а не СсылкаНаОбъект