Имя: Пароль:
1C
1С v8
Внешняя печатная форма ОС-1
0 Samir
 
13.05.13
11:36
Народ с утра уже мучаюсь, никто не подскажет где ошибка во внешней печатной форме?

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

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

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

       Если НЕ(ВыборкаПоОС.ГруппаОС = Перечисления.ГруппыОС.Здания ИЛИ
               ВыборкаПоОС.ГруппаОС = Перечисления.ГруппыОС.Сооружения) Тогда

           ТабДокумент   = Новый ТабличныйДокумент();
           ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПринятиеКУчетуОС_ОС1";

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

       Иначе

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

       КонецЕсли;

       Возврат ТабДокумент;

   Иначе // Объектов много - групповая печать.

       ОС1б_Страница1 = Новый ТабличныйДокумент();
       ОС1б_Страница2 = Новый ТабличныйДокумент();
       ОС1б_Страница3 = Новый ТабличныйДокумент();
       ОС1б_Страница4 = Новый ТабличныйДокумент();

       МакетОС1б      = ЭтотОбъект.ПолучитьМакет("ОС1б");
       
       Шапка1ОС1б     = МакетОС1б.ПолучитьОбласть("Шапка1");
       Шапка2ОС1б     = МакетОС1б.ПолучитьОбласть("Шапка2");
       Строка2ОС1б    = МакетОС1б.ПолучитьОбласть("Строка2");
       Строка2ПОС1б   = МакетОС1б.ПолучитьОбласть("Строка2П");
       Подвал2        = МакетОС1б.ПолучитьОбласть("Подвал2");
       Шапка3ОС1б     = МакетОС1б.ПолучитьОбласть("Шапка3");
       Строка3ОС1б    = МакетОС1б.ПолучитьОбласть("Строка3");
       Строка3ПОС1б   = МакетОС1б.ПолучитьОбласть("Строка3П");
       Подвал3        = МакетОС1б.ПолучитьОбласть("Подвал3");
       Шапка4ОС1б     = МакетОС1б.ПолучитьОбласть("Шапка4");

       Шапка1ОС1б.Параметры.Заполнить(ВыборкаОС);
       Шапка1ОС1б.Параметры.Заполнить(ВыборкаПоОС);
       ЗаполнитьДанныеОрганизацииПолучателя(ВыборкаОС, Шапка1ОС1б);
       ОС1б_Страница1.Вывести(Шапка1ОС1б);

       Шапка2ОС1б.Параметры.Заполнить(ВыборкаОС);
       Шапка2ОС1б.Параметры.Заполнить(ВыборкаПоОС);
       ОС1б_Страница2.Вывести(Шапка2ОС1б);

       Шапка3ОС1б.Параметры.Заполнить(ВыборкаОС);
       Шапка3ОС1б.Параметры.Заполнить(ВыборкаПоОС);
       ОС1б_Страница3.Вывести(Шапка3ОС1б);

       Шапка4ОС1б.Параметры.Заполнить(ВыборкаОС);
       Шапка4ОС1б.Параметры.Заполнить(ВыборкаПоОС);
       ОС1б_Страница4.Вывести(Шапка4ОС1б);

       НомПП            = 0;
       ИтогНачСтоимость = 0;
       
       Пока ВыборкаПоОС.Следующий() Цикл

           ИтогНачСтоимость = ИтогНачСтоимость + ВыборкаПоОС.НачСтоимость;
           
           НомПП = НомПП + 1;
           Строка2ОС1б.Параметры.Нс = НомПП;
           
           Строка2ОС1б.Параметры.Заполнить(ВыборкаОС);
           Строка2ОС1б.Параметры.Заполнить(ВыборкаПоОС);
           Если ПустаяСтрока(ВыборкаПоОС.НаименованиеОС) Тогда
               Строка2ОС1б.Параметры.НаименованиеОС = СокрЛП(ВыборкаПоОС.ОсновноеСредство);
           КонецЕсли;
           ОС1б_Страница2.Вывести(Строка2ОС1б);

           Строка3ОС1б.Параметры.Заполнить(ВыборкаОС);
           Строка3ОС1б.Параметры.Заполнить(ВыборкаПоОС);
           ОС1б_Страница3.Вывести(Строка3ОС1б);

       КонецЦикла;

       Строка2ПОС1б.Параметры.Заполнить(ВыборкаОС);
       Строка2ПОС1б.Параметры.Заполнить(ВыборкаПоОС);
       ОС1б_Страница2.Вывести(Строка2ПОС1б);

       Подвал2.Параметры.Заполнить(ВыборкаОС);
       Подвал2.Параметры.Заполнить(ВыборкаПоОС);
       ОС1б_Страница2.Вывести(Подвал2);

       Строка3ПОС1б.Параметры.Заполнить(ВыборкаОС);
       Строка3ПОС1б.Параметры.Заполнить(ВыборкаПоОС);
       ОС1б_Страница3.Вывести(Строка3ПОС1б);

       Подвал3.Параметры.Заполнить(ВыборкаОС);
       Подвал3.Параметры.Заполнить(ВыборкаПоОС);
       Подвал3.Параметры.ИтогНачСтоимость = ИтогНачСтоимость;
       ОС1б_Страница3.Вывести(Подвал3);

       УниверсальныеМеханизмы.НапечататьДокумент(ОС1б_Страница4, , , "Форма ОС-1б. Страница 4");
       УниверсальныеМеханизмы.НапечататьДокумент(ОС1б_Страница3, , , "Форма ОС-1б. Страница 3");
       УниверсальныеМеханизмы.НапечататьДокумент(ОС1б_Страница2, , , "Форма ОС-1б. Страница 2");
       УниверсальныеМеханизмы.НапечататьДокумент(ОС1б_Страница1, , , "Форма ОС-1б. Страница 1");

       Возврат Неопределено;

   КонецЕсли;

КонецФункции;
1 Samir
 
13.05.13
11:36
Почему он возвращает пустую форму? не заполненную...
2 mikecool
 
13.05.13
11:36
а ошибка то в чем?
3 mikecool
 
13.05.13
11:37
(1) возвращать всегда надо ТабДокумент
4 Cube
 
13.05.13
11:38
(0) Что, отладчик украли?