Тип: Строка, Неопределено. Содержит код языка, строки на котором будут использоваться для вывода данного табличного документа в другой табличный документ. Свойство влияет на выбор языка, на котором будут получены и установлены строки табличного документа при получении строк из свойств Текст, Формат, ФорматРедактирования, Маска. В случае, когда свойство содержит значение Неопределено, код языка макета определяется из настроек текущего пользователя. Если для текущего пользователя не определен код языка, или пользователи не заданы, то код языка выбирается из свойства "Основной язык" конфигурации. Внимание! Значение данного свойства не сохраняется в следующих случаях: - при сохранении документа в двоичные данные, - при сохранении документа в файл.
Полное описание, параметры и ограничения
ТабличныйДокумент.КодЯзыка (SpreadsheetDocument.LanguageCode)
ТабличныйДокумент (SpreadsheetDocument)
КодЯзыка (LanguageCode)
Доступен, начиная с версии 8.3.7.
Использование:
Чтение и запись.
Описание:
Тип: Строка, Неопределено.
Содержит код языка, строки на котором будут использоваться для вывода данного табличного документа в другой табличный документ.
Свойство влияет на выбор языка, на котором будут получены и установлены строки табличного документа при получении строк из свойств Текст, Формат, ФорматРедактирования, Маска.
В случае, когда свойство содержит значение Неопределено, код языка макета определяется из настроек текущего пользователя. Если для текущего пользователя не определен код языка, или пользователи не заданы, то код языка выбирается из свойства "Основной язык" конфигурации.
Внимание! Значение данного свойства не сохраняется в следующих случаях:
- при сохранении документа в двоичные данные,
- при сохранении документа в файл.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.7.
Описание изменено в версии 8.3.23.
Методическая информация
Практические примеры
Показать собственный PDF в поле формы без временного файла
Из учебных ячеек формируем байты PDF в памяти, читаем их в ДокументPDF и связываем с полем. Проверяем масштаб и первую страницу, диагностически читаем состояние просмотра.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебныеПоляДокументов85 с пустой управляемой основной формой. Запускайте в тонком клиенте Windows; веб-клиент в этот урок не входит.
Не создавайте вручную УчебныйДокумент, ПолеДокумента или учебную команду. Модуль программно добавляет их при открытии формы.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код одного урока на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Поле связано с реквизитом УчебныйДокумент типа ДокументPDF. Объект документа содержит данные, элемент ПолеДокумента отвечает за отображение и пользовательские действия.
Документ создаётся заново из собственных констант. Книга: 3 штуки по 250, сумма 750. Реальные документы, справочники, файлы, сертификаты и сетевые адреса не используются.
Каждый урок запускайте в отдельной копии формы. Изменения текста и оформления живут в памяти открытой учебной формы; код не сохраняет документ в файл, не печатает и не пишет в базу.
Размеры и ограничения элемента задаются на сервере создания формы. Кнопка выполняет клиентские проверки или явно описанное учебное изменение.
Фактический вид и запуск в 1С не проверены. Настройки компоновки формы, масштаб интерфейса и версия клиента могут влиять на отображение; сверяйте его вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ДокументPDF")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
ЭтаФорма.УчебныйДокумент = ПрочитатьСобственныйДокумент(СоздатьСобственныеБайтыPDF());
Поле = Элементы.Добавить("ПолеДокумента", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеPDFДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.Масштаб = 100;
Поле.НомерТекущейСтраницы = 1;
Поле.Ориентация = 0;
Поле.Вывод = ИспользованиеВывода.Запретить;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить учебный документ";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.ПолеДокумента;
Сообщить(ТипЗнч(УчебныйДокумент) = Тип("ДокументPDF"));
Сообщить(Поле.Масштаб = 100);
Сообщить(Поле.НомерТекущейСтраницы = 1);
Сообщить(Поле.Ориентация = 0);
Сообщить("Положение состояния просмотра: " + Строка(Поле.ПоложениеСостоянияПросмотра));
Сообщить("Тип значения положения: " + Строка(ТипЗнч(Поле.ПоложениеСостоянияПросмотра)));
КонецПроцедуры
&НаСервереБезКонтекста
Функция СоздатьСобственныеБайтыPDF()
Таблица = Новый ТабличныйДокумент;
Таблица.КодЯзыка = "ru";
Таблица.Область(1, 1).Текст = "СОБСТВЕННЫЙ УЧЕБНЫЙ ОБРАЗЕЦ";
Таблица.Область(2, 1).Текст = "Книга";
Таблица.Область(2, 2).Текст = "3";
Таблица.Область(2, 3).Текст = "250";
Таблица.Область(2, 4).Текст = "750";
Таблица.Область(1, 1, 2, 4).ЦветФона = Новый Цвет(255, 255, 210);
Таблица.Область(, 1, , 1).ШиринаКолонки = 45;
Поток = Новый ПотокВПамяти;
Попытка
Таблица.Записать(Поток, ТипФайлаТабличногоДокумента.PDF);
Данные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Возврат Данные;
КонецФункции
&НаСервереБезКонтекста
Функция ПрочитатьСобственныйДокумент(Данные)
Поток = Данные.ОткрытьПотокДляЧтения();
Попытка
Документ = Новый ДокументPDF;
Документ.Прочитать(Поток);
Поток.Закрыть();
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Возврат Документ;
КонецФункции
Разбор по шагам
Собственный ТабличныйДокумент экспортируется в ПотокВПамяти, а не на диск. Исключение закрывает поток и передаётся вызывающему коду.
Второй поток открывается на полученных ДвоичныеДанные. ДокументPDF читает его и закрывает при успехе и ошибке.
После назначения УчебныйДокумент создаём поле с ВидПоляФормы.ПолеPDFДокумента и правильным путём к данным.
Масштаб 100 — дополнительный масштаб PDF относительно масштаба формы. Номер страницы начинается с 1; документ не пустой.
В установленном описании ПоложениеСостоянияПросмотра тип не указан. Поэтому читаем реальное значение и тип, не назначая выдуманное перечисление.
Как проверить результат
Ожидаются четыре Истина и две диагностические строки состояния. На форме должна быть учебная строка Книга / 3 / 250 / 750.
Откройте поток в отладчике: чтение закрыто, а PDF остаётся в реквизите формы. Файл PDF этим кодом не создаётся.
Ожидаемый результат
Полный маршрут собственного PDF до поля формы показан без зависимости от неизвестного файла.
На что обратить внимание
ДокументPDF и обычный элемент ПолеPDFДокумента — не одно и то же. Здесь управляемая форма использует ПолеФормы с соответствующим видом.
НомерТекущейСтраницы — единичная нумерация; 0 не является первой страницей.
Не выдавайте настройки просмотра за проверку электронной подписи или защиту PDF.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Настроить размеры PDF-поля и имя для возможного сохранения
Задаём размеры и максимумы поля. На клиенте только формируем собственное имя файла и запрещаем интерактивный вывод; документ по этому имени не записываем.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебныеПоляДокументов85 с пустой управляемой основной формой. Запускайте в тонком клиенте Windows; веб-клиент в этот урок не входит.
Не создавайте вручную УчебныйДокумент, ПолеДокумента или учебную команду. Модуль программно добавляет их при открытии формы.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код одного урока на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Поле связано с реквизитом УчебныйДокумент типа ДокументPDF. Объект документа содержит данные, элемент ПолеДокумента отвечает за отображение и пользовательские действия.
Документ создаётся заново из собственных констант. Книга: 3 штуки по 250, сумма 750. Реальные документы, справочники, файлы, сертификаты и сетевые адреса не используются.
Каждый урок запускайте в отдельной копии формы. Изменения текста и оформления живут в памяти открытой учебной формы; код не сохраняет документ в файл, не печатает и не пишет в базу.
Размеры и ограничения элемента задаются на сервере создания формы. Кнопка выполняет клиентские проверки или явно описанное учебное изменение.
Фактический вид и запуск в 1С не проверены. Настройки компоновки формы, масштаб интерфейса и версия клиента могут влиять на отображение; сверяйте его вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ДокументPDF")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
ЭтаФорма.УчебныйДокумент = ПрочитатьСобственныйДокумент(СоздатьСобственныеБайтыPDF());
Поле = Элементы.Добавить("ПолеДокумента", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеPDFДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.АвтоМаксимальнаяВысота = Ложь;
Поле.АвтоМаксимальнаяШирина = Ложь;
Поле.Высота = 18;
Поле.Ширина = 100;
Поле.МаксимальнаяВысота = 28;
Поле.МаксимальнаяШирина = 120;
Поле.РастягиватьПоВертикали = Истина;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.ЦветРамки = Новый Цвет(80, 105, 130);
Поле.Вывод = ИспользованиеВывода.Запретить;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить учебный документ";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.ПолеДокумента;
Поле.ИспользуемоеИмяФайла = КаталогВременныхФайлов() + "УчебныйПросмотрPDF_" + Строка(Новый УникальныйИдентификатор) + ".pdf";
Сообщить(Не Поле.АвтоМаксимальнаяВысота И Не Поле.АвтоМаксимальнаяШирина);
Сообщить(Поле.Высота = 18 И Поле.Ширина = 100);
Сообщить(Поле.МаксимальнаяВысота = 28 И Поле.МаксимальнаяШирина = 120);
Сообщить(Поле.РастягиватьПоВертикали И Поле.РастягиватьПоГоризонтали);
Сообщить(Поле.ЦветРамки = Новый Цвет(80, 105, 130));
Сообщить(Поле.Вывод = ИспользованиеВывода.Запретить);
Сообщить(СтрНайти(Поле.ИспользуемоеИмяФайла, "УчебныйПросмотрPDF_") > 0);
КонецПроцедуры
&НаСервереБезКонтекста
Функция СоздатьСобственныеБайтыPDF()
Таблица = Новый ТабличныйДокумент;
Таблица.КодЯзыка = "ru";
Таблица.Область(1, 1).Текст = "СОБСТВЕННЫЙ УЧЕБНЫЙ ОБРАЗЕЦ";
Таблица.Область(2, 1).Текст = "Книга";
Таблица.Область(2, 2).Текст = "3";
Таблица.Область(2, 3).Текст = "250";
Таблица.Область(2, 4).Текст = "750";
Таблица.Область(1, 1, 2, 4).ЦветФона = Новый Цвет(255, 255, 210);
Таблица.Область(, 1, , 1).ШиринаКолонки = 45;
Поток = Новый ПотокВПамяти;
Попытка
Таблица.Записать(Поток, ТипФайлаТабличногоДокумента.PDF);
Данные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Возврат Данные;
КонецФункции
&НаСервереБезКонтекста
Функция ПрочитатьСобственныйДокумент(Данные)
Поток = Данные.ОткрытьПотокДляЧтения();
Попытка
Документ = Новый ДокументPDF;
Документ.Прочитать(Поток);
Поток.Закрыть();
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Возврат Документ;
КонецФункции
Разбор по шагам
Отключаем автоматические максимумы и задаём явные ограничения до открытия клиентской формы.
Высота поля задаётся в строках, ширина и максимальные ограничения — в единицах, указанных в справке, не в пикселях.
Разрешаем растягивание и задаём цвет рамки. Фактический прямоугольник зависит также от компоновки формы.
КаталогВременныхФайлов берём на клиенте. Свой уникальный суффикс не зависит от имени рабочего документа.
ИспользуемоеИмяФайла — предложение для команды сохранения. Само присваивание не вызывает сохранение. Вывод.Запретить относится к интерактивным операциям поля.
Как проверить результат
Ожидаются семь Истина. Повторное нажатие меняет предложенное имя, но не создаёт PDF на диске.
Измените размеры окна и проверьте ограничение роста. Не нажимайте сохранение или печать: они не являются частью этого упражнения.
Ожидаемый результат
Настройки размера, имя сохранения и ограничение интерактивного вывода разобраны отдельно от файловых операций.
На что обратить внимание
ИспользованиеВывода.Запретить — настройка интерфейса, не серверная модель прав и не шифрование PDF.
Серверный временный каталог может отличаться от клиентского; имя для пользовательского сохранения здесь формируется на клиенте.
Нулевой максимум по справке снимает ограничение, а не задаёт нулевой размер поля.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.