Иллюстрированный самоучитель по языку системы 1С:Предприятие

Процедуры и функции обработки значений

ЗначениеВСтрокуВнутр

Преобразование значения объекта агрегатного типа из внутреннего представления в строковое.

Синтаксис:

ЗначениеВСтрокуВнутр(<Выражение>)

Англоязычный синоним:

ValueToStringInternal

Параметры:

<Выражение> Выражение, вычисленное значение которого следует перевести в строковое представление. В качестве параметра для данного метода допускается передавать значения любых типов данных, доступных в конфигурации, как базовых, так и агрегатных типов данных, за исключением тех типов данных, которые не имеют собственно значения – это касается таких объектов как "Периодический", "Таблица", "ФС", "Запрос", "XBase" и т. п. Однако, объекты типа "СписокЗначений" и "ТаблицаЗначений" использовать можно – они преобразуются в строковое представление.

Возвращаемое значение:

Результирующее строковое значение.

Описание:

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

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

Пример:

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

ЗначениеВСтрокуВнутр(Запрос.Клиент) + РазделительСтрок +
ЗначениеВСтрокуВнутр(Запрос.Товар)

Процедура обработки значения ячейки должна в себе содержать алгоритм распаковки значений с использованием метода ЗначениеИзСтрокиВнутр.

Процедура ОбработкаЯчейкиТаблицы(Значение, ФлагСтандартнойОбработки)

Если ТипЗначенияСтр(Значение) = "Строка" Тогда

Орг = ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(Значение, 1));

Тов = ЗначениеИзСтрокиВнутр(СтрПолучитьСтроку(Значение, 2));

Если Тов.Выбран() = 0 Тогда

Возврат;

КонецЕсли;

Карт(Орг, Тов);

ФлагСтандартнойОбработки = 0;

Возврат;

КонецЕсли;

ФлагСтандартнойОбработки = 1;

КонецПроцедуры

См. также: ЗначениеИзСтрокиВнутр, ЗначениеТекущейЯчейки, ОбработкаЯчейкиТаблицы.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.