ПередЗаписьюНаСервере (БСП)

Автор: 1С
ОбщийМодуль.ЛокализацияСервер
БСП

Перед записью на сервере. Вызывается из обработчика ПередЗаписьюНаСервере формы объекта или при программной записи объекта

// Вызывается из обработчика ПередЗаписьюНаСервере формы объекта или при программной записи объекта
// для установки значений реквизитов формы в зависимости от языка, используемого при работе пользователя.
//
// Параметры:
//  ТекущийОбъект - Произвольный - Записываемый объект.
//
Процедура ПередЗаписьюНаСервере(ТекущийОбъект) Экспорт
	
	Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда
		Возврат;
	КонецЕсли;
	
	Реквизиты = Новый Массив;
	Для каждого Реквизит Из ТекущийОбъект.Ссылка.Метаданные().ТабличныеЧасти.Представления.Реквизиты Цикл
		Если СтрСравнить(Реквизит.Имя, "КодЯзыка") = 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КонтактнаяИнформация (БСП)

ПередЗаписьюПользователяИБ (БСП)

ПередЗаписьюСообщения (БСП)

ПолныйПутьКФормеПередЗаписьюПередЗаписью (БСП)

ПередЗаписьюВзаимодействияИзФормы (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз