Skip to content

Работа с формулами

ВыражениеПолногоИдентификатораХарактеристики

Описание, пример вызова
// Возвращает выражение получения идентификатора характеристики. Следует обратить внимание, что выражение
// в обычном запросе и в наборе-запросе СКД отличаются.
//
// Параметры:
// МетаданныеВидаХарактеристик - ОбъектМетаданных - Объект метаданных характеристик. См. РаботаСФормуламиПовтИсп.СвойстваПоддерживаемыхИсточниковХарактеристик.
// ДляСКД - Булево - Флаг получения выражения для текста запроса в СКД.
// Возвращаемое значение:
// Строка - Выражение поля идентификатора, включающего скобки и обращение к указанному в СвойстваПоддерживаемыхИсточниковХарактеристик полю.
//
Функция ВыражениеПолногоИдентификатораХарактеристики(МетаданныеВидаХарактеристик, ДляСКД = Ложь) Экспорт

Пример вызова

Результат = РаботаСФормулами.ВыражениеПолногоИдентификатораХарактеристики(МетаданныеВидаХарактеристик, ДляСКД);

МодифицированноеВыражениеОперандаДляСКД

Описание, пример вызова
// Возвращает модифицированное выражение операнда для СКД с наборами данных - запросами, в которых переопределено
// получение характеристик.
//
// Параметры:
// ИсходноеВыражение - Строка - Выражение операнда. Например, "Номенклатура.{ДР.Характеристика1}.Контрагент"
// Возвращаемое значение:
// Строка - модифицированное выражение. Например, "Номенклатура.[[ДР.Характеристика1]]].Контрагент".
Функция МодифицированноеВыражениеОперандаДляСКД(ИсходноеВыражение) Экспорт

Пример вызова

Результат = РаботаСФормулами.МодифицированноеВыражениеОперандаДляСКД(ИсходноеВыражение)

СвойстваХарактеристики

Описание, пример вызова
// Возвращает свойства характеристики по ее выражению на языке формул
//
// Параметры:
// ВыражениеХарактеристики - Строка - Например, "{ДР.ОсновнойПоставщик}".
// Возвращаемое значение:
// Структура - Описание:
// * Метаданные - ОбъектМетаданныхПланВидовХарактеристик, ОбъектМетаданныхСправочник - Метаданные источника характеристик.
// Например, Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения
// или Метаданные.Справочники.ВидыКонтактнойИнформации.
// * Идентификатор - Строка - Идентификатор характеристики, указанный в соответствующем реквизите, хранимом в таблице характеристик.
// * Префикс - Строка - Префикс вида характеристик. Например "ДР." - Для дополнительных реквизитов и сведений.
Функция СвойстваХарактеристики(ВыражениеХарактеристики) Экспорт

Пример вызова

Результат = РаботаСФормулами.СвойстваХарактеристики(ВыражениеХарактеристики)

ПолеИдентификатораДополнительныхРеквизитовИСведений

Описание, пример вызова
// Возвращает имя поля идентификатора для формул дополнительных реквизитов и сведений.
//
// Возвращаемое значение:
// Строка - Имя поля "ИдентификаторДляФормул"
Функция ПолеИдентификатораДополнительныхРеквизитовИСведений() Экспорт

Пример вызова

Результат = РаботаСФормулами.ПолеИдентификатораДополнительныхРеквизитовИСведений()

ПолучитьПустоеДеревоОперандов

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

Пример вызова

Результат = РаботаСФормулами.ПолучитьПустоеДеревоОперандов()

ТипыЭлементовДереваОперандов

