Создает описание типов на основании заданных типов и квалификаторов для типов Число, Строка, Дата.
Синтаксис
Новый ОписаниеТипов(<Типы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)Примеры платформы
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникСсылка.Номенклатура"));
МассивТипов.Добавить(Тип("Строка"));
ПараметрыСтроки = Новый КвалификаторыСтроки(20);
ДопустимыеТипы = Новый ОписаниеТипов(МассивТипов, , ПараметрыСтроки);Полное описание, параметры и ограничения
ОписаниеТипов.На основании типов и квалификаторов
ОписаниеТипов (TypeDescription)
На основании типов и квалификаторов
Доступен, начиная с версии 8.0.
Синтаксис:
Новый ОписаниеТипов(<Типы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)
Параметры:
<Типы> (обязательный)
Тип: Массив, Строка.
Массив значений типа Тип, состоящий из типов, которые будут использованы в объекте, или строка, содержащая имена типов, разделенных запятыми.
<КвалификаторыЧисла> (необязательный)
Тип: КвалификаторыЧисла.
Квалификаторы числа, описывающие допустимые значения числового типа. Если параметр не указан, то числа хранить нельзя.
<КвалификаторыСтроки> (необязательный)
Тип: КвалификаторыСтроки.
Квалификаторы строки, описывающие допустимые значения строкового типа. Если параметр не указан, то используется неограниченная длина строки.
<КвалификаторыДаты> (необязательный)
Тип: КвалификаторыДаты.
Квалификаторы даты, описывающие допустимые значения типа Дата. Если параметр не указан, то используются обе части даты (дата + время).
<КвалификаторыДвоичныхДанных> (необязательный)
Тип: КвалификаторыДвоичныхДанных.
Квалификаторы двоичных данных.
Описание:
Создает описание типов на основании заданных типов и квалификаторов для типов Число, Строка, Дата.
Пример:
// составной тип из строки и ссылки на справочник Номенклатуры.
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникСсылка.Номенклатура"));
МассивТипов.Добавить(Тип("Строка"));
ПараметрыСтроки = Новый КвалификаторыСтроки(20);
ДопустимыеТипы = Новый ОписаниеТипов(МассивТипов, , ПараметрыСтроки);
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Построить план/факт непосредственно из собственной таблицы значений
Первая колонка содержит названия точек, заголовки остальных колонок — названия серий. Отключаем автоматическое транспонирование, чтобы сохранять выбранный смысл осей.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В учебной базе создайте новую внешнюю обработку УчебнаяДиаграмма с пустой управляемой формой; назначьте форму основной.
Не создавайте реквизит График и поле ДиаграммаТоваров вручную: код создаёт их в ПриСозданииНаСервере.
В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Сохраните EPF и откройте её в учебном тонком клиенте Windows.
Каждый урок использует отдельный модуль/копию формы. Данные вымышлены: план и факт в штуках за три месяца, не данные учёта.
Обе числовые колонки используют один ОписаниеТипов с КвалификаторыЧисла(2, 0, Неотрицательный): целые количества 0–99. Все шесть чисел 10/12/15 и 8/11/16 входят в диапазон; формат подписи диаграммы не задаёт тип хранения.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("График", Новый ОписаниеТипов("Диаграмма")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Месяц", Новый ОписаниеТипов("Строка"), "Месяц");
ТипПоказателя = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(2, 0, ДопустимыйЗнак.Неотрицательный));
Таблица.Колонки.Добавить("План", ТипПоказателя, "План, шт.");
Таблица.Колонки.Добавить("Факт", ТипПоказателя, "Факт, шт.");
Январь = Таблица.Добавить();
Январь.Месяц = "Январь";
Январь.План = 10;
Январь.Факт = 8;
Февраль = Таблица.Добавить();
Февраль.Месяц = "Февраль";
Февраль.План = 12;
Февраль.Факт = 11;
Март = Таблица.Добавить();
Март.Месяц = "Март";
Март.План = 15;
Март.Факт = 16;
Диаграмма = Новый Диаграмма;
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
Диаграмма.АвтоТранспонирование = Ложь;
Диаграмма.СерииВСтроках = Ложь;
Диаграмма.ИсточникДанных = Таблица;
Сообщить(Диаграмма.Серии.Количество() = 2);
Сообщить(Диаграмма.Точки.Количество() = 3);
Сообщить(Диаграмма.Серии.Получить(0).Текст = "План, шт.");
Сообщить(Диаграмма.Точки.Получить(0).Текст = "Январь");
Сообщить(Диаграмма.ПолучитьЗначение(Диаграмма.Точки.Получить(2), Диаграмма.Серии.Получить(1)).Значение = 16);
Диаграмма.ОбластьЗаголовка.Текст = "План/факт из таблицы: месяцы — точки, показатели — серии";
Диаграмма.ОбластьПостроения.ОтображатьТаблицуДанных = Истина;
Диаграмма.ОбластьПостроения.ФорматВТаблицеДанных = "ЧДЦ=0;ЧН=0";
ЭтаФорма.График = Диаграмма;
Поле = Элементы.Добавить("ДиаграммаТоваров", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеДиаграммы;
Поле.ПутьКДанным = "График";
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
КонецПроцедуры
Разбор по шагам
Таблица принадлежит уроку и содержит только три вымышленные строки, без чтения учётных данных.
СерииВСтроках=Ложь означает серии в колонках: План и Факт. Первая колонка Месяц задаёт подписи точек.
ИсточникДанных заполняет диаграмму. АвтоТранспонирование=Ложь не позволяет смене типа диаграммы незаметно обменять смысл серий и точек.
Проверяем число осей данных, подписи и значение мартовского факта через ПолучитьЗначение(точка, серия).
Таблица под диаграммой делает контроль 10/12/15 и 8/11/16 доступным без оценки высоты столбцов.
Как проверить результат
Пять сравнений Истина; мартовский факт 16 расположен в третьей точке второй серии.
На форме два показателя и три месяца. Первая колонка не создаёт третью числовую серию.
Ожидаемый результат
Показан конкретный контракт табличного источника и проверена ориентация данных.
На что обратить внимание
Заголовок колонки и её техническое имя — разные свойства. Название серии берётся из заголовка.
Не считайте источник «живым запросом»: при изменении данных выполните явное обновление диаграммы и контроль результата.
Обновление=Ложь не ускоряет управляемую форму; этот механизм рассчитан на неуправляемые формы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Прочитать другую форму таблицы: показатели в строках, месяцы в колонках
СерииВСтроках меняет контракт источника, а не только расположение подписей. Создаём таблицу, соответствующую этому контракту.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В учебной базе создайте новую внешнюю обработку УчебнаяДиаграмма с пустой управляемой формой; назначьте форму основной.
Не создавайте реквизит График и поле ДиаграммаТоваров вручную: код создаёт их в ПриСозданииНаСервере.
В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Сохраните EPF и откройте её в учебном тонком клиенте Windows.
Каждый урок использует отдельный модуль/копию формы. Данные вымышлены: план и факт в штуках за три месяца, не данные учёта.
Три колонки месяцев имеют одинаковый числовой тип: 2 разряда, 0 дробных, неотрицательный знак, диапазон 0–99. Общий ТипПоказателя применяется ко всем месяцам; он допускает все шесть значений, включая 16.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("График", Новый ОписаниеТипов("Диаграмма")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Показатель", Новый ОписаниеТипов("Строка"), "Показатель");
ТипПоказателя = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(2, 0, ДопустимыйЗнак.Неотрицательный));
Таблица.Колонки.Добавить("Январь", ТипПоказателя, "Январь");
Таблица.Колонки.Добавить("Февраль", ТипПоказателя, "Февраль");
Таблица.Колонки.Добавить("Март", ТипПоказателя, "Март");
СтрокаПлана = Таблица.Добавить();
СтрокаПлана.Показатель = "План, шт.";
СтрокаПлана.Январь = 10;
СтрокаПлана.Февраль = 12;
СтрокаПлана.Март = 15;
СтрокаФакта = Таблица.Добавить();
СтрокаФакта.Показатель = "Факт, шт.";
СтрокаФакта.Январь = 8;
СтрокаФакта.Февраль = 11;
СтрокаФакта.Март = 16;
Диаграмма = Новый Диаграмма;
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
Диаграмма.АвтоТранспонирование = Ложь;
Диаграмма.СерииВСтроках = Истина;
Диаграмма.ИсточникДанных = Таблица;
Сообщить(Диаграмма.Серии.Количество() = 2);
Сообщить(Диаграмма.Точки.Количество() = 3);
Сообщить(Диаграмма.Серии.Получить(1).Текст = "Факт, шт.");
Сообщить(Диаграмма.Точки.Получить(2).Текст = "Март");
Сообщить(Диаграмма.ПолучитьЗначение(Диаграмма.Точки.Получить(2), Диаграмма.Серии.Получить(1)).Значение = 16);
Диаграмма.ОбластьПостроения.ОтображатьТаблицуДанных = Истина;
Диаграмма.ОбластьЗаголовка.Текст = "Тот же план/факт из таблицы с сериями в строках";
ЭтаФорма.График = Диаграмма;
Поле = Элементы.Добавить("ДиаграммаТоваров", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеДиаграммы;
Поле.ПутьКДанным = "График";
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
КонецПроцедуры
Разбор по шагам
Создаём две строки-показателя и три колонки-месяца, а не переиспользуем таблицу из предыдущего урока без преобразования.
СерииВСтроках=Истина берёт подписи серий из первой колонки, а подписи точек из заголовков остальных колонок.
Свойство задаём ДО ИсточникДанных. Числовая матрица должна дать тот же результат, что и вариант серий в колонках.
Через коллекции получаем факт и март и проверяем значение 16; таблица под графиком помогает сравнить обе версии.
Как проверить результат
Пять сообщений Истина: две серии, три точки, правильные подписи и мартовский факт 16.
Визуально оба урока показывают одинаковые шесть чисел, хотя источники имеют разную структуру.
Ожидаемый результат
Ориентация источника выбирается сознательно и проверяется по подписи и значению.
На что обратить внимание
Просто переключить СерииВСтроках у неподходящей таблицы — не корректное преобразование отчёта.
Не выводите рядом несопоставимые единицы измерения как одинаковые числовые серии без отдельных шкал.
Автоматическое транспонирование и СерииВСтроках решают разные задачи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.