Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> ПовторятьПриПечатиСтроки - не меняется параметр          
Prana Подменю пользователя
сообщение 25.10.24, 11:49
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 1 раз
Рейтинг: 1

Здравствуйте!

Помогите пожалуйста понять...

Самописный отчёт. Вывожу таблицу значений в табличный документ через макет. Набор областей таков:

Шапка
ШапкаТаблицы
ТекущаяУлица
СтрокаТаблицы


На каждой странице повторяю ШапкаТаблицы. И сразу под шапкой ТекущаяУлица, для того чтобы в каждой строке не выводить улицу, чтобы не повторять в каждой строке одну и ту же улицу. Также ТекущаяУлица выводится когда по списку начинается другая улица. В цикле вывода СтрокаТаблицы при начале каждой итерации обновляю параметр отвечающий за значение параметра в области ТекущаяУлица текущей улицей из списка.


Так вот, проблема в том, что когда через конструкцию

ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(4,,5,); // 4 - ШапкаТаблицы, 5 - ТекущаяУлица


то програмное изменение параметра отвечающего за значение в ТекущаяУлица не приводит к изменению. А повторяется только то, что было установлено в параметр перед конструкцией выше.

Как же это обойти ?


andrew76 Подменю пользователя
сообщение 25.10.24, 15:06
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 492
Из: Казахстан
Спасибо сказали: 56 раз
Рейтинг: 56

Prana @ Сегодня, 14:49 * ,

Здравствуйте.
Маловато кода для анализа.

Prana Подменю пользователя
сообщение 25.10.24, 15:47
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 1 раз
Рейтинг: 1

Цитата(andrew76 @ 25.10.24, 16:06) *
Здравствуйте.
Маловато кода для анализа.

Спасибо!
На данный момент код немного изменён, но всё равно нужный эффект не достигнут

&НаСервере
Процедура ВывестиНаПечать(ТабДок)
    
    ТабДОк.Очистить();
    
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДок.РазмерСтраницы= "A4";
    ТабДок.АвтоМасштаб=Истина;                              
    
    
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапкаТаб = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьУлицаТаб = Макет.ПолучитьОбласть("УлицаВТаблице");
    ОбластьСтрокаТаб = Макет.ПолучитьОбласть("СтрокаТаблицы");
    
    
    ОбластьШапка.Параметры.ТекущаяДата = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy");
    ОбластьШапка.Параметры.Период = ""+Формат(Объект.Период.ДатаНачала,"ДФ=dd.MM.yyyy")+" - "+Формат(Объект.Период.ДатаОкончания,"ДФ=dd.MM.yyyy");
    ТабДок.Вывести(ОбластьШапка);
    
        
    ПовторятьПриПечатиОбласть = ТабДок.Вывести(ОбластьШапкаТаб);
    ТабДок.ПовторятьПриПечатиСтроки = ПовторятьПриПечатиОбласть;
    
        
    ЭтаУлица="";
    
    сч=0;
    Для Каждого Стр ИЗ ТЗ Цикл
        //ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(5,,5,);

        Уличка=""+НасПункт+", "+лев(Стр.ТипУлицы,3)+". "+Стр.Улица;
        ОбластьУлицаТаб.Параметры.НасПунктУлица = Уличка;
        ОбластьШапкаТаб.Параметры.НасПунктУлица = Уличка;
               
        Если ЭтаУлица<>Стр.КодУлицы  Тогда                                                        
                        
                        
            ТабДок.Вывести(ОбластьУлицаТаб);
                                    
        КонецЕсли;
                
        ОбластьСтрокаТаб.Параметры.ЛС = Стр.ЛС;        
        ОбластьСтрокаТаб.Параметры.Договор = Стр.Договор;
        ОбластьСтрокаТаб.Параметры.ФИОВладельца = ПреобразоватьФИОВИнициалы(Стр.ВладелецЛС);
        
        ЭтаУлица =  Стр.КодУлицы;
        ТабДок.Вывести(ОбластьСтрокаТаб);
                
                
    КонецЦикла;  
        
КонецПроцедуры


Макет
[необходимо зарегистрироваться для просмотра ссылки]


andrew76 Подменю пользователя
сообщение 25.10.24, 15:57
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 492
Из: Казахстан
Спасибо сказали: 56 раз
Рейтинг: 56

Prana @ Сегодня, 18:47 * ,

Вот тут проблема ?

Если ЭтаУлица<>Стр.КодУлицы  Тогда                                                        
                        
       ТабДок.Вывести(ОбластьУлицаТаб);
                                    
КонецЕсли;


а если вот так ?

Если ЭтаУлица<>Стр.КодУлицы  Тогда                                                        
    
           ОбластьУлицаТаб.Параметры.НасПунктУлица = Уличка;                     
       ТабДок.Вывести(ОбластьУлицаТаб);
                                    
КонецЕсли;

Prana Подменю пользователя
сообщение 25.10.24, 16:29
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 1 раз
Рейтинг: 1

Цитата(andrew76 @ 25.10.24, 16:57) *


ТабДок.Вывести(ОбластьУлицаТаб);

нужно чтобы вот это выводилось под шапкой таблицы на каждой странице.

andrew76 Подменю пользователя
сообщение 25.10.24, 17:13
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 492
Из: Казахстан
Спасибо сказали: 56 раз
Рейтинг: 56

Цитата(Prana @ 25.10.24, 14:49) *
то програмное изменение параметра отвечающего за значение в ТекущаяУлица не приводит к изменению. А повторяется только то, что было установлено в параметр перед конструкцией выше.


так получается , что выводится не совсем то что надо ?
в отладчике какое значение переменных "Уличка" и "ЭтаУлица" в блоке вывода ?

Prana Подменю пользователя
сообщение 25.10.24, 19:39
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 1 раз
Рейтинг: 1

andrew76 @ Сегодня, 18:13 * ,
Да, текущая по циклу улица не выводится под шапкой на каждой странице.
УЛичка и ЭтаУлица штатно принимают значения согласно условий при каждой итерации.

Тут какая-та особенность метода ПовторятьПриПечатиСтроки...



Prana @ Сегодня, 20:26 * ,

поборол!

в этом месте
ТабДок.Вывести(ОбластьСтрокаТаб);


сдедал так

ТабДок.Вывести(ОбластьСтрокаТаб);

Если НЕ ТабДок.ПроверитьВывод(ОбластьСтрокаТаб)  Тогда
    ТабДок.Вывести(ОбластьУлицаТаб);
КонецЕсли;



щас проверяю все ли строки на месте...

Prana Подменю пользователя
сообщение 25.10.24, 21:08
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 1 раз
Рейтинг: 1

Да, всё на месте. Колхоз, конечно, но работает.

andrew76, спасибо вам!

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 26.10.24, 4:12
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 492
Из: Казахстан
Спасибо сказали: 56 раз
Рейтинг: 56

Prana @ Сегодня, 0:08 * ,

Ну вот и хорошо.а на форуме (для спасибо) есть кнопка "c пальцем". smile.gif

Спасибо сказали: Prana,

Prana Подменю пользователя
сообщение 26.10.24, 11:07
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 1 раз
Рейтинг: 1

andrew76 @ Сегодня, 5:12 * ,
есть

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 14:49
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!