Описание, пример вызова
// Типы элементов дерева операндов. Тип элемента влияет на картинку строки в дереве, а также может влиять на поведение.
// Реализация в виде структуры позволяет использовать ее в коде как перечисление.
//
// Возвращаемое значение:
// Структура - Описание:
// * Операнд - Строка - Обычный операнд не относящийся к метаданным. Например, вид цен. Значение по умолчанию.
// * Группа - Строка - Группа операндов или реквизитов или параметров. Картинка как папка.
// * ГруппаСтрокВерхнегоУровня - Строка - Группа операндов или реквизитов. Картинка как три реквизита.
// * Реквизит - Строка - Реквизит метаданных. Например, реквизит вид номенклатуры.
// * ДополнительныйРеквизит - Строка - Дополнительный реквизит. Отличается от дополнительного сведения только картинкой (и местом хранения значения).
// * ДополнительноеСведение - Строка - Дополнительное сведение.
// * ВидКонтактнойИнформации_Адрес - Строка - Вид контактной информации с типом "адрес".
// * ВидКонтактнойИнформации_Телефон - Строка - Вид контактной информации с типом "телефон".
// * ВидКонтактнойИнформации_АдресЭлектроннойПочты - Строка - Вид контактной информации с типом "адрес электронной почты".
// * ВидКонтактнойИнформации_Skype - Строка - Вид контактной информации с типом "skype".
// * ВидКонтактнойИнформации_ВебСтраница - Строка - Вид контактной информации с типом "веб страница".
// * ВидКонтактнойИнформации_Факс - Строка - Вид контактной информации с типом "факс".
// * ВидКонтактнойИнформации_Другое - Строка - Вид контактной информации с типом "другое".
// * ВидКонтактнойИнформации_НесколькоВидовКонтактнойИнформации - Строка - Идентификатор по указанному идентификатору существует несколько
// элементов справочника виды контактной информации с разными типами.
// * ПрочаяХарактеристика - Строка - Другой вид характеристик, не являющийся доп.реквизитами и сведениями или контактной информацией.
//
Функция ТипыЭлементовДереваОперандов() Экспорт

Пример вызова

Результат = РаботаСФормулами.ТипыЭлементовДереваОперандов()

НоваяСтрокаДереваОперанда

Описание, пример вызова
// Добавляет в указанное место подчиненную строку дерева и заполняет ее значениями по умолчанию.
//
// Параметры:
// МестоДобавления - ДеревоЗначений, СтрокаДереваЗначений, ДанныеФормыДерево, ДанныеФормыЭлементДерева - дерево,
// полученное методом ПолучитьПустоеДеревоОперандов или дерево на форме или строки дерева.
// Возвращаемое значение:
// - СтрокаДереваЗначений - Строка, добавленная в дерево значений.
// - ДанныеФормыЭлементДерева - Строка, добавленная в дерево на форме.
Функция НоваяСтрокаДереваОперанда(МестоДобавления) Экспорт

Пример вызова

Результат = РаботаСФормулами.НоваяСтрокаДереваОперанда(МестоДобавления)

ОграниченияРазверткиОперандов

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

Пример вызова

Результат = РаботаСФормулами.ОграниченияРазверткиОперандов()

РазвернутьСтрокуОперанда

Описание, пример вызова
// Разворачиваем строку дерева операндов на один уровень по ее типу значения (добавляются подчиненные строки - реквизиты и характеристики).
//
// Параметры:
// СтрокаДерева - СтрокаДереваЗначений - разворачиваемая строка дерева:
// *Идентификатор - Строка - Для всех типов значений. Идентификатор строки.
// *Представление - Строка - Для всех типов значений. Представление строки.
// *ТипЭлементаДерева - Строка - Для всех типов значений. см. РаботаСФормулами.ТипыЭлементовДереваОперандов.
// *РазрешаетсяВыборОперанда - Булево - Для всех типов значений. Флаг возможности выбора строки операнда.
// *ВключаетсяВИдентификатор - Булево - Для всех типов значений. Флаг включения текущего операнда в нижеследующие.
// СтрокаДерева - ДанныеФормыЭлементДерева - разворачиваемая строка дерева.
// *Идентификатор - Строка - Для всех типов значений. Идентификатор строки.
// *Представление - Строка - Для всех типов значений. Представление строки.
// *ТипЭлементаДерева - Строка - Для всех типов значений. см. РаботаСФормулами.ТипыЭлементовДереваОперандов.
// *РазрешаетсяВыборОперанда - Булево - Для всех типов значений. Флаг возможности выбора строки операнда.
// *ВключаетсяВИдентификатор - Булево - Для всех типов значений. Флаг включения текущего операнда в нижеследующие.
// ОграниченияРазвертки - Неопределено - Значения развертки по умолчанию.
// ОграниченияРазвертки - см. РаботаСФормулами.ОграниченияРазверткиОперандов.
//
Процедура РазвернутьСтрокуОперанда(СтрокаДерева, ОграниченияРазвертки = Неопределено) Экспорт

Пример вызова

РаботаСФормулами.РазвернутьСтрокуОперанда(СтрокаДерева, ОграниченияРазвертки);

РазвернутьСтрокуОперандаДереваФормы

Описание, пример вызова
// Разворачиваем строку дерева операндов на один уровень по ее типу значения (добавляются подчиненные строки - реквизиты и характеристики).
// Вызывается из формы с деревом операндов при событии развертки строки дерева. Поиск строки по ее идентификатору и удаление подчиненной служебной строки.
//
// Параметры:
// ДеревоОперандовФормы - ДанныеФормыДерево - Дерево операндов на форме.
// ИдентификаторТекущейСтрокиДереваОперандов - Число - Идентификатор строки дерева формы.
// МаксимальныйУровеньРазверткиСтрок - Число - Значение по умолчанию 0 (не контролируется). Контроль максимального уровня строк в дереве при развертке.
//
Процедура РазвернутьСтрокуОперандаДереваФормы(ДеревоОперандовФормы, ИдентификаторТекущейСтрокиДереваОперандов, МаксимальныйУровеньРазверткиСтрок = 0) Экспорт

Пример вызова

РаботаСФормулами.РазвернутьСтрокуОперандаДереваФормы(ДеревоОперандовФормы, ИдентификаторТекущейСтрокиДереваОперандов, МаксимальныйУровеньРазверткиСтрок);

ДобавитьВДеревоДоступныеПоляПоСхемеКомпоновки

Описание, пример вызова
// Добавляет в указанное место дерева операндов первый уровень полей по схеме компоновки данных.
//
// Параметры:
// МестоДобавления - ДеревоЗначений, СтрокаДереваЗначений - Строки добавляются непосредственно в дерево операндов
// или в указанную строку дерева операндов.
// СхемаКомпоновки - СхемаКомпоновкиДанных - Произвольная схема компоновки, поля выборки которой необходимо добавить
// в указанное место.
// ОграниченияРазвертки - Неопределено, Структура - см. РаботаСФормулами.ОграниченияРазверткиОперандов.
//
Процедура ДобавитьВДеревоДоступныеПоляПоСхемеКомпоновки(МестоДобавления, СхемаКомпоновки, ОграниченияРазвертки = Неопределено) Экспорт

Пример вызова

РаботаСФормулами.ДобавитьВДеревоДоступныеПоляПоСхемеКомпоновки(МестоДобавления, СхемаКомпоновки, ОграниченияРазвертки);

ЗагрузитьДеревоОперандовВДеревоФормы

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

Пример вызова

РаботаСФормулами.ЗагрузитьДеревоОперандовВДеревоФормы(ДеревоФормы, ДеревоОперандов, МассивРазрешенныхОперандов, );

ПолучитьПустоеДеревоОператоров

Описание, пример вызова
// Формирует дерево значений с колонками Наименование, Оператор, Сдвиг.
//
// Возвращаемое значение:
// ДеревоЗначений - Пустое дерево операторов с колонками:
// * Наименование - Строка - Наименование оператора.
// * Оператор - Строка - Оператор.
// * Сдвиг - Число - Сдвиг оператора.
//
Функция ПолучитьПустоеДеревоОператоров() Экспорт

Пример вызова

Результат = РаботаСФормулами.ПолучитьПустоеДеревоОператоров()

ДобавитьГруппуОператоров

Описание, пример вызова
// Добавляет в дерево операторов группу операторов с переданным наименованием.
//
// Параметры:
// Дерево - ДеревоЗначений - Дерево операторов. см. функцию ПолучитьПустоеДеревоОператоров().
// Идентификатор - Строка - Идентификатор оператора на встроенном языке.
// Представление - Строка - Наименование группы дерева операторов на языке пользователя.
//
// Возвращаемое значение:
// СтрокаДереваЗначений - Добавленная группа операторов.
//
Функция ДобавитьГруппуОператоров(Дерево, Идентификатор, Представление) Экспорт

Пример вызова

Результат = РаботаСФормулами.ДобавитьГруппуОператоров(Дерево, Идентификатор, Представление)

ДобавитьОператор

Описание, пример вызова
// Добавляет в дерево операторов группу операторов с переданным наименованием.
//
// Параметры:
// МестоДобавления - ДеревоЗначений, СтрокаДереваЗначений - Дерево операторов или группа операторов, в которую необходимо добавить оператор.
// Идентификатор - Строка - Идентификатор оператора на встроенном языке.
// КонструкцияДляВставки - Строка - Текст, добавляемый в формулу при выборе, идентификатор со скобками и параметрами.
// Представление - Строка - Представление оператора на языке пользователя.
// Пояснение - Строка - Опциональное пояснение для пользователя, что выполняет оператор.
// Сдвиг - Число - необходим для определения позиции курсора.
//
// Возвращаемое значение:
// СтрокаДереваЗначений - Добавленный оператор.
//
Функция ДобавитьОператор(МестоДобавления, Идентификатор, КонструкцияДляВставки, Представление, Пояснение = "", Сдвиг = 0) Экспорт

Пример вызова

Результат = РаботаСФормулами.ДобавитьОператор(МестоДобавления, Идентификатор, КонструкцияДляВставки, Представление, Пояснение, Сдвиг);

ПолучитьСтандартноеДеревоОператоров

Описание, пример вызова
// Формирует дерево со стандартными операторами "+", "-", "*", "/"
//
// Возвращаемое значение:
// ДеревоЗначений - дерево операторов. см. функцию ПолучитьПустоеДеревоОператоров().
//
Функция ПолучитьСтандартноеДеревоОператоров() Экспорт

Пример вызова

Результат = РаботаСФормулами.ПолучитьСтандартноеДеревоОператоров()

ПостроитьДеревоОператоров

Описание, пример вызова
// Заполняет дерево операторов для конструктора формул.
//
// Параметры:
// Параметры - Структура - содержит виды операторов, которые необходимо добавить в дерево.
// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы, в которой выполняется действия,
// необходим для корректного помещения во временное хранилище.
//
// Возвращаемое значение:
// Строка - Адрес во временном хранилище.
//
Функция ПостроитьДеревоОператоров(Параметры, УникальныйИдентификатор) Экспорт

Пример вызова

Результат = РаботаСФормулами.ПостроитьДеревоОператоров(Параметры, УникальныйИдентификатор)

ПараметрыПроверкиФормулы

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

Пример вызова

Результат = РаботаСФормулами.ПараметрыПроверкиФормулы()

ПроверитьФормулу

Описание, пример вызова
// Осуществляет проверку корректности формулы
//
// Параметры:
// Формула - Строка - текст формулы.
// Операнды - Массив из Строка - операнды формулы.
// ТипРезультата - ОписаниеТипов - ожидаемый тип результата вычисления.
// ПараметрыПроверки - см. ПараметрыПроверкиФормулы
//
// Возвращаемое значение:
// Булево - Ложь, если есть ошибки, иначе Истина.
//
Функция ПроверитьФормулу(Формула, Операнды, ТипРезультата, ПараметрыПроверки = Неопределено) Экспорт

Пример вызова

Результат = РаботаСФормулами.ПроверитьФормулу(Формула, Операнды, ТипРезультата, ПараметрыПроверки);

ВыраженияСПредставлениямиХарактеристикДляОнлайнПроверки

Описание, пример вызова
// Возвращает соответствие выражение с идентификаторами - выражение с представлениями.
// Используется для онлайн проверки корректности выражений СКД из форм подбора аналитики и субконто.
// В случае указания контактной информации, для идентификатора которой подходят несколько представлений, вернет
// не сложное выражение через конструкцию ВЫБОР КОГДА, а первое подходящее представление контактной информации
// (для корректного отображения в поле на форме).
// Для онлайн проверки выражений в выражения следует подставлять представления характеристик.
// Использование переопределения имен характеристик для онлайн проверки не используется из-за высоких накладных расходов
// при инициализации компоновщика.
//
// Параметры:
// ВыраженияСИдентификаторами - Массив из Строка - выражение операнда в терминах идентификаторов. Например, Номенклатура.{ДР.Экспедитор}.ГоловнойКонтрагент.{КИ.Телефон}
// СхемаКомпоновки - Неопределено, СхемаКомпоновкиДанных - Схемы компоновки по которой проверяется существование полей операндов.
// Если схема компоновки не задана парсинг выражений не возможен.
//
// Возвращаемое значение:
// Соответствие из КлючИЗначение - соответствие выражений в терминах идентификаторов и выражения с использованием представления:
// *Ключ - Строка - выражение с идентификаторами. Например, Номенклатура.{ДР.Экспедитор}.ГоловнойКонтрагент.{КИ.Телефон}.
// *Значение - Строка - выражение с представлениями характеристик. Например, Номенклатура.[Главный экспедитор].ГоловнойКонтрагент.Телефон.
//
Функция ВыраженияСПредставлениямиХарактеристикДляОнлайнПроверки(ВыраженияСИдентификаторами, СхемаКомпоновки = Неопределено) Экспорт

Пример вызова

Результат = РаботаСФормулами.ВыраженияСПредставлениямиХарактеристикДляОнлайнПроверки(ВыраженияСИдентификаторами, СхемаКомпоновки);

ПолучитьДанныеОперандовДляТаблицыДанных

Описание, пример вызова
// Вычисляет значения выражений операндов для таблицы значений. Возвращает таблицу данных с добавленными колонками результатов вычислений.
// Колонки таблицы данных должны быть типизированы.
//
// Параметры:
// ТаблицаДанных - ТаблицаЗначений - Таблица данных, содержащая произвольное количество типизированных колонок.
// ВыраженияВычисления - Соответствие - Выражение (операнд) вычисления и имя колонки результата. В зависимости
// от контекста выполнения формулы указываются все выражения (операнды), которые можно вычислить
// по данным таблицы данных:
// * Ключ - Строка - Выражение вычисления в формате операнда формулы.
// Например, "Номенклатура.{ДР.Экспедитор}.ГоловнойКонтрагент.{КИ.Телефон}".
// Если выражение вычисления начинается с определенной колонки, например "Номенклатура", то данная колонка
// должна быть в таблице данных.
// * Значение - Строка - Имя колонки, в которую будет помещен результат вычисления выражения.
// ИменаКолонокХарактеристик - Неопределено, Соответствие - если выражение вычисления начинается с характеристики,
// то необходимо указать имя колонки, в которой содержится соответствующие значения характеристик.
// Например, при вычислении наименования новой не записанной в базу номенклатуры,
// значения операндов могут рассчитываться из заполненных в карточке товара дополнительных реквизитов:
// * Ключ - Строка - Часть операнда, выражение характеристики в формате формул. Например "{ДР.ОсновнаяНоменклатураСписания}".
// * Значение - Строка - Имя колонки в таблице источников вычисления.
// ВыполнятьПроверкуВыражений - Булево - Флаг, указывающий, нужно ли проводить полную проверку выражений.
// Если полная проверка всего выражения не проводится, то это может сэкономить время на парсинге выражений
// (предполагается, что выражения указаны корректно), что может быть критично для механизмов, используемых
// в транзакции. Если полная проверка всего выражения не проводится, то выражения парсятся только для
// получения типов, для которых указана характеристика или для получения представления характеристики.
// Если полная проверка всего выражения проводится, то все выражение проверяется на корректность
// не зависимо от наличия в нем характеристик.
//
// Возвращаемое значение:
// Структура - структура со свойствами:
// * ТаблицаРезультатов - ТаблицаЗначений - Таблица, содержащая колонки таблицы источников вычислений и колонки результатов вычислений:
// ** ИндексСтроки - Число - колонка индекса строки. Если она отсутствует в таблице источников, то будет добавлена.
// * ЕстьОшибки - Булево - Флаг наличия ошибок при преобразовании выражений.
// * СообщенияОшибокПреобразования - Соответствие - Сообщения ошибок преобразования, при их наличии:
// ** Ключ - Строка - Исходное выражение, для которого зарегистрирована ошибка.
// ** Значение - Строка - Текст сообщения об ошибке.
//
Функция ПолучитьДанныеОперандовДляТаблицыДанных(ТаблицаДанных, ВыраженияВычисления, ИменаКолонокХарактеристик = Неопределено, Экспорт

Пример вызова

Результат = РаботаСФормулами.ПолучитьДанныеОперандовДляТаблицыДанных(ТаблицаДанных, ВыраженияВычисления, ИменаКолонокХарактеристик, );

ДанныеДляПолученияВыраженийФормулЧерезСКД

Описание, пример вызова
// Возвращает структуру параметров для получения данных через СКД, а также, выполняет корректировку СКД
// (если для получения выражений используются только наборы данных запросы, то по указанным выражениям вычисляются
// все типы данных, для которых указаны характеристики указывается в текстах соответствующих наборов запросов
// текст переопределения получения характеристик на языке расширения запросов (ограниченное количество типов,
// т.к. указание переопределения характеристик для всех возможных типов не оптимально).
// В случае, если для вычисления выражений используются наборы объекты, то выражения преобразуются с использованием
// представлений характеристик на языке текущего пользователя.
//
// Параметры:
// СхемаКомпоновки - СхемаКомпоновкиДанных - Схема компоновки, используемая для получения данных.
// ИсходныеВыражения - Массив из Строка - Массив исходных выражений в формате написания формул.
// Например, "Номенклатура.{ДР.ОсновнойПоставщикТовара}.{КИ.Телефон}".
// ВыполнятьПроверкуВыражений - Булево - Флаг, указывающий, нужно ли проводить полную проверку выражений.
// Если полная проверка всего выражения не проводится, то это может сэкономить время на парсинге выражений
// (предполагается, что выражения указаны корректно), что может быть критично для механизмов, используемых
// в транзакции. Если полная проверка всего выражения не проводится, то выражения парсятся только для
// получения типов, для которых указана характеристика или для получения представления характеристики.
// Если полная проверка всего выражения проводится, то все выражение проверяется на корректность
// не зависимо от наличия в нем характеристик.
// ИспользоватьТолькоПредставленияХарактеристик - Булево - Настройка позволяет принудительно включить преобразование
// характеристик к представлению на языке текущего пользователя. Бывает полезна для механизм, где критична
// производительность механизма получения данных (например, выполнение в транзакции), т.к. парсинг
// выражения с целью получения типов данных занимает время. Если Истина будет выполнена замена характеристик
// на представления не зависимо от того, какие наборы данных используются в схеме компоновки.
// Возвращаемое значение:
// Структура - Описание:
// * ПреобразованныеВыражения - Соответствие - Результат преобразования выражений.
// *Ключ - Строка - Исходное выражение.
// *Значение - Строка - Результат преобразования для СКД. В случае, если для вычисления выражений
// используются только наборы запросы, то, например, "Номенклатура.[[ДР.ОсновнойПоставщикТовара]]].[[КИ.Телефон]]]".
// Если для вычисления выражений используются также наборы объекты, то выражение преобразуется с использованием
// представлений. Например, "Номенклатура.[Основной поставщик товара (Обувь)].Телефон".
// * ЕстьОшибки - Булево - Флаг наличия ошибок при преобразовании выражений.
// * СообщенияОшибокПреобразования - Соответствие - Сообщения ошибок преобразования, при их наличии:
// **Ключ - Строка - Исходное выражение, для которого зарегистрирована ошибка.
// **Значение - Строка - Текст сообщения об ошибке.
// * СхемаКомпоновкиИзменена - Булево - Флаг, указывающий, что схема компоновки изменена (в наборы данных запросы
// добавлено переопределение получения характеристик на языке расширения запросов.
//
Функция ДанныеДляПолученияВыраженийФормулЧерезСКД(СхемаКомпоновки, ИсходныеВыражения, ВыполнятьПроверкуВыражений = Ложь, Экспорт

Пример вызова

Результат = РаботаСФормулами.ДанныеДляПолученияВыраженийФормулЧерезСКД(СхемаКомпоновки, ИсходныеВыражения, ВыполнятьПроверкуВыражений, );

© 2024, ООО 1С-Софт
Все права защищены. Эта программа и сопроводительные материалы предоставляются
в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0).