Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

БП 3 Как программно внести изменения в печатную форму отчета перед(после) вывода на экран?

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

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

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

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

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

    // ИнтернетПоддержкаПользователей.РаботаСКонтрагентами

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


//мои исправления

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

    
    
    Результат.ЧерноБелаяПечать = Истина;
    
    РассчитатьОбластьПечати();

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.