|
Удалить язык из табличного документа | ☑ | ||
---|---|---|---|---|
0
TormozIT
15.05.23
✎
14:48
|
Однажды в конфигурации с кучей языков я открыл табличный документ и задал для одной ячейки строки на всех ее языках. Затем я перенес этот табличный документ в конфигурацию с двумя языками.
В этом табличном документе при редактировании текста ячейки в отдельном окне видны все языки, на которых есть хотя бы одно непустое значение. Я очистил все тексты на ненужных языках этого табличного документа. Но поля ввода для них все равно отображаются. Платформа внутри хранит список языков. Но вроде не дает к нему доступа. Как то можно без пересоздания табличного документа от них избавиться в конфигураторе или во встроенном языке? https://i.imgur.com/VJUaG5j.png Так выглядит ЗначениеВСтрокуВнутр(ТабличныйДокумент): {"#",e603103e-a318-4edc-a014-b1c6cf94d49f, {8,1,12, {"ru","ru",1,10,"ru","Русский","Русский","en","Английский","Английский","bg","Болгарский","Болгарский","xx","Служебный","Служебный","ka","Грузинский","","kk","Казахский","","ky","Киргизский","","tg","Таджикский","","tk","Туркменский","","uz","Узбекский","",1}, |
|||
1
TormozIT
15.05.23
✎
23:59
|
Пришлось писать код.
Получилось этоФункция УдалитьВнешниеЯзыкиДокумента(ТабДок, выхБылиУдаления = Ложь) ЗаписьХмл = Новый ЗаписьXML; ЗаписьХмл.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьХмл, ТабДок); ТекстДо = ЗаписьХмл.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстДо); ПостроительDOM = Новый ПостроительDOM; ДокументДом = ПостроительDOM.Прочитать(ЧтениеXML); РазрешенныеЯзыки = Новый Структура; Для Каждого МетаЯзык Из Метаданные.Языки Цикл РазрешенныеЯзыки.Вставить(МетаЯзык.КодЯзыка); КонецЦикла; БылиУдаления = Ложь; ЭлементЯзыки = ДокументДом.ПолучитьЭлементыПоИмени("languageSettings"); Для Каждого ЯзыкДокумента Из ЭлементЯзыки[0].ПолучитьЭлементыПоИмени("languageInfo") Цикл КодЯзыкаДокумента = ЯзыкДокумента.ПолучитьЭлементыПоИмени("id")[0].ТекстовоеСодержимое; Если Не РазрешенныеЯзыки.Свойство(КодЯзыкаДокумента) Тогда ЯзыкДокумента.РодительскийУзел.УдалитьДочерний(ЯзыкДокумента); БылиУдаления = Истина; КонецЕсли; КонецЦикла; Если Не БылиУдаления Тогда Возврат ТабДок; КонецЕсли; выхБылиУдаления = Истина; ЗаписьХмл = Новый ЗаписьXML; ЗаписьХмл.УстановитьСтроку(); ЗаписьДом = Новый ЗаписьDOM; ЗаписьДом.Записать(ДокументДом, ЗаписьХмл); ТекстПосле = ЗаписьХмл.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстПосле); Рез = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); Возврат Рез; КонецФункции |
|||
2
TormozIT
21.05.23
✎
23:17
|
Добавил эту функцию в редактор табличного документа ИР https://www.hostedredmine.com/issues/963610
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |