Имя: Пароль:
1C
1С v8
Лишние строки в печатной форме
0 Su60ta_SunRise
 
14.08.13
15:18
Ребят, дубль просьбы, реально встал с проблемой.
Я вытащил из БП печатную форма Акта сверки, сделал ее внешней.
Добавил отражение номенклатуры и количества товара.
Но теперь макет отображает лишние строки
Код:
//Для упрощения вывода, сравним списки по количеству элементов, добавив пустые
            МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
            МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
            Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
                Для инд = МинИндекс По МаксИндекс-1 Цикл
                    СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт","","","","",""));
                КонецЦикла;
            ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
                Для инд = МинИндекс По МаксИндекс-1 Цикл
                    СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр","","","",""));
                КонецЦикла;            
            КонецЕсли;
            
            
            
            Для Инд = 0 По МаксИндекс Цикл
                ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
                ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);    //как тут ему сказать, чтоб не выводил строки?                        
                ТабДок.Вывести(ОбластьОбороты);        
                ///ДОБАВЛЯЕМ НОМЕНКЛАТУРУ И КОЛИЧЕСТВО
                Если ТипЗнч(СписокДокументов[Инд].Регистратор) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
                    ТаблицаТоваров = СписокДокументов[Инд].Регистратор.Товары;
                    Для каждого СтрДок Из ТаблицаТоваров Цикл
                        ОблНом = Макет.ПолучитьОбласть("Обороты");
                        ОблНом.Параметры.РегистраторПредставление = СтрДок.Номенклатура;
                        ОблНом.Параметры.КоличествоТовара = СтрДок.Количество;                         
                        ТабДок.Вывести(ОблНом);                        
                    КонецЦикла;
                    
                    
                КонецЕсли;
                
            КонецЦикла;                  
                


Скрин: http://yadi.sk/d/0QeCkIG77uQXE
1 Su60ta_SunRise
 
14.08.13
15:19
http://yadi.sk/d/0QeCkIG77uQXE
Скрин макета
2 RomaH
 
naïve
14.08.13
15:28
///ДОБАВЛЯЕМ НОМЕНКЛАТУРУ И КОЛИЧЕСТВО

                Если ТипЗнч(СписокДокументов[Инд].Регистратор) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
                    ТаблицаТоваров = СписокДокументов[Инд].Регистратор.Товары;
                    Для каждого СтрДок Из ТаблицаТоваров Цикл
                        ОблНом = Макет.ПолучитьОбласть("Обороты");
                        ОблНом.Параметры.РегистраторПредставление = СтрДок.Номенклатура;
                        ОблНом.Параметры.КоличествоТовара = СтрДок.Количество;                        
                        ТабДок.Вывести(ОблНом);                        
                    КонецЦикла;

ну как бы - это оно?
3 Su60ta_SunRise
 
14.08.13
15:30
да, то, что добавляет номенклатуру и количество.
4 Su60ta_SunRise
 
14.08.13
15:34
Суть тут:
МаксИндекс = Макс(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
            МинИндекс = Мин(СписокДокументов.Количество(), СписокДокументовК.Количество())-1;
            Если СписокДокументов.Количество()<СписокДокументовК.Количество() Тогда
                Для инд = МинИндекс По МаксИндекс-1 Цикл
                    СписокДокументов.Добавить(новый структура("ДатаДокумента,РегистраторПредставление,Регистратор,СуммаОборотДт,СуммаОборотКт","","","","",""));
                КонецЦикла;
            ИначеЕсли СписокДокументов.Количество()>СписокДокументовК.Количество() Тогда
                Для инд = МинИндекс По МаксИндекс-1 Цикл
                    СписокДокументовК.Добавить(новый структура("ДатаДокументаКонтр,РегистраторПредставлениеКонтр,СуммаОборотДтКонтр,СуммаОборотКтКонтр","","","",""));
                КонецЦикла;            
            КонецЕсли;
            
            
            
            Для Инд = 0 По МаксИндекс Цикл
                ОбластьОбороты.Параметры.Заполнить(СписокДокументов[Инд]);
                ОбластьОбороты.Параметры.Заполнить(СписокДокументовК[Инд]);    //
Тут нужно задать условие для СписокДокументовК[Инд], что бы он не выводил пустые строки, только я даже логически не могу сформилировать условие (
Стажер еще
5 RomaH
 
naïve
14.08.13
15:51
что значит пустые строки?
6 RomaH
 
naïve
14.08.13
15:51
последние две что ли на скрине? - нафига тогда цветом выделял?
7 Su60ta_SunRise
 
14.08.13
15:54
http://yadi.sk/d/0QeCkIG77uQXE
На скрине выделил желтым.
Лезут потому, что есть теперь в области строки номенклатуры.
Они создают пустые строки в правой части документа СписокДокументовК[Инд]
8 RomaH
 
naïve
15.08.13
14:36
это надо алгоритм формирования ПФ переделывать
... например формировать по отдельности ТД свой и чужой
а потом Присоеденить