1с встроенная функция может быть использована только в выражении формат

Обновлено: 04.07.2024

Описание:
Оператор Если управляет выполнением программы, основываясь на результаты одного или более логических выражений. Оператор может содержать любое количество групп операторов, возглавляемых конструкциями ИначеЕсли – Тогда.
Синтаксис:
Если < Логическое выражение > Тогда
// Операторы
[ ИначеЕсли < Логическое выражение > Тогда ]
// Операторы
[ Иначе ]
// Операторы
КонецЕсли ;
Англоязычный синтаксис:
If < Логическое выражени е> Then
// Операторы
[ElsIf < Логическое выражение > Then ]
// Операторы

[Else ]
// Операторы
EndIf ;
Параметры:

Новый (New)

Пример:
// Пример создания массива из трех элементов.
Массив = Новый Массив(3);

Синтаксис (вариант 2):
Новый ( <Тип>[, <Параметры конструктора> ])
Параметры:

Перейти (Goto)

Описание:
Безусловная передача управления на другой оператор программы. Передает управление от одного оператора к другому.
Область действия оператора ограничивается программным модулем, процедурой или функцией; он не может передать управление за пределы программного модуля, процедуры или функции.
Примечание 1. Метка в этом операторе не должна быть меткой перехода на оператор Процедура или Функция.
Примечание 2. Оператор безусловного перехода не может быть использован для передачи управления на операторы, находящиеся внутри конструкций:
Пока – КонецЦикла, Для – КонецЦикла, Для каждого – КонецЦикла, Если – КонецЕсли, Попытка – Исключение – КонецПопытки извне этих конструкций.
Синтаксис:
Перейти < Метка >;
Пример:

Перем (Var)

Описание:
Позволяет в явном виде объявить переменную.
Синтаксис:
Перем < Имя переменной 1 > [Экспорт] [, < Имя переменной 2 >, …];
Англоязычный синтаксис:
Var < Имя переменной 1 > [ Export] [, < Имя переменной 2 >, …];
Параметры:

// Пример объявления одной переменной
Перем А Экспорт ;
Перем Б ;
// Пример объявления нескольких переменных одним оператором
Перем А, Б Экспорт;
Неявное объявление переменных:
В языке необязательно объявлять переменные в явном виде. Неявным определением переменной является первое ее появление в левой части
оператора присваивания. Тип переменной определяется типом присвоенного ей значения. Не допускается использование в выражениях переменных, не
объявленных ранее в явном или неявном виде.
Область использования переменной:
Область использования переменных зависит от места их определения в конфигурации. Существует три области, в которых можно объявить
переменные:
● В разделе определения переменных программного модуля управляемого приложения. Это глобальные переменные.
● В разделе определения переменных модуля. Это переменные модуля.
● В процедуре или функции. Это локальные переменные.
Глобальные переменные, объявленные с ключевым словом Экспорт, доступны для использования в исполняемых операторах, выражениях, в любой процедуре и функции любого клиентского программного модуля конфигурации.
Переменные модуля доступны для использования в исполняемых операторах, выражениях, в любой процедуре и функции того программного модуля, в пределах которого они объявлены. Если они объявлены с ключевым словом Экспорт, то они доступны из других модулей через контекст модуля, в котором они объявлены.
Локальные переменные доступны в пределах той процедуры или функции, в которой они объявлены.
Если переменная определена как глобальная, то она видна из всех процедур и функций любого клиентского программного модуля конфигурации. Если же переменная определена внутри процедуры, то ее областью видимости является данная процедура или функция.

Таким образом, если две переменные с одинаковыми именами используются в двух различных процедурах модуля и имя этой переменной не упоминается как глобальное, то это две различные переменные, локальные для процедур. Если же переменная определена как глобальная переменная, то любое использование имени этой переменной будет приводить к обращению к одной и той же переменной.
Единственный способ создать для процедуры локальную переменную с именем, совпадающим с именем переменной, определенной как глобальная, – это объявить ее явно при помощи оператора Перем.

Пока (While)

Описание:
Оператор цикла Пока предназначен для циклического повторения операторов, находящихся внутри конструкции Цикл – КонецЦикла. Цикл выполняется,
пока логическое выражение равно Истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.
Синтаксис:
Пока < Логическое выражение > Цикл
// Операторы
[ Прервать ;]
// Операторы
[ Продолжить; ]
// Операторы
КонецЦикла
Англоязычный синтаксис:
While < Логическое выражение > Do
// Операторы
[Break;]
// Операторы
[ Continue;]
// Операторы
EndDo;
Параметры:

Попытка (Try)

Описание:
Оператор Попытка управляет выполнением программы, основываясь на возникающих при выполнении модуля ошибочных (исключительных) ситуациях,
и определяет обработку этих ситуаций.
В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.
КонецПопытки оператор. Если же последовательность операторов попытки выполнилась без ошибок, то последовательность операторов исключения будет пропущена и управление также будет продолжено с оператора, следующего за ключевым словом КонецПопытки.
Конструкции Попытка – Исключение – КонецПопытки могут быть вложенными. При этом при возникновении исключительной ситуации управление передается на тот обработчик, в попытке которого произошла ошибка. Если же в последовательности операторов исключения этого обработчика выполняется оператор ВызватьИсключение , выполнение передается вышестоящему обработчику исключения и так далее. Если вышестоящего обработчика нет, исключительная ситуация обрабатывается системно с прекращением выполнения программного модуля.
В выдаче диагностики помощь могут оказать встроенные функции ОписаниеОшибки() и ИнформацияОбОшибке() (см. описание функций встроенного языка). Также следует учитывать, что попадание во вложенный обработчик исключения приводит к тому, что информация о «родительском» исключении теряется.
С помощью конструкции Попытка – Исключение – КонецПопытки не могут быть перехвачены следующие ошибки:
● Ошибки компиляции модулей встроенного языка во время исполнения.
● Ошибки времени исполнения, возникающие в обработчиках ПередЗакрытием() и ПриЗакрытии() управляемой формы.
Такие ошибки всегда будет отображаться системой «1С:Предприятие» и приводить к прекращению выполнения встроенного языка.
Синтаксис:
Попытка
// Операторы попытки
Исключение
// Операторы исключения
[ ВызватьИсключение ;]
// Операторы исключения
КонецПопытки;
Англоязычный синтаксис:
Try
// Операторы попытки
Except
// Операторы исключения
[ Raise ;]
// Операторы исключения
EndTry;
Параметры:

Процедура (Procedure)

Описание:
Ключевое слово Процедура начинает секцию исходного текста, выполнение которого можно инициировать из любой точки программного модуля, просто указав ИмяПроцедуры() с о списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в модуле приложения или общем программном модуле в теле описания процедуры использовано ключевое слово Экспорт, то это означает, что данная процедура является доступной из всех других программных модулей конфигурации.
При выполнении оператора Возврат процедура заканчивается и возвращает управление в точку вызова. Если в тексте процедуры не встретился оператор Возврат, то после выполнения последнего исполняемого оператора происходит выполнение неявного оператора Возврат. Конец программной секции процедуры определяется по оператору КонецПроцедуры .
Переменные, объявленные в теле процедуры в разделе Объявления локальных переменных, являются локальными переменными данной процедуры, поэтому доступны только в этой процедуре (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).
ПРИМЕЧАНИЕ. Ключевые слова Процедура , КонецПроцедуры являются не операторами, а операторными скобками, поэтому не должны заканчиваться точкой с запятой (это может приводить к ошибкам выполнения модуля).

Перем Глоб ;
// Описание процедуры
Процедура МояПроцедура(Пар1, Пар2, Пар3) Экспорт
Глоб = Глоб + Пар1 + Пар2 + Пар3 ;
Возврат;
КонецПроцедуры
Глоб = 123;
МояПроцедура(5, 6, 7); // Вызов процедуры

УдалитьОбработчик (RemoveHandler)

Описание:
Удаляет обработчик события.
При удалении обработчика события производится проверка соответствия числа параметров события числу параметров метода, назначенного в качестве
обработчика.
Синтаксис:
УдалитьОбработчик <Событие>, <ОбработчикСобытия>;
Англоязычный синтаксис:
RemoveHandler <Событие>, <ОбработчикСобытия>;
Параметры:

УдалитьОбработчик Накладная.ПриЗаписи, Обработка.ПриЗаписиДокумента;

Функция (Function)

Описание:
Ключевое слово Функция начинает секцию исходного текста функции, выполнение которой можно инициировать из любой точки программного модуля,
просто указав ИмяФункции со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в модуле приложения или общем программном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная функция является доступной из всех других программных модулей конфигурации.
Выполнение функции заканчивается оператором Возврат . Функции отличаются от процедур только тем, что возвращают ВозвращаемоеЗначение . Конец
программной секции функции определяется по оператору КонецФункции.
Вызов любой функции в тексте программного модуля можно записывать как вызов процедуры, т. е. в языке допускается не принимать от функции
возвращаемое значение.
Если ключевое слово Возврат в теле функции не указано или строка модуля, его содержащая, не выполнена, то функция возвращает значение типа Неопределено.
Переменные, объявленные в теле функции в разделе Объявления локальных переменных, являются локальными переменными данной функции, поэтому доступны только в этой функции (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).
ПРИМЕЧАНИЕ. Ключевые слова Функция, КонецФункции являются не операторами, а операторными скобками, поэтому не должны заканчиваться точкой с запятой (это может приводить к ошибкам выполнения модуля).
Синтаксис:

Пример:
Перем Глоб;
// Описание функции
Функция МояФункция(Пар1, Пар2, Пар3) Экспорт
Глоб = Глоб + Пар1 + Пар2 + Пар3;
Возврат Глоб ;
КонецФункции
Глоб = 123;
Рез = МояФункция(5, 6, 7) ; / / Вызов функции

Анна Викулина

Основные типы данных в 1С – число, булево и дата, могут быть представлены множеством форматов. Программисты часто сталкиваются с тем, что требования к виду данных сильно различаются в разных отчетах и таблицах. Разработчики 1С подумали об удобстве программистов и создали специальную функцию, существенно облегчающую процесс изменения внешнего вида данных. Основная задача функции – привести число, дату или логический тип к нужному виду строкового типа.

Описание функции «Формат»

Синтаксис данной функции прост – в качестве параметров вы можете передать два параметра. Сначала разработчик указывает значение, которое должно подвергнуться форматированию. Чтобы 1С поняла, как нужно изменить значение, программист указывает второй параметр в виде строкового значения, содержащего предопределенные операнды. Именно значение этой строки и определяет, какими предстанут перед пользователями данные в отчете.

Если параметр «ФорматнаяСтрока» не задан, то 1С преобразует заданное значение в строку. Помните, что пустая дата и 0 будут преобразованы к пустой строке, что может не понравиться пользователям. Каждый параметр в форматной строке представляет собой комбинацию из наименования, символа «=» и значения, указываемого в кавычках. Это позволяет предусматривать вкрапление символов, используемых в написании форматной строки функции Формат в 1С.

В отображение данных вы можете вставить произвольный символ за исключением используемых в синтаксисе написания форматной строки. Если есть необходимость обойти это ограничение – используйте одинарные кавычки. Это решение также поможет в ситуациях, когда символ может быть истолкован компилятором неверно.

Для удобства разработчиков в 1С встроен конструктор форматной строки. К нему можно обратиться в модулях через контекстное меню или в СКД через предусмотренные разработчиками места. К примеру, такую возможность можно обнаружить в списке полей для запроса в разделе «Оформление».

Самое важное преимущество конструктора в том, что вы сразу же можете увидеть, как будут в итоге выглядеть ваши данные. После того как вы выставили необходимые настройки по конкретному типу данных в разделе «Пример», вам демонстрируют результат ваших установок. В безымянном текстовом поле внизу вы обнаружите форматную строку, с помощью которой получен результат. Ее можно скопировать и использовать в дальнейшем, если результат вас полностью устроит.

Конструктор форматной строки может стать отличным подспорьем начинающим разработчикам, но опытные программисты предпочитают не тратить время на него. Разработка пойдет намного быстрее, если вы будете знать основные ключевые параметры форматной строки и использовать их без вызова конструктора.

Основные параметры форматной строки

Изучить все доступные команды не получится, и в этом нет необходимости. Разработчику достаточно лишь знать некоторые популярные операции и как их применять. В любой момент вы сможете в синтакс-помощнике открыть полный перечень параметров форматной строки и выбрать нужный. Программисту 1С могут пригодиться в ежедневной работе следующие параметры:

  • Л – формат страны, для представителей которой будут выводиться данные;
  • ЧГ – задает группировку разрядов числа;
  • ЧЦ – устанавливает общее количество групп символов целой и дробной части числа, которые будут выводиться на просмотр. Если в форматной строке с этим ключом не задано значение параметра ЧДЦ, то дробная часть не будет показана;
  • ЧДЦ – параметр, задающий число символов в части числа после запятой. Округление происходит в соответствии со стандартными правилами математики;
  • ЧС – параметр, сдвигающий разряды числа. Значение может быть положительным – умножение на 10, или отрицательным – деление. Полезная команда, если вам нужно вывести в одном виде, а продолжить работу с числом в другом;
  • ЧРД – задает символ, разделяющий дробную и целую части числа. Чтобы установить символ, разделяющий группы целой части, используйте «ЧРГ». Для применения неразрывного пробела используйте пустую строку;
  • ЧВН – показывает использование лидирующих нулей. Значение этого параметра не задается;
  • ДФ – один из самых часто встречаемых параметров форматной строки. Управляет форматом даты. В 1С с помощью команды «Формат» можно вывести дату практически в любом формате, включая написание названия месяца. Возможных значений много, их перечень можно увидеть в синтакс-помощнике;
  • БЛ и БИ – устанавливают представление для логического типа данных, отвечая, соответственно, за ложь и истину. Таким образом, стандартную «галочку» вы сможете заменить любым словом или фразой, более доходчивой для пользователей.

Универсализм и удобство конструктора стали ключевыми причинами популярности функции «Формат» среди разработчиков 1С. Гибкие настройки помогут вам задать любой внешний вид данным по желанию клиента. Если у вас остались вопросы по работе с функцией «Формат», обратитесь к нашим специалистам, которые не только дадут консультации по программе 1С 8.3, но и окажут услуги по сопровождению программных продуктов 1С в случае необходимости.

Gigi --> Gigi



Просмотр профиля

К этому мне ничего еще добавить. Поэтому воздержусь . Ибо на счет "возможностей" функции "ТипЗнч()", об этом, думаю сами эти строки кода скажут лучше всяких слов.
Так что, на этот раз решил не задавать вопросы, а просто высказать мнение .
Ладно . вот собственно и все.

pablo --> pablo



Просмотр профиля Правильно поставленный вопрос содержит до 90% ответа. Gigi --> Gigi



Просмотр профиля pablo @ Сегодня, 14:11 ,
Да ладно . какой инструмент лично для меня не важен..
Важен только результат.
Открывалка, ложка, или край угла столика. Не важно. Главное открыть бутылку
А так, я понимаю, что наверняка есть причины почему так в системной функции. Но не знаю . я вообще нашел ее в СП только потому что была нужна для конкретней цели.
И я знаю только то что эту цель она НЕ УДОВЛЕТВОРИЛА. Именно поэтому пришлось XML припихнуть. И слава богу что система понимает его.
Ладно . это я так решил поделиться. И никого я не учу . и не претендую на сто процентную правоту.
Просто выразил мнение и не более.
Вот и все дела.
Petre --> Petre



Просмотр профиля Наверное, я один настолько ущербный, что ничего не понял из этого потока сознания. Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". Gigi --> Gigi



Просмотр профиля Наверное, я один настолько ущербный, что ничего не понял из этого потока сознания. Petre --> Petre



Просмотр профиля Тоже решил поделиться. Вот, пожалуйста, юзайте (и намного короче):
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". Gigi --> Gigi



Просмотр профиля Тоже решил поделиться. Вот, пожалуйста, юзайте (и намного короче):

Это для теста.
Можете проверить, эту аж до смеха простую функцию…. без проблем…. вставив код в любую кнопку в элементе справочника или дока. И то, что выдаст функция это и будет ответ на то, что было нужно от СИСТЕМНОЙ функции ТипЗнч().
И сама функция названа «ПоЗначению», а не на пример: «ТипПоЗначению», не случайно.
Так как, во-первых само название общего модуля и текст вызова функции итак говорит о чем речь «Config_Тип.ПоЗначению». Во-вторых по типам данных такой же как с системной функцией: «ТипЗнач()», это ведь не единственный гем в системе 1С. Естественно. Есть и другой гемор. Именно поэтому там же, в том же модуле: «Config_Тип» пришлось прописать уже другую функцию : )) Только на этот раз функция уже называется не «ПоЗначению», а «ПоРеквизиту».
Вот эту:

Gigi --> Gigi



Просмотр профиля Gigi @ Вчера, 19:39 ,
Стоп… посчитал необходимым добавить дополнение к сказанному выше.
Потому что в функции «ПоРеквизиту», ошибка. Вернее не совсем ошибка, а там где то нужно кое-что добавить, а где то присутствуют не нужные и не уместные строки кода, которые нужно убрать.
Гуу … короче гем …
Поэтому вот более правильный вариант:
Но все это работает не на все случая. И нуждается в доработке. Но лично мне и этого хватало для нужд.
А по поводу функции ТипЗнч(), начинающим в системе 1С рекомендую создать две кнопки на форме на пример справочника. Одну кнопку назвать «СистемнаяФункцияТипЗнач», а вторую, назвать на пример: «Кустарщина». Можете смело так назвать. Я не обижусь )).
И в каждой кнопке прописать следующее:

И сделав так запустить режим 1С предприятия и нажать сперва на первую кнопку, а потом на вторую. И тем самым увидеть, разницу между системной функцией и «кустарщиной».

getnight --> getnight



Просмотр профиля

Gigi @ Сегодня, 10:40 ,
Друг. кто ясно мыслит, тот ясно выражается. У меня пошла из мозга кровь, когда я начал читать.

Возможно, вы придумали что-то гениальное.
Но люди, которые посещают специализированные форумы - в основном люди, которым нужна помощь или люди, которые хотят чем-то помочь, или люди, которые хотят найти что-то новенькое.
В любом случае, нужно уважать их время. Нельзя все ваши эмоции выплескивать на людей, как кипяток.

Попробуйте структурировать свои мысли:

1. Суть проблемы
2. Стандартные (существующие) решения, их недостатки для вашего конкретного случая
3. Ваше решение
4. Примеры использования

П.С. не забывайте, что ваша конфигурация - это только ваша конфигурация, поэтому если используете какой-нибудь личный модуль, приводите его текст тоже.
При всём желании разобраться, натыкаясь на участки кода, ссылающиеся на ЭтоМояМегаКрутаяФункция(Параметр1, Параметр2) без приведения текста самой функции, я автоматически закрываю тему.
В данном случае решил всё-же написать вам, т.к. узнал вас по нику (несколько лет назад уже попадал на вас с точно такими же эмоциями) и есть желание донести до вас свои пожелания. Спасибо.

Цитата(Petre @ 18.10.19, 15:01)
Наверное, я один настолько ущербный, что ничего не понял из этого потока сознания. Gigi --> Gigi



