Имя: Пароль:
1C
1С v8
БП 3 Как программно внести изменения в печатную форму отчета перед(после) вывода на экран?
, ,
0 Serg12_19
 
18.03.20
11:25
Подскажите пожалуйста, может где есть пример подобного?
Бухгалтерии приспичило в книге покупок видеть по-другому данные о счет-фактурах...
1 SleepyHead
 
гуру
18.03.20
11:27
(0) - по-другому - понятие растяжимое.

Отвечу в меру того, как я понял
1. До вывода отчета на экран у тебя есть табличный документ. Делай с ним все, что он позволяет делать с собой программно, описание в синтаксис-помощнике
2. После вывода на экран его можно программно сохранить и снова делать с ним что хочешь любыми программными средствами.
2 Serg12_19
 
18.03.20
11:30
Бухам нужно чтобы вместо " от " выводилось ";". Хочу добавить расширение и там сделать что-то типа стрЗаменить для всех ячеек табличного документа.
3 SleepyHead
 
гуру
18.03.20
11:33
(2) У табличного документа есть метод НайтиТекст(), так что нет ничего невозможного..
4 1c TTT
 
18.03.20
11:43
может исковеркать название организаций, нужно проходить только нужные колонки.
5 ГдеСобака Зарыта
 
18.03.20
11:45
Вот же заботы у товарищей. Люди гибнут сотнями каждый день, страны изолируются друг от друга, паника в соцсетях. А они думают как свой МПХ из одной руки в другую переложить.
6 Serg12_19
 
18.03.20
16:23
Добавил в отчет.КнигаПокупок в процедуру ПоказатьВыбранныйЛист поиск и замену

&НаСервере
Процедура ПоказатьВыбранныйЛист(НомерРаздела)

    Результат.Очистить();

    ТекущийНомерРаздела = НомерРаздела;

    // ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
    ПроверкаКонтрагентов.ВывестиРазделОтчета(ЭтотОбъект, Результат, ТекущийНомерРаздела);
    
    // Конец ИнтернетПоддержкаПользователей.РаботаСКонтрагентами

//мои исправления
    е=1;
    Пока е=1 Цикл
        Рез1=Результат.НайтиТекст(" от ");
        
        Если Рез1 = Неопределено Тогда
            Прервать;
        КонецЕсли;
        
        Рез1.Текст=СтрЗаменить(Рез1.Текст," от ",";");
        
    КонецЦикла;
//мои исправления    
    
    
    Результат.ЧерноБелаяПечать = Истина;
    
    РассчитатьОбластьПечати();

КонецПроцедуры

На секунду проскакивают заветные точки с запятой, а затем опять выводится " от ".
Подозреваю что после проверки контрагентов происходит перезаполнение таблицы Результат, но не могу найти где.
Подскажите пожалуйста, люди добрые...
7 1c TTT
 
18.03.20
16:30
(6) зачем тебе найти текст проходи по ячейкам табличного документа и все
8 yurikmellon2
 
18.03.20
16:54
(6) в модуле менеджера отчета в Процедуре ЗаполнитьСтрокуКнигиПокупок
пред
СоставСтроки.Вставить("НомерОтДата",                 ПредставлениеСФ.НомерОтДата);
добавить
ПредставлениеСФ.НомерОтДата=СтрЗаменить(ПредставлениеСФ.НомерОтДата," от ",";");
9 Serg12_19
 
18.03.20
17:07
Спасибо!
10 yurikmellon2
 
18.03.20
17:08
или чтобы уж совсем было красиво, там же заменить эту строчку

СоставСтроки.Вставить("НомерОтДата",                 СтрЗаменить(ПредставлениеСФ.НомерОтДата," от ",";"));
//СоставСтроки.Вставить("НомерОтДата",               ПредставлениеСФ.НомерОтДата);
11 Serg12_19
 
19.03.20
20:36
Вдруг кому-то пригодится...
Все-таки сделал через замену в табличном документе, т.к. бухам понадобилось то же и в книге продаж, и в доп. листах
В общих модулях ПроверкаКонтрагентов

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

    РезультатФормированияОтчета = СтрокаРаздела.ХранилищеОтчета.Получить();
    
    //СМ
    Рез0= РезультатФормированияОтчета.ИмяПараметровПечати;
    Если (Рез0= "ПАРАМЕТРЫ_ПЕЧАТИ_КнигаПокупок") или (Рез0= "ПАРАМЕТРЫ_ПЕЧАТИ_КнигаПродаж") Тогда
        е=1;
        Пока е=1 Цикл
            Рез1=РезультатФормированияОтчета.НайтиТекст(" от ");
            
            Если Рез1 = Неопределено Тогда
                Прервать;
            КонецЕсли;
            
            Рез1.Текст=СтрЗаменить(Рез1.Текст," от ",";");
        КонецЦикла;
        
    КонецЕсли;
    
    //СМ
    
    
    ПолеТабличногоДокумента.Вывести(РезультатФормированияОтчета);
    
КонецПроцедуры
12 Сияющий в темноте
 
20.03.20
02:38
а открыть шаблон и посмотреть?
13 Мимохожий Однако
 
20.03.20
06:44
Осталось выяснить, что уходит в файл отчетности в электронном виде. Насколько я знаю, это важнее бумажки.
14 Креатив
 
22.03.20
22:52
(0)Срочно учиться говорить бухам:"Нет". На всякую фигню.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой