Хранение данных на разных языках и "диалектах" их представление в пользовательском интерфейсе

1. babys 90 23.01.20 10:41 Сейчас в теме
Коллеги, вопрос родился неожиданно :(

Есть переписанный Документооборот рус+ анг, и вроде не было проблем, всех устраивало решение на 2-х языках. Но, как обычно Заказчик любит преподносить сюрпризы.

Напомню рус/анг наименование объекта в Документообороте реализовано так:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Для каждого КлючИЗнач из Данные Цикл
		Представление = КлючИЗнач.Значение;	
	КонецЦикла;
	
	ра_ОбщегоНазначения.ОбработатьПустоеПредставление(Представление);
	
КонецПроцедуры

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Если ТекущийЯзык() = Метаданные.Языки.Английский Тогда
		Поля.Добавить("NaimenovanieEn");	
	Иначе
		Поля.Добавить("Наименование");	
	КонецЕсли;
	
КонецПроцедуры
Показать


Как видно определяется по выбранному текущему языку.

Заказчик хочет ещё вносить данные по другому критерию, типа 3 наименования на АНГЛИЙСКОМ на разные зависящие от критерия типа МЕСТОПОЛОЖЕНИЕ / ПРЕДПРИЯТИЕ / ПРОЕКТ, т.е. некоторое подобие "диалектов".

Если кто-то реализовывал, подкиньте идей. Самое главное что это должно отрабатывать в форме списка, а в каждой строке списка может быть своё значения реквизита для определения "диалекта".

ЗЫ: Уточнение, остался пока один реквизит из трёх, как пример: орг1 - Table, орг2 - Desk, орг3 - Platen.
Найденные решения
13. babys 90 31.01.20 16:45 Сейчас в теме
Шайтанама :)

Решение есть таки:

ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

Описание:
Возникает на сервере перед стандартным формированием списка при вводе по строке, автоподборе текста и быстром выборе, а также при выполнении метода ПолучитьДанныеВыбора.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VictorRGB2 13 23.01.20 11:13 Сейчас в теме
ну как видится...
1. самое быстрое и простое решение - уже есть процедура ОбработкаПолученияПолейПредставления() и в ней отключена СтандартнаяОбработка - добавляете туда новые условия и возможно получится желаемое
2. не самое быстрое, но может быть правильное решение - завести регистр соответствий реквизитов и "диалектов" в зависимости от условия и определять нужный "диалект" по нему

ЗЫ не претендует на варианты к исполнению, т.к. с такими задачами не сталкивался и это просто мысли вслух...
3. babys 90 23.01.20 11:28 Сейчас в теме
(2) 2. не самое быстрое, но может быть правильное решение - завести регистр соответствий реквизитов и "диалектов" в зависимости от условия и определять нужный "диалект" по нему - реализовано

1. самое быстрое и простое решение - уже есть процедура ОбработкаПолученияПолейПредставления() и в ней отключена СтандартнаяОбработка - добавляете туда новые условия и возможно получится желаемое -
а. не смог передать поле с ключём в ОбработкаПолученияПредставления, Данные имеют тип строка.
б. тк данные в регистре, не могу установить полем представления в функции ОбработкаПолученияПолейПредставления, возможно надо создавать табличные части объектов
4. VictorRGB2 13 23.01.20 12:17 Сейчас в теме
(3) а) в ОбработкаПолученияПредставления() в Данные можно передавать структуру, что позволит и имя поля передать и ключ
б) тут мало вводных, чтобы что-то посоветовать, возможно и стоит создавать реквизиты
5. babys 90 24.01.20 12:37 Сейчас в теме
(4) Пятница :(
У меня уже "мозг за разум зашёл".

Буду писать с самого начала, может у самого что прояснится в башке :)

1. Есть документ ПриходМатериалов, в котором указана организация Получатель - она же ключ.
2. При подборе материала в списке выбора НЕОБХОДИМО отразить наименование "диалект" на основании ключа. Можно принять в каждом документе только одна номенклатура.
3. Отчет по поступлениям (СКД), построенный по документам поступления должен отображать номенклатуру в отчете с учетом "диалекта" на основании ключа. Получается, что для каждой строки может быть свой ключ.

ВОПРОСЫ
1. Могу ли я добавить в ОбработкуПолученияПолейПредставления поле которого нет в справочнике Номенклатура, или его нужно обязательно создать?
2. Каким образом можно заполнить передаваемые данные из другого объекта? И вообще возможно ли это?
6. VictorRGB2 13 24.01.20 14:02 Сейчас в теме
(5) 1. нельзя, действие применимо к объекту или ссылке, значит поле должно быть у объекта
2. через регистр соответствий, я не сильно понял тему, но могу предположить такую структуру ОбъектВладелец-КлючСвязи-ПредставлениеВДиалекте
7. acanta 24.01.20 14:37 Сейчас в теме
(6) а что мешает создать столько элементов в справочнике, сколько языков использовалось и настроить соответствия через регистр сведений, это же проще...
8. babys 90 24.01.20 15:07 Сейчас в теме
(7)Отчеты по обеспечению материалами :(
9. VictorRGB2 13 24.01.20 15:43 Сейчас в теме
(8) а если в лоб и по тупому?
в справочник внести столько наименований, сколько нужно отображений на разных языках и тупо отображать нужный реквизит, как при подборе, так и в отчетах и документах
10. acanta 24.01.20 15:44 Сейчас в теме
(9) не только наименования, характеристики, перечисления и т.п.
Проще же сделать риб на другом языке с той же конфигурацией и описать соответствия элементов при загрузке одноразово.
12. babys 90 28.01.20 11:03 Сейчас в теме
(10) К сожалению не проще, стоимость поддержки резко возрастает.
Учитывая наличие системы НСИ, где собственно и админится Номенклатура, и удаленный доступ на web интерфейс самой системы, риб как-то оченно сложно будет сопровождать.
11. acanta 24.01.20 23:21 Сейчас в теме
Хотя топик о документообороте, но во многих типовых есть единицы измерения и аналоги, которыми мало кто пользуется по той же причине.
13. babys 90 31.01.20 16:45 Сейчас в теме
Шайтанама :)

Решение есть таки:

ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

Описание:
Возникает на сервере перед стандартным формированием списка при вводе по строке, автоподборе текста и быстром выборе, а также при выполнении метода ПолучитьДанныеВыбора.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот