Версия для печати темы (https://pro1c.org.ua/index.php?s=37cfa627be91f7d4b69daefa471ae4dd&showtopic=67046)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Язык отчета на СКД

Автор: AnryMc 04.08.22, 10:43

Доброго времени суток!

Внешний отчет на СКД без макета оформления, т.е. выводится системой.
Для Конфигурации Бухгалтерия BAS в ней есть два языка: русский и украинский.
Платформа инсталлирована русская (интерфейс программы) - переинсталяция не подходит
Интерфейс пользователя - украинский
Язык печатных форм - украинский (хотя в данном случае он не причём)
Всё работает нормально но в ИТОГАХ СКД пишется "Итого"

Вопрос: Как заменить "Итого" на "Разом"?

З.Ы. Кстати и во всех стандартных отчетах тоже "Итого"...

Уточню вопрос
Запуск через ключ /Luk - не подходит
Интересует изменение в самой СКД через модуль объекта процедура "ПриКомпоновкеРезультата"

З.Ы. Рассматривается вариант платного выполнения с подробными объяснениями

Автор: sava1 04.08.22, 13:01

AnryMc,

найти Итого и заменить на свое.
Если, что - пишите в ЛС

Автор: Vofka 05.08.22, 8:57

Цитата(AnryMc @ 04.08.22, 11:43) *
- Как заменить "Итого" на "Разом"?

Цитата(sava1 @ 04.08.22, 14:01) *
найти Итого и заменить на свое.

Ответ даже не капитана, а адмирала просто. Вы б может конкретики немного добавили?

Автор: sava1 05.08.22, 9:36

Vofka @ Сегодня, 9:57 * ,
Vofka @ Сегодня, 9:57 * ,

в ТабДокументе ищем ячейку со значением "Итого" и меняем на свое - так конкретно?

установка параметров - ПриКомпоновке....

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();    
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Параметр", Значение);    
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);


далее выводим отчет....
а здесь меняем Итого

     ТекОбласть = Результат.НайтиТекст("Итого", ТекОбласть, Результат.Область(), Истина, Истина, Истина, Ложь);      

      Если ТекОбласть <> Неопределено Тогда
               ТекОбласть.Текст = "Загалом";
     КонецЕсли;

Автор: Vofka 05.08.22, 10:02

Цитата(sava1 @ 05.08.22, 10:36) *
так конкретно?

Однозначно намного конкретнее. 12201689.gif

Автор: AnryMc 05.08.22, 10:55

РЕШЕНО!!!

Рабочий код:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    Настройки = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();
    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);  
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    Ячейка = 1;
    
    Пока Ячейка <> Неопределено Цикл
        
        Ячейка = ДокументРезультат.НайтиТекст("Итого");
        
        Если Ячейка <> Неопределено Тогда
            
            Ячейка.Текст = "Разом";
            
        КонецЕсли;
        
    КонецЦикла;
    
    //***Запишем в журнал событий
    ЗаписьЖурналаРегистрации("МоеСобытие.Отчет."+СокрЛП(ЭтотОбъект.Метаданные().Имя),
    УровеньЖурналаРегистрации.Информация,
    ,
    СокрЛП(ЭтотОбъект.Метаданные().Имя),
    "Открыт "+СокрЛП(ПараметрыСеанса.ТекущийПользователь)+" "+СокрЛП(ТекущаяДата()));
    
КонецПроцедуры


Работает со всеми настройками (настойками, пользовательскими настройками, фиксированными настройками) - отборы, оформления, ....

Автор: AnryMc 05.08.22, 13:51

Цитата(sava1 @ 05.08.22, 10:36) *
ТекОбласть = Результат.НайтиТекст("Итого", ТекОбласть, Результат.Область(), Истина, Истина, Истина, Ложь);

Если ТекОбласть <> Неопределено Тогда
ТекОбласть.Текст = "Загалом";
КонецЕсли;


Поиск области не в цикле - заменит 1-е значение а не все...

Автор: Vofka 05.08.22, 14:15

Цитата(AnryMc @ 05.08.22, 14:51) *
Поиск области не в цикле - заменит 1-е значение а не все...

То ж было не готовое решение для вас, а способ как это в принципе можно сделать.

Автор: sava1 08.08.22, 13:17

Цитата(AnryMc @ 05.08.22, 11:55) *
Ячейка = 1;

Пока Ячейка <> Неопределено Цикл

Ячейка = ДокументРезультат.НайтиТекст("Итого");

Если Ячейка <> Неопределено Тогда

Ячейка.Текст = "Разом";

КонецЕсли;

КонецЦикла;



Уж если по-правильному , тогда

    Пока Истина Цикл
        
        Ячейка = ДокументРезультат.НайтиТекст("Итого");
        
        Если Ячейка = Неопределено Тогда
             Прервать;
        КонецЕсли;
            
        Ячейка.Текст = "Разом";            

        
    КонецЦикла;



Автор: AnryMc 08.08.22, 13:54

Кстати, если"прикрутить" справочник или регистр сведений можно сделать "универсальный" механизм перевода...

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua