Перед записью на сервере. Вызывается из обработчика ПередЗаписьюНаСервере формы объекта или при программной записи объекта
// Вызывается из обработчика ПередЗаписьюНаСервере формы объекта или при программной записи объекта
// для установки значений реквизитов формы в зависимости от языка, используемого при работе пользователя.
//
// Параметры:
// ТекущийОбъект - Произвольный - Записываемый объект.
//
Процедура ПередЗаписьюНаСервере(ТекущийОбъект) Экспорт
Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда
Возврат;
КонецЕсли;
Реквизиты = Новый Массив;
Для каждого Реквизит Из ТекущийОбъект.Ссылка.Метаданные().ТабличныеЧасти.Представления.Реквизиты Цикл
Если СтрСравнить(Реквизит.Имя, "КодЯзыка") = 0 Тогда
Продолжить;
КонецЕсли;
Реквизиты.Добавить(Реквизит.Имя);
КонецЦикла;
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ТекущийЯзык().КодЯзыка);
НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Представление = НайденныеСтроки[0];
Иначе
Представление = ТекущийОбъект.Представления.Добавить();
Представление.КодЯзыка = ТекущийЯзык().КодЯзыка;
КонецЕсли;
Для каждого ИмяРеквизита Из Реквизиты Цикл
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
КонецЦикла;
Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Для каждого ИмяРеквизита Из Реквизиты Цикл
ТекущийОбъект[ИмяРеквизита] = НайденныеСтроки[0][ИмяРеквизита];
КонецЦикла;
ТекущийОбъект.Представления.Удалить(НайденныеСтроки[0]);
КонецЕсли;
ТекущийОбъект.Представления.Свернуть("КодЯзыка", СтрСоединить(Реквизиты, ","));
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПередЗаписьюНаСервереФормыРедактированияРазрешенныхЗначений (БСП)
ПередЗагрузкойВариантаНаСервере (БСП)
ПередЗаписьюXDTOКонтактнаяИнформация (БСП)
ПередЗаписьюПользователяИБ (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)