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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Обычные формы, язык внешней обработки

Автор: MK-61 08.07.22, 13:50

Есть внешняя обработка. Написана на русском языке. Открываю её в базе, где языком пользователя выбран украинский. При таком открытии все надписи во внешней обработке становятся пустыми, т.к. не заполнены строки на украинском языке. В связи с этим есть два вопроса:
1. Возможно ли автоматически скопировать текст с надписей на русском в надписи на украинском, чтобы вручную не заполнять поля на укр. языке?
2. Возможно ли в самой обработке где-нибудь в ПриОткрытии указать, что она не мультиязычная, а одноязычная. Чтобы при открытии в базе на другом языке текст надписей все равно отображался, без необходимости дописывать все надписи на других языках?
Спасибо.

Автор: Moloko 09.07.22, 11:07

MK-61 @ Вчера, 13:50 * ,
Конфигуратор - Правка - Редактирование текстов интерфейса. Встроенный сервис поможет вам перевести тексты форм и модулей на любой язык. Но с лёту не получится, знаю по собственному опыту.

Автор: zay 12.07.22, 18:12

MK-61 @ 08.07.22, 14:50 * ,

  1. Нет
  2. И да и нет

Насколько я понял вы хотите сделать все просто, одной строкой. Как сделать одной строкой не знаю, можно написать процедуру. Обходим в цикле все элементы формы и в зависимости от типа элемента меняем заголовок
Как-то так:
Для каждого ЭлементФормы из ЭтаФорма.ЭлементыФормы Цикл

    ТипЭлемента = ТипЗнч(ЭлементФормы);

    Если (ТипЭлемента=Тип("Надпись") ИЛИ ТипЭлемента=Тип("Кнопка")) Тогда
        
        ЭлементФормы.Заголовок = НСтр("ru='"+ЭлементФормы.Заголовок+"';uk='"+ЭлементФормы.Заголовок+"'");
        
    ИначеЕсли (ТипЭлемента=Тип("КоманднаяПанель")) Тогда
    
        КоллекцияКнопокКоманднойПанели = ЭлементФормы.Кнопки;
        
        Для каждого Кнопка из КоллекцияКнопокКоманднойПанели Цикл
            
            Если Кнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Действие Тогда
            
                Кнопка.Заголовок = НСтр("ru='"+Кнопка.Заголовок+"';uk='"+Кнопка.Заголовок+"'");
                
            ИначеЕсли Кнопка.ТипКнопки = ТипКнопкиКоманднойПанели.Подменю Тогда
                
                Для каждого КнопкаПоменю из Кнопка.Кнопки Цикл
                    
                    Если КнопкаПоменю.ТипКнопки = ТипКнопкиКоманднойПанели.Действие Тогда
                    
                        КнопкаПоменю.Заголовок = НСтр("ru='"+КнопкаПоменю.Заголовок+"';uk='"+КнопкаПоменю.Заголовок+"'");
                        
                    КонецЕсли;
                    
                КонецЦикла;
                
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЕсли;
    
КонецЦикла;

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