|   |   | 
| 
 | Не работает внешняя печатная форма | ☑ | ||
|---|---|---|---|---|
| 0
    
        Maratuster 03.11.15✎ 10:09 | 
        Всем добра )))
 Поручили переделать ВПФ с бухни 2.0 на 3.0. Форма выводится на печать, но она пустая! Может кто сказать, где у меня ошибка? (Я только учусь) ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ИнвентаризацияРасчетовСКонтрагентами.Контрагенты.( | Ссылка, | НомерСтроки, | ВидЗадолженности, | Контрагент, | СчетРасчетов, | Подтверждено, | НеПодтверждено, | ИстекСрокДавности | ) Как Контрагенты |ИЗ | Документ.ИнвентаризацияРасчетовСКонтрагентами КАК ИнвентаризацияРасчетовСКонтрагентами |ГДЕ | ИнвентаризацияРасчетовСКонтрагентами.Ссылка В (&МассивСсылок)"; Запрос.УстановитьПараметр("МассивСсылок", МассивОбъектов); РезультатЗапроса = Запрос.Выполнить().Выбрать(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Для Каждого СтрокаКонтрагента из ВыборкаДетальныеЗаписи.Контрагенты Цикл СуммаПоКотрагенту = 0; Если СтрокаКонтрагента.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская Тогда СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформации(СтрокаКонтрагента.Контрагент, Шапка.Дата); ОбластьМакетаСтрока.Параметры.Контрагент = СтрокаКонтрагента.Контрагент; ОбластьМакетаСтрока.Параметры.СведенияОКонтрагенте = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм, ЮридическийАдрес,Телефоны"); ТЗЗадолженности = РасшифроватьЗадолженность(СтрокаКонтрагента.Контрагент, СтрокаКонтрагента.СчетРасчетов, Шапка, Истина); СуммаПоКотрагенту = ТЗЗадолженности.Итог("СуммаОстаток"); Разница = СуммаПоКотрагенту - СтрокаКонтрагента.Подтверждено - СтрокаКонтрагента.НеПодтверждено; Если Разница > 0 Тогда //СуммаПоКотрагенту = ПолучитьСвернутыйОстаток(СтрокаКонтрагента.Контрагент, СтрокаКонтрагента.СчетРасчетов, Шапка, Истина); СуммаПоКотрагенту = СтрокаКонтрагента.Подтверждено + СтрокаКонтрагента.НеПодтверждено; КонецЕсли; ОбластьМакетаСтрока.Параметры.СуммаДебет =СуммаПоКотрагенту; ОбластьМакетаСтрока.Параметры.СуммаКредит = 0; НазваниеДокумента = ""; НомерДокумента = ""; ДатаДокумента = ""; //МинимальнаяДатаДокумента = ""; ЗаЧто = ""; ДокументПоПорядку = 0; СписокНазванийДоков.Очистить(); СписокЗаЧто.Очистить(); Для Каждого СтрокаТЗ из ТЗЗадолженности Цикл Если ЗначениеЗаполнено(СтрокаТЗ.ДокументРасчетов) Тогда ДокументПоПорядку = ДокументПоПорядку + 1; НазваниеДокументаЕдЧисло = СокрЛП(СтрокаТЗ.ДокументРасчетов.Метаданные()); Если ДокументПоПорядку=1 Тогда НазваниеДокумента = НазваниеДокументаЕдЧисло; НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(СтрокаТЗ.ДокументРасчетов); ДатаДокумента = Формат(СтрокаТЗ.ДокументРасчетов.Дата,"ДФ=dd.MM.yyyy"); //МинимальнаяДатаДокумента = СтрокаТЗ.ДокументРасчетов.Дата; ТекущееЗаЧто = ОпределитьПредметЗадолженности(СтрокаТЗ.ДокументРасчетов); ЗаЧто = ТекущееЗаЧто; СписокЗаЧто.Добавить(ТекущееЗаЧто); Иначе Если СписокНазванийДоков.НайтиПоЗначению(НазваниеДокументаЕдЧисло) = Неопределено Тогда Если Найти(НазваниеДокумента,НазваниеДокументаЕдЧисло)=0 Тогда НазваниеДокумента = НазваниеДокумента + ", " + НазваниеДокументаЕдЧисло; Иначе //меняем на множественное число Если СписокНазванийДоков.НайтиПоЗначению(НазваниеДокументаЕдЧисло) = Неопределено Тогда ПодстрокаЗамены = ПолучитьПОдстрокуЗамены(НазваниеДокументаЕдЧисло); НазваниеДокумента = СтрЗаменить(НазваниеДокумента,НазваниеДокументаЕдЧисло, ПодстрокаЗамены); СписокНазванийДоков.Добавить(НазваниеДокументаЕдЧисло); КонецЕсли; КонецЕсли; КонецЕсли; НомерДокумента = НомерДокумента + Символы.ПС + ОбщегоНазначения.ПолучитьНомерНаПечать(СтрокаТЗ.ДокументРасчетов); ДатаДокумента = ДатаДокумента + Символы.ПС + Формат(СтрокаТЗ.ДокументРасчетов.Дата,"ДФ=dd.MM.yyyy"); ТекущееЗаЧто = ОпределитьПредметЗадолженности(СтрокаТЗ.ДокументРасчетов); Если СписокЗаЧто.НайтиПоЗначению(ТекущееЗаЧто) = Неопределено Тогда ЗаЧто = ЗаЧто + Символы.ПС + ТекущееЗаЧто; СписокЗаЧто.Добавить(ТекущееЗаЧто); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; НПП = НПП + 1; ОбластьМакетаСтрока.Параметры.НПП = НПП; ОбластьМакетаСтрока.Параметры.НазваниеДокумента = НазваниеДокумента; ОбластьМакетаСтрока.Параметры.НазваниеДокумента = НазваниеДокумента; ОбластьМакетаСтрока.Параметры.НомерД = НомерДокумента; ОбластьМакетаСтрока.Параметры.ДатаД = ДатаДокумента; ОбластьМакетаСтрока.Параметры.ЗаЧто = ЗаЧто; ИтогоСуммаДебет = ИтогоСуммаДебет + СуммаПоКотрагенту; ТабДокумент.Вывести(ОбластьМакетаСтрока); КонецЕсли; КонецЦикла; | |||
| 1
    
        Горогуля 03.11.15✎ 10:10 | 
        а почему она должна быть полная по-твоему?     | |||
| 2
    
        butterbean 03.11.15✎ 10:11 | 
        Весь код не смотрел.
 Почему в конце ТабДокумент не возвращается из функции?? | |||
| 3
    
        Горогуля 03.11.15✎ 10:12 | 
        (2) не весь код ты смотрел. функции там нет     | |||
| 4
    
        hhhh 03.11.15✎ 10:36 | 
        (0) зачем через задницу делать? может так
 ВЫБРАТЬ | Ссылка, | НомерСтроки, | ВидЗадолженности, | Контрагент, | СчетРасчетов, | Подтверждено, | НеПодтверждено, | ИстекСрокДавности |ИЗ | Документ.ИнвентаризацияРасчетовСКонтрагентами.Контрагенты КАК ИнвентаризацияРасчетовСКонтрагентамиКонтрагенты |ГДЕ | ИнвентаризацияРасчетовСКонтрагентамиКонтрагенты.Ссылка В (&МассивСсылок) | |||
| 5
    
        Maratuster 03.11.15✎ 11:03 | 
        (1) а почему не должна? Я потому и спрашиваю у опытных программистов, где косяк. Сам его найти не могу - опыта мало. 
 (4) попробую | |||
| 6
    
        Горогуля 03.11.15✎ 11:06 | 
        да хрен его знает, где косяк. ну что-то выводится в ТабДокумент. и чо?     | |||
| 7
    
        Горогуля 03.11.15✎ 11:06 | 
        (6) или не выводится     | |||
| 8
    
        Maratuster 03.11.15✎ 11:08 | 
        (7) В том и дело, что не выводится. Просто пустой макет. Только шапка и подвал заполняются     | |||
| 9
    
        АдинС 03.11.15✎ 11:09 | 
        Тогда отладчиком смотри, что в цикле заполняется.. Наименование параметров сравни, наименование областей макетов и т.д...     | |||
| 10
    
        Maratuster 03.11.15✎ 11:09 | 
        (7) У меня вызывает сомнение часть, в которой результат запроса в цикл передается. Может я чего неправильно указал?     | |||
| 11
    
        Горогуля 03.11.15✎ 11:11 | 
        (10) точку остановка в отладчике ты не указал     | |||
| 12
    
        Maratuster 03.11.15✎ 11:18 | 
        (11) ставил, в нем и проблема
 Но по синтаксису "ошибок нет". Просто я не могу с этим циклом справиться. | |||
| 13
    
        Maratuster 03.11.15✎ 11:20 | 
        (11) для точки останова пришлось модуль в конфе менять на данный. Это же ВПФ. Постоянно такие смены за... надоедят     | |||
| 14
    
        АдинС 03.11.15✎ 12:14 | 
        Сделай ВПФ с Формой для отладки данного модуля, в конфу встраивать модуль необязательно..     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |