#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Процедура ЗаполнитьПоставляемыеЯзыки() Экспорт
КодыЯзыков = Новый Массив;
КодыЯзыков.Добавить(ОбщегоНазначения.КодОсновногоЯзыка());
ДобавитьЯзыки(КодыЯзыков);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ДобавитьЯзыки(КодыЯзыков) Экспорт
Для Каждого КодЯзыка Из КодыЯзыков Цикл
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ЯзыкиПечатныхФорм");
ЭлементБлокировки.УстановитьЗначение("Код", КодЯзыка);
Блокировка.Заблокировать();
Если Не ЗначениеЗаполнено(Справочники.ЯзыкиПечатныхФорм.НайтиПоКоду(КодЯзыка)) Тогда
Язык = Справочники.ЯзыкиПечатныхФорм.СоздатьЭлемент();
Язык.Код = КодЯзыка;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Язык);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Функция ДоступныеЯзыки(СРегиональнымиНастройками = Ложь, ТолькоДополнительные = Ложь) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ЯзыкиПечатныхФорм.Код КАК Код
|ИЗ
| Справочник.ЯзыкиПечатныхФорм КАК ЯзыкиПечатныхФорм
|ГДЕ
| НЕ ЯзыкиПечатныхФорм.ПометкаУдаления
| И НЕ ЯзыкиПечатныхФорм.Код В (&СписокИсключений)
|
|УПОРЯДОЧИТЬ ПО
| ЯзыкиПечатныхФорм.РеквизитДопУпорядочивания,
| ЯзыкиПечатныхФорм.Ссылка";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("СписокИсключений", ?(ТолькоДополнительные,
СтандартныеПодсистемыСервер.ЯзыкиКонфигурации(), Новый Массив));
Языки = Запрос.Выполнить().Выгрузить();
Если Не СРегиональнымиНастройками Тогда
Для Каждого Язык Из Языки Цикл
Язык.Код = СтрРазделить(Язык.Код, "_", Истина)[0];
КонецЦикла;
Языки.Свернуть("Код");
КонецЕсли;
Возврат Языки.ВыгрузитьКолонку("Код");
КонецФункции
Функция ДополнительныеЯзыкиПечатныхФорм() Экспорт
Возврат ДоступныеЯзыки(Ложь, Истина);
КонецФункции
Функция ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка) Экспорт
Если Не ЗначениеЗаполнено(КодЯзыка) Тогда
Возврат Ложь;
КонецЕсли;
Возврат СтандартныеПодсистемыСервер.ЯзыкиКонфигурации().Найти(КодЯзыка) = Неопределено;
КонецФункции
#КонецОбласти
#КонецЕсли