Хранение данных на разных языках и "диалектах" их представление в пользовательском интерфейсе
Коллеги, вопрос родился неожиданно :(
Есть переписанный Документооборот рус+ анг, и вроде не было проблем, всех устраивало решение на 2-х языках. Но, как обычно Заказчик любит преподносить сюрпризы.
Напомню рус/анг наименование объекта в Документообороте реализовано так:
Как видно определяется по выбранному текущему языку.
Заказчик хочет ещё вносить данные по другому критерию, типа 3 наименования на АНГЛИЙСКОМ на разные зависящие от критерия типаМЕСТОПОЛОЖЕНИЕ / ПРЕДПРИЯТИЕ / ПРОЕКТ, т.е. некоторое подобие "диалектов".
Если кто-то реализовывал, подкиньте идей. Самое главное что это должно отрабатывать в форме списка, а в каждой строке списка может быть своё значения реквизита для определения "диалекта".
ЗЫ: Уточнение, остался пока один реквизит из трёх, как пример: орг1 - Table, орг2 - Desk, орг3 - Platen.
Есть переписанный Документооборот рус+ анг, и вроде не было проблем, всех устраивало решение на 2-х языках. Но, как обычно Заказчик любит преподносить сюрпризы.
Напомню рус/анг наименование объекта в Документообороте реализовано так:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Для каждого КлючИЗнач из Данные Цикл
Представление = КлючИЗнач.Значение;
КонецЦикла;
ра_ОбщегоНазначения.ОбработатьПустоеПредставление(Представление);
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТекущийЯзык() = Метаданные.Языки.Английский Тогда
Поля.Добавить("NaimenovanieEn");
Иначе
Поля.Добавить("Наименование");
КонецЕсли;
КонецПроцедуры
ПоказатьКак видно определяется по выбранному текущему языку.
Заказчик хочет ещё вносить данные по другому критерию, типа 3 наименования на АНГЛИЙСКОМ на разные зависящие от критерия типа
Если кто-то реализовывал, подкиньте идей. Самое главное что это должно отрабатывать в форме списка, а в каждой строке списка может быть своё значения реквизита для определения "диалекта".
ЗЫ: Уточнение, остался пока один реквизит из трёх, как пример: орг1 - Table, орг2 - Desk, орг3 - Platen.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ну как видится...
1. самое быстрое и простое решение - уже есть процедура ОбработкаПолученияПолейПредставления() и в ней отключена СтандартнаяОбработка - добавляете туда новые условия и возможно получится желаемое
2. не самое быстрое, но может быть правильное решение - завести регистр соответствий реквизитов и "диалектов" в зависимости от условия и определять нужный "диалект" по нему
ЗЫ не претендует на варианты к исполнению, т.к. с такими задачами не сталкивался и это просто мысли вслух...
1. самое быстрое и простое решение - уже есть процедура ОбработкаПолученияПолейПредставления() и в ней отключена СтандартнаяОбработка - добавляете туда новые условия и возможно получится желаемое
2. не самое быстрое, но может быть правильное решение - завести регистр соответствий реквизитов и "диалектов" в зависимости от условия и определять нужный "диалект" по нему
ЗЫ не претендует на варианты к исполнению, т.к. с такими задачами не сталкивался и это просто мысли вслух...
(2) 2. не самое быстрое, но может быть правильное решение - завести регистр соответствий реквизитов и "диалектов" в зависимости от условия и определять нужный "диалект" по нему - реализовано
1. самое быстрое и простое решение - уже есть процедура ОбработкаПолученияПолейПредставления() и в ней отключена СтандартнаяОбработка - добавляете туда новые условия и возможно получится желаемое -
а. не смог передать поле с ключём в ОбработкаПолученияПредставления, Данные имеют тип строка.
б. тк данные в регистре, не могу установить полем представления в функции ОбработкаПолученияПолейПредставления, возможно надо создавать табличные части объектов
1. самое быстрое и простое решение - уже есть процедура ОбработкаПолученияПолейПредставления() и в ней отключена СтандартнаяОбработка - добавляете туда новые условия и возможно получится желаемое -
а. не смог передать поле с ключём в ОбработкаПолученияПредставления, Данные имеют тип строка.
б. тк данные в регистре, не могу установить полем представления в функции ОбработкаПолученияПолейПредставления, возможно надо создавать табличные части объектов
(4) Пятница :(
У меня уже "мозг за разум зашёл".
Буду писать с самого начала, может у самого что прояснится в башке :)
1. Есть документ ПриходМатериалов, в котором указана организация Получатель - она же ключ.
2. При подборе материала в списке выбора НЕОБХОДИМО отразить наименование "диалект" на основании ключа. Можно принять в каждом документе только одна номенклатура.
3. Отчет по поступлениям (СКД), построенный по документам поступления должен отображать номенклатуру в отчете с учетом "диалекта" на основании ключа. Получается, что для каждой строки может быть свой ключ.
ВОПРОСЫ
1. Могу ли я добавить в ОбработкуПолученияПолейПредставления поле которого нет в справочнике Номенклатура, или его нужно обязательно создать?
2. Каким образом можно заполнить передаваемые данные из другого объекта? И вообще возможно ли это?
У меня уже "мозг за разум зашёл".
Буду писать с самого начала, может у самого что прояснится в башке :)
1. Есть документ ПриходМатериалов, в котором указана организация Получатель - она же ключ.
2. При подборе материала в списке выбора НЕОБХОДИМО отразить наименование "диалект" на основании ключа. Можно принять в каждом документе только одна номенклатура.
3. Отчет по поступлениям (СКД), построенный по документам поступления должен отображать номенклатуру в отчете с учетом "диалекта" на основании ключа. Получается, что для каждой строки может быть свой ключ.
ВОПРОСЫ
1. Могу ли я добавить в ОбработкуПолученияПолейПредставления поле которого нет в справочнике Номенклатура, или его нужно обязательно создать?
2. Каким образом можно заполнить передаваемые данные из другого объекта? И вообще возможно ли это?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот