Имя: Пароль:
1C
1С v8
Не выводится табличный документ
0 1976vas
 
11.02.15
15:35
Добрый день!
В шапку по одной организации добавили надпись, при печати из другой организации эта надпись не нужна. Переделал уже десятки печатных форм, с этой какие-то проблемы. При печати без префикса все нормально, с префиксом документ просто не появляется и нет его НИГДЕ!
Макет = ПолучитьМакет("АктВзаимозачета");
Префикс = СокрЛП(СсылкаНаОбъект.Организация.Префикс);
Префикс = ?(Префикс = "", "", "_" + Префикс );
ОбластьМакета = Макет.ПолучитьОбласть("Тело"+Префикс);
Подскажите, пожалуйста, что может быть?
1 pessok
 
11.02.15
15:36
есть облать "Тело"?
2 pessok
 
11.02.15
15:36
в макете?
3 1976vas
 
11.02.15
15:36
Да, и Тело и Тело + Префикс
4 1976vas
 
11.02.15
15:37
Оба идентичные, на "Тело" только доп надпись. Тело выводится, Тело + Префикс нет.
5 pessok
 
11.02.15
15:40
ну если бы макет не находился, то выходила бы изначально ошибка, так что ошибка в другом месте
6 pessok
 
11.02.15
15:40
*область макета*
7 1976vas
 
11.02.15
15:40
Не ругается, ничего не пишет - просто не выводит ))
8 pessok
 
11.02.15
15:41
что в ОбластьМакета после Получить()?
9 1976vas
 
11.02.15
15:43
Тоже все идентично, заполнение области, различие только в строках кода которые я привел.
10 pessok
 
11.02.15
15:43
по отладчику в ОбластьМакета что?
11 1976vas
 
11.02.15
15:48
Отладчиком там не залезешь, это файл-список печатных форм, пробовал - ругается на метаданные и еще чего много. Я сейчас посмотрел, отличаются скорее всего документы по заполнению, потому, что попробовал еще документы по первой - тоже не все печатаются. Но хотя б ругался, писал что...
12 pessok
 
11.02.15
15:50
леонид_ничего_не_понял.png
13 1976vas
 
11.02.15
15:51
Тело тоже не всегда выводится ))
14 13_Mult
 
11.02.15
15:52
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет ("Макет");
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Дата = ТекущаяДата();
ТабДок.Вывести(Область);
ТабДок.Показать();
15 pessok
 
11.02.15
15:53
(13) ну так смотри в какие условия обрамлено ТабДок.Вывести(ОбластьМакета)
16 1976vas
 
11.02.15
15:57
Нет условия

// данные из свойств документа
        СтруктураСвойств = ПолучитьСвойстваОбъекта();
        
        // Выведем подвал документа.
        СтруктураПодписантов = ПолучитьСтруктуруПодписантов(СсылкаНаОбъект.Организация, СсылкаНаОбъект.Дата, "Бухгалтера");
        ДополнитьСтруктуруПодписантовПрочимиЛицами(СсылкаНаОбъект.Организация, СсылкаНаОбъект.Дата, СтруктураПодписантов);
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    КорректировкаДолга.Ссылка,
        |    КорректировкаДолга.Номер,
        |    КорректировкаДолга.Дата,
        |    КорректировкаДолга.Организация,
        |    КорректировкаДолга.КонтрагентДебитор КАК Контрагент
        |ИЗ
        |    Документ.КорректировкаДолга КАК КорректировкаДолга
        |ГДЕ
        |    КорректировкаДолга.Ссылка = &Ссылка
        |    И КорректировкаДолга.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийКорректировкаДолга.ПроведениеВзаимозачета)
        |    И КорректировкаДолга.КонтрагентДебитор = КорректировкаДолга.КонтрагентКредитор
        |";
        
        Запрос.Параметры.Вставить("Ссылка", СсылкаНаОбъект);
        
        ТабДокумент = Новый ТабличныйДокумент;
        
        Шапка = Запрос.Выполнить().Выбрать();
        Если НЕ Шапка.Следующий() Тогда
            Возврат Неопределено;
        КонецЕсли;
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ДебиторскаяЗадолженность.ВидЗадолженности КАК ВидЗадолженности,
        |    ДебиторскаяЗадолженность.Сумма КАК Сумма,
        |    ДебиторскаяЗадолженность.СуммаРегл КАК СуммаРегл,
        |    ДебиторскаяЗадолженность.Ссылка,
        |    ДебиторскаяЗадолженность.ДоговорКонтрагента
        |ИЗ
        |    (ВЫБРАТЬ
        |        КорректировкаДолгаСуммыДолга.ВидЗадолженности КАК ВидЗадолженности,
        |        СУММА(КорректировкаДолгаСуммыДолга.Сумма) КАК Сумма,
        |        СУММА(КорректировкаДолгаСуммыДолга.СуммаРегл) КАК СуммаРегл,
        |        КорректировкаДолгаСуммыДолга.Ссылка КАК Ссылка,
        |        КорректировкаДолгаСуммыДолга.ДоговорКонтрагента КАК ДоговорКонтрагента
        |    ИЗ
        |        Документ.КорректировкаДолга.СуммыДолга КАК КорректировкаДолгаСуммыДолга
        |    ГДЕ
        |        КорректировкаДолгаСуммыДолга.Ссылка = &Ссылка
        |        И КорректировкаДолгаСуммыДолга.ВидЗадолженности = &Дебиторская
        |    
        |    СГРУППИРОВАТЬ ПО
        |        КорректировкаДолгаСуммыДолга.Ссылка,
        |        КорректировкаДолгаСуммыДолга.ВидЗадолженности,
        |        КорректировкаДолгаСуммыДолга.ДоговорКонтрагента) КАК ДебиторскаяЗадолженность
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    КредиторскаяЗадолженность.ВидЗадолженности,
        |    КредиторскаяЗадолженность.Сумма,
        |    КредиторскаяЗадолженность.СуммаРегл,
        |    КредиторскаяЗадолженность.Ссылка,
        |    КредиторскаяЗадолженность.ДоговорКонтрагента
        |ИЗ
        |    (ВЫБРАТЬ
        |        КорректировкаДолгаСуммыДолга.ВидЗадолженности КАК ВидЗадолженности,
        |        СУММА(КорректировкаДолгаСуммыДолга.Сумма) КАК Сумма,
        |        СУММА(КорректировкаДолгаСуммыДолга.СуммаРегл) КАК СуммаРегл,
        |        КорректировкаДолгаСуммыДолга.Ссылка КАК Ссылка,
        |        КорректировкаДолгаСуммыДолга.ДоговорКонтрагента КАК ДоговорКонтрагента
        |    ИЗ
        |        Документ.КорректировкаДолга.СуммыДолга КАК КорректировкаДолгаСуммыДолга
        |    ГДЕ
        |        КорректировкаДолгаСуммыДолга.Ссылка = &Ссылка
        |        И КорректировкаДолгаСуммыДолга.ВидЗадолженности = &Кредиторская
        |    
        |    СГРУППИРОВАТЬ ПО
        |        КорректировкаДолгаСуммыДолга.Ссылка,
        |        КорректировкаДолгаСуммыДолга.ВидЗадолженности,
        |        КорректировкаДолгаСуммыДолга.ДоговорКонтрагента) КАК КредиторскаяЗадолженность
        |ИТОГИ
        |    СУММА(Сумма),
        |    СУММА(СуммаРегл)
        |ПО
        |    ВидЗадолженности
        |";
        
        Запрос.Параметры.Вставить("Ссылка", СсылкаНаОбъект);
        Запрос.Параметры.Вставить("Дебиторская", Перечисления.ВидыЗадолженности.Дебиторская);
        Запрос.Параметры.Вставить("Кредиторская", Перечисления.ВидыЗадолженности.Кредиторская);
        
        ВыборкаПоВидуЗадолженности = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
        НазваниеОрганизации = Шапка.Организация.НаименованиеПолное;
        Если ПустаяСтрока(НазваниеОрганизации) Тогда
            НазваниеОрганизации = Шапка.Организация;
        КонецЕсли;
        Если НЕ ПустаяСтрока(Шапка.Организация.НаименованиеСокращенное) Тогда
            НазваниеОрганизации = Шапка.Организация.НаименованиеСокращенное;
        КонецЕсли;
        
        НаименованиеКонтрагента = Шапка.Контрагент.НаименованиеПолное;
        Если ПустаяСтрока(НаименованиеКонтрагента) Тогда
            НаименованиеКонтрагента = Шапка.Контрагент;
        КонецЕсли;
        Если СокрЛП(СтруктураСвойств.Контрагент_краткое_наименование) <> "" Тогда
            НаименованиеКонтрагента = СтруктураСвойств.Контрагент_краткое_наименование;
        КонецЕсли;
        
        
        // { --- [11.02.2015]
        // Сидоров В.А.
        Макет = ПолучитьМакет("АктВзаимозачета");
        Преф = СокрЛП(Шапка.Организация.Префикс);
        Префикс2 = ?(Преф = "", "", "_" + Преф );
    
        //ОбластьМакета = ПолучитьМакет("АктВзаимозачета").ПолучитьОбласть("Тело");
        ОбластьМакета = Макет.ПолучитьОбласть("Тело"+Префикс2);
        // } --- [11.02.2015]
        
        ОбластьМакета.Параметры.Отступ = "          ";
        ОбластьМакета.Параметры.Организация = НазваниеОрганизации;
        ОбластьМакета.Параметры.Контрагент = НаименованиеКонтрагента;
        ОбластьМакета.Параметры.ДатаСверкиСтрокой = Формат(Шапка.Дата, "ДФ='dd MMMM yyyy'") + " г.";
        
        ФормСтрока = "Л = ru_RU; ДП = Истина";
        ПарПредмета="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";
        
        
        СуммаЗадолженностиДт = 0; СуммаВзаимозачетаДт = 0;
        СуммаЗадолженностиКт = 0; СуммаВзаимозачетаКт = 0;
        Пока ВыборкаПоВидуЗадолженности.Следующий() Цикл
            
            ОбластьМакета.Параметры.СуммаВзаимозачета = Формат(ВыборкаПоВидуЗадолженности.СуммаРегл, "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб. ("+ЧислоПрописью(ВыборкаПоВидуЗадолженности.СуммаРегл, ФормСтрока, ПарПредмета) +")";
            
            Если ВыборкаПоВидуЗадолженности.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская Тогда
                
                СуммаВзаимозачетаДт = ВыборкаПоВидуЗадолженности.СуммаРегл;
                ОбластьМакета.Параметры.СуммаВзаимозачетаДт = Формат(СуммаВзаимозачетаДт, "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб. ("+ЧислоПрописью(СуммаВзаимозачетаДт, ФормСтрока, ПарПредмета) +")";
                
                Если СтруктураСвойств.Задолженность_всего_Дт = 0 Тогда
                    СуммаЗадолженностиДт = ВыборкаПоВидуЗадолженности.СуммаРегл;
                Иначе
                    СуммаЗадолженностиДт = СтруктураСвойств.Задолженность_всего_Дт;
                КонецЕсли;
                
                ОбластьМакета.Параметры.СуммаЗадолженностиДт = Формат(СуммаЗадолженностиДт, "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб. ("+ЧислоПрописью(СуммаЗадолженностиДт, ФормСтрока, ПарПредмета) +")";
                ВыборкаПоДоговорам = ВыборкаПоВидуЗадолженности.Выбрать();
                ДоговорДт = "";
                Пока ВыборкаПоДоговорам.Следующий() Цикл
                    ДоговорДт = ?(ДоговорДт = "", "", ", ") + """"+ВыборкаПоДоговорам.ДоговорКонтрагента+"""";
                КонецЦикла;
                ОбластьМакета.Параметры.ДоговорДт = ?(ВыборкаПоДоговорам.Количество()<=1, "а ", "ов: ") + ДоговорДт;
            ИначеЕсли ВыборкаПоВидуЗадолженности.ВидЗадолженности = Перечисления.ВидыЗадолженности.Кредиторская Тогда
                
                СуммаВзаимозачетаКт = ВыборкаПоВидуЗадолженности.СуммаРегл;
                ОбластьМакета.Параметры.СуммаВзаимозачетаКт = Формат(СуммаВзаимозачетаКт, "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб. ("+ЧислоПрописью(СуммаВзаимозачетаКт, ФормСтрока, ПарПредмета) +")";
                
                Если СтруктураСвойств.Задолженность_всего_Кт = 0 Тогда
                    СуммаЗадолженностиКт = ВыборкаПоВидуЗадолженности.СуммаРегл;
                Иначе
                    СуммаЗадолженностиКт = СтруктураСвойств.Задолженность_всего_Кт;
                КонецЕсли;
                
                ОбластьМакета.Параметры.СуммаЗадолженностиКт = Формат(СуммаЗадолженностиКт, "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб. ("+ЧислоПрописью(СуммаЗадолженностиКт, ФормСтрока, ПарПредмета) +")";
                ВыборкаПоДоговорам = ВыборкаПоВидуЗадолженности.Выбрать();
                ДоговорКт = "";
                Пока ВыборкаПоДоговорам.Следующий() Цикл
                    ДоговорКт = ?(ДоговорКт = "", "", ", ") + """"+СокрЛП(ВыборкаПоДоговорам.ДоговорКонтрагента)+"""";
                КонецЦикла;
                ОбластьМакета.Параметры.ДоговорКт = ?(ВыборкаПоДоговорам.Количество()<=1, "а ", "ов: ") + ДоговорКт;
            КонецЕсли;
        КонецЦикла;
        
        ОбластьМакета.Параметры.НДСДт = "";
        ОбластьМакета.Параметры.НДСВзаимозачетаДт = "";
        Если СтруктураСвойств.Ставка_НДС_Дт<>"" Тогда
            
            СтавкаНДСДтЧисло = Строка(СтруктураСвойств.Ставка_НДС_Дт);
            
            ОбластьМакета.Параметры.НДСДт = " в том числе НДС "+СтруктураСвойств.Ставка_НДС_Дт+"%"+?(СтавкаНДСДтЧисло=0,""," ("+Формат(Окр(СуммаЗадолженностиДт/(100+СтавкаНДСДтЧисло)*СтавкаНДСДтЧисло,2), "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб.)");
            ОбластьМакета.Параметры.НДСВзаимозачетаДт = " в том числе НДС "+СтруктураСвойств.Ставка_НДС_Дт+"%"+?(СтавкаНДСДтЧисло=0,""," ("+Формат(Окр(СуммаВзаимозачетаДт/(100+СтавкаНДСДтЧисло)*СтавкаНДСДтЧисло,2), "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб.)");
        КонецЕсли;
        
        ОбластьМакета.Параметры.НДСКт = "";
        ОбластьМакета.Параметры.НДСВзаимозачетаКт = "";
        Если СтруктураСвойств.Ставка_НДС_Кт<>"" Тогда
            
            СтавкаНДСКтЧисло = Строка(СтруктураСвойств.Ставка_НДС_Кт);
            
            ОбластьМакета.Параметры.НДСКт = " в том числе НДС "+СтруктураСвойств.Ставка_НДС_Кт+"%"+?(СтавкаНДСДтЧисло=0,""," ("+Формат(Окр(СуммаЗадолженностиКт/(100+СтавкаНДСКтЧисло)*СтавкаНДСКтЧисло,2), "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб.)");
            ОбластьМакета.Параметры.НДСВзаимозачетаКт = " в том числе НДС "+СтруктураСвойств.Ставка_НДС_Кт+"%"+?(СтавкаНДСКтЧисло=0,""," ("+Формат(Окр(СуммаВзаимозачетаКт/(100+СтавкаНДСКтЧисло)*СтавкаНДСКтЧисло,2), "ЧЦ=15; ЧДЦ=2; ЧРД=-")+" руб.)");
        КонецЕсли;
        
        Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(СсылкаНаОбъект.Организация, КонецДня(СсылкаНаОбъект.Дата),);
        
        Руководитель    = Руководители.Руководитель;
        ДолжностьРуководителя = Руководители.РуководительДолжность; ОснованиеРуководителя = "";
        Если СтруктураПодписантов.Свойство("ФИОРуководителя") Тогда // задан подписант за руководителя
            Руководитель = СтруктураПодписантов.ФИОРуководителя;
            ДолжностьРуководителя = СтруктураПодписантов.ДолжностьРуководителя;
            ОснованиеРуководителя = СтруктураПодписантов.ОснованиеРуководителя;
        КонецЕсли;
        
        Бухгалтер    = Руководители.ГлавныйБухгалтер;
        ДолжностьБухгалтера = "Главный бухгалтер"; ОснованиеБухгалтера = "";
        Если СтруктураПодписантов.Свойство("ФИОБухгалтера") Тогда // задан подписант за бухгалтера
            Бухгалтер = СтруктураПодписантов.ФИОБухгалтера;
            ДолжностьБухгалтера = СтруктураПодписантов.ДолжностьБухгалтера;
            ОснованиеБухгалтера = СтруктураПодписантов.ОснованиеБухгалтера;
        КонецЕсли;
        
        ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
        ОбластьМакета.Параметры.ДолжностьРуководителя = ДолжностьРуководителя;
        ОбластьМакета.Параметры.ОснованиеРуководителя = ОснованиеРуководителя;
        
        ОбластьМакета.Параметры.ФИОБухгалтера = Бухгалтер;
        ОбластьМакета.Параметры.ДолжностьБухгалтера = ДолжностьБухгалтера;
        ОбластьМакета.Параметры.ОснованиеБухгалтера = ОснованиеБухгалтера;
        
        ТабДокумент.Вывести(ОбластьМакета);
17 pessok
 
11.02.15
16:00
Если НЕ Шапка.Следующий() Тогда
            Возврат Неопределено;
        КонецЕсли;
18 1976vas
 
11.02.15
16:02
Точно, спасибо!
19 1976vas
 
11.02.15
16:12
Если дебитор и кредитор различны - тогда Неопределено, документы с одинаковыми дебиторами/кредиторами выводятся.