Просмотр профиля
Уверяю Вас … я ничего не понял. .. о каком потоке идет речь.
Нельзя все ваши эмоции выплескивать на людей, как кипяток..
Спасибо Вам большое друг … , возьму на вооружение. .. Вы правы не стоит так . Говорю без иронии. И в этом согласен .. иногда перебарщиваю.. на самом деле.. Извините.
Однако Вы знаете, как поступим…
Это я шас по поводу:
1. Суть проблемы
2. Стандартные (существующие) решения, их недостатки для вашего конкретного случая
3. Ваше решение
4. Примеры использования

Ладно . не буду дальше.
Поэтому не буду задавать никаких вопросов.
А скажу так в качестве совета .
Друг …Возьмите одну системную функцию на пример вот эту:

Встроенный язык является важной частью технологической платформы 1С:Предприятия 8.0, поскольку позволяет разработчику описывать собственные алгоритмы функционирования прикладного решения.

Встроенный язык имеет много общих черт с другими языками, такими как Pascal , Java Script , Basic , что облегчает его освоение начинающими разработчиками. Однако он не является прямым аналогом какого-либо из перечисленных языков.

Вот лишь некоторые, наиболее значимые особенности встроенного языка:

  • предварительная компиляция; перед исполнением модули, содержащие текст на встроенном языке, преобразуются во внутренний код;
  • кэширование скомпилированных модулей в памяти;
  • мягкая типизация - тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы;
  • отсутствие программного описания объектов конфигурации; разработчик может использовать либо встроенные в платформу объекты, либо объекты, созданные системой в результате визуального конструирования прикладного решения.

Событийная ориентированность встроенного языка. Назначение встроенного языка в системе 1С:Предприятие определяется идеологией создания прикладных решений. Прикладные решения в 1С:Предприятии 8.0 не кодируются целиком. Большая часть прикладного решения создается разработчиком путем визуального конструирования - создания новых объектов конфигурации, задания их свойств, форм представления, взаимосвязей и пр. Встроенный язык используется лишь для того, чтобы определить поведение объектов прикладного решения, отличное от типового, и создать собственные алгоритмы обработки данных.

По этой причине модули, содержащие текст на встроенном языке, используются системой в конкретных, заранее известных ситуациях, которые могут возникнуть в процессе работы прикладного решения. Такие ситуации называются событиями. События могут быть связаны с функционированием объектов прикладного решения или с самим прикладным решением, как таковым.

Например, с функционированием объекта прикладного решения Справочник связан ряд событий, среди которых есть событие ПередЗаписью. Это событие возникает непосредственно перед тем, как данные элемента справочника должны быть записаны в базу данных. Разработчик, используя встроенный язык, может описать алгоритм , который, например, будет проверять корректность данных, введенных пользователем. Разместив этот алгоритм в соответствующем модуле, разработчик обеспечит то, что каждый раз, как пользователь будет выполнять запись элемента справочника, система будет выполнять созданный разработчиком алгоритм и проверять, не забыл ли пользователь заполнить обязательные реквизиты справочника.


Таким образом можно сказать, что встроенный язык является скриптовым языком для программирования бизнес-логики, а использование модулей на встроенном языке является событийно-зависимым, т.е. выполнение модулей происходит при возникновении определенных событий в процессе функционирования прикладного решения.

Предопределенные типы данных

Платформа 1С:Предприятия 8.0 позволяет разработчику использовать различные типы данных.

Существует большое количество типов данных, которые определены на уровне самой платформы. Например, это примитивные типы данных , такие как строка, число, дата и пр.


Описание примитивных типов данных :

  • NULL - отсутствующее значение. Используется, например, в запросах.
  • Неопределено - пустое, неопределенное значение. Используется, например, при оценке передачи параметров, в том случае, если при вызове процедуры или функции данный параметр опущен. Реквизиты, имеющие составной тип данных, по умолчанию имеют тип "Неопределено".
  • Булево - содержит два значения: Истина или Ложь. Используется, например, в логических выражениях - логическое выражение имеет тип "Булево".
  • Дата - содержит дату и время. По умолчанию имеет значение - 01.01.01 00:00:00 дата начала нашей эры. Время измеряется от начала дня. Запись выражения, имеющего литерал типа "дата", осуществляется следующим образом - '00010101000000'. Сначала записывается год, потом месяц, потом число и потом время. Возможна следующая запись: '20041031'. Время по умолчанию - начало дня.
  • Строка - бывает переменной, фиксированной и неограниченной длины. В общем случае рекомендуется использовать строки переменной длины.
  • Число - увеличена разрядность числа до 38 разрядов.
  • Тип - служит для определения типов значений. Используется, например, для сравнения типов данных. Не имеет литералов и возвращается функциями Тип(<Имя типа>) или ТипЗнч(<Значение>).

Также, существуют более сложные типы данных . Например, платформа поддерживает целый ряд типов, которые представляют собой универсальные коллекции значений: массив , структура, список значений, дерево значений и т.д.


Типы данных "Универсальные коллекции" - список (набор) объектов данных любых типов, к значениям которого можно обратиться перебором или по указанному индексу (ключу). Нумерация элементов коллекций начинается с 0. Все указанные типы данных создаются только программно.

Массив. Представляет собой пронумерованную коллекцию значений произвольного типа. К элементу массива можно обращаться по его индексу. В качестве элементов массива могут выступать, в частности, другие массивы. Это позволяет создавать многомерные массивы.

Структура. Представляет собой поименованную коллекцию, состоящую из пар Ключ - Значение . Ключ может быть только строковым, значение - произвольного типа. К элементу структуры можно обращаться по значению его ключа, т.е. по имени. Обычно используется для хранения небольшого количества значений, каждое из которых имеет некоторое уникальное имя.

Соответствие. Также как и Структура, представляет собой коллекцию пар Ключ - Значение . Однако, в отличие от Структуры, ключ может быть практически любого типа.

Список значений. Используется, как правило, для решения интерфейсных задач. Позволяет строить динамические наборы значений и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Он может содержать значения любого типа, кроме того, в одном списке типы хранимых значений могут быть разными.

Таблица значений. Таблица значений позволяет строить динамические наборы значений и манипулировать ими. Она может быть наполнена значениями любого типа, и в одной таблице типы хранимых значений могут быть разными.

Дерево значений. Дерево значений представляет собой динамически формируемый набор значений любого типа, похожий на таблицу значений. В отличие от таблицы значений, строки дерева значений могут образовывать иерархические структуры: каждая строка дерева может иметь набор подчиненных строк, каждая из подчиненных строк, в свою очередь , также может иметь набор подчиненных строк и так далее. При этом поиск значений, сортировка , получение итогов могут осуществляться либо по текущему уровню иерархии, либо включая все подчиненные.

COMSafeArray. Представляет собой объектную оболочку над многомерным массивом SAFEARRAY из COM . Позволяет создавать и использовать SAFEARRAY для обмена данными между COM -объектами.

ФиксированныйМассив. Неизменяемый массив . Массив заполняется системой при инициализации объектов данного типа или разработчиком, с помощью конструктора.

Кроме этого в платформе реализованы специфические типы данных, реализующие ту или иную функциональность прикладных решений: текстовый документ, табличный документ, ХранилищеЗначения, ПостроительОтчета, ПостроительЗапроса и пр.


Остановимся подробнее на типе данных "ХранилищеЗначений". Хранилища предназначены для хранения значений, тип которых не может быть выбран в качестве типа поля, например: картинки, двоичные данные. При помещении значения в хранилище значений можно сжимать данные, указав требуемую степень сжатия. Данный метод позволяет уменьшить размер хранимого значения в информационной базе.

К значению, хранящемуся в хранилище, нельзя обращаться напрямую. Перед использованием значения его необходимо извлечь. Не рекомендуется хранить ссылки на объекты, т.к. в системе не поддерживается контроль ссылочной целостности по объектам, сохраненным в полях типа "Хранилище значения".

Операции помещения в хранилище и извлечения из него могут занимать продолжительное время, что необходимо учитывать при проектировании структур объектов.

Пример использования хранилища значения на примере справочника "Картинки":

Читайте также: