From c83173e97271a0db7783661fecc8888933bfb84f Mon Sep 17 00:00:00 2001 From: artem Date: Tue, 7 Oct 2025 14:16:34 +0500 Subject: [PATCH] edit --- .../Табличный документ в ТЗ и обратно.md | 60 +++--- .../Чтение данных из файла/Чтение DBF.md | 2 +- .../Чтение данных из файла/Чтение Excel.md | 2 +- .../Чтение данных из файла/Чтение JSON.md | 2 +- .../Чтение данных из файла/Чтение TXT, CSV.md | 2 +- .../Чтение данных из файла/Чтение XML.md | 2 +- .../Сравнить элементы перечисления.md | 39 ++++ .../Общего назначения}/Ссылка на объект из навигационной ссылки.md | 2 +- .../Из UpperCamelCase в обычную строку.md | 68 +++++++ .../Работа с текстом/Из ЙЦУКЕН в QWERTY.md | 104 ++++++++++ .../Представление отборов форматированной строкой.md | 190 ++++++++++++++++++ 11 files changed, 437 insertions(+), 36 deletions(-) create mode 100644 src/content/docs/knowledge-base/Общие/Общего назначения/Сравнить элементы перечисления.md rename src/content/docs/knowledge-base/{Типовые/ERP/Общего назначения УХ => Общие/Общего назначения}/Ссылка на объект из навигационной ссылки.md (98%) create mode 100644 src/content/docs/knowledge-base/Общие/Работа с текстом/Из UpperCamelCase в обычную строку.md create mode 100644 src/content/docs/knowledge-base/Общие/Работа с текстом/Из ЙЦУКЕН в QWERTY.md create mode 100644 src/content/docs/knowledge-base/Общие/Управляемые формы/Представление отборов форматированной строкой.md diff --git a/src/content/docs/knowledge-base/Общие/Обмен данными/Табличный документ в ТЗ и обратно.md b/src/content/docs/knowledge-base/Общие/Обмен данными/Табличный документ в ТЗ и обратно.md index ee67e26..6a3f61a 100644 --- a/src/content/docs/knowledge-base/Общие/Обмен данными/Табличный документ в ТЗ и обратно.md +++ b/src/content/docs/knowledge-base/Общие/Обмен данными/Табличный документ в ТЗ и обратно.md @@ -3,15 +3,15 @@ title: Табличный документ в ТЗ и обратно slug: общие-обмен-данными/табличный-документ-в-тз-и-обратно --- -# Табличный документ в таблицу значений (табдок в ТЗ) +## Табличный документ в таблицу значений (табдок в ТЗ) ```bsl Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область()); - + ТабДанные = Построитель.Результат.Выгрузить(); ``` -# Таблица значений в табличный документ (ТЗ в табдок) +## Таблица значений в табличный документ (ТЗ в табдок) ```bsl ТабДокумент = Новый ТабличныйДокумент; @@ -21,36 +21,36 @@ slug: общие-обмен-данными/табличный-документ- Построитель.Вывести(ТабДокумент); ``` -## Вариант с собственной функцией +### Вариант с собственной функцией ```bsl &НаСервере Функция ТабличныйДокументИзТаблицыЗначений(ТаблицаЗначений) - - ТабДок = Новый ТабличныйДокумент; - - // Формируем заголовки - ОбластьЗаголовок = ТабДок.ПолучитьОбласть(1, 1, 1, ТаблицаЗначений.Колонки.Количество() + 1); - ОбластьЗаголовок.Область(1, 1).Текст = "№ п/п"; - - Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл - ОбластьЗаголовок.Область(1, НомерКолонки + 1).Текст = ТаблицаЗначений.Колонки[НомерКолонки - 1].Имя; - КонецЦикла; - ТабДок.Вывести(ОбластьЗаголовок); - - // Заполняем данными - Для НомерСтроки = 1 По ТаблицаЗначений.Количество() Цикл - ОбластьСтрока = ТабДок.ПолучитьОбласть(НомерСтроки + 1, 1, НомерСтроки + 1, ТаблицаЗначений.Колонки.Количество() + 1); - ОбластьСтрока.Область(1, 1).Текст = Формат(НомерСтроки, "ЧГ="); - - Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл - ОбластьСтрока.Область(1, НомерКолонки + 1).Текст = Строка(ТаблицаЗначений[НомерСтроки - 1][НомерКолонки - 1]); - КонецЦикла; - - ТабДок.Вывести(ОбластьСтрока); - КонецЦикла; - - Возврат ТабДок; - + + ТабДок = Новый ТабличныйДокумент; + + // Формируем заголовки + ОбластьЗаголовок = ТабДок.ПолучитьОбласть(1, 1, 1, ТаблицаЗначений.Колонки.Количество() + 1); + ОбластьЗаголовок.Область(1, 1).Текст = "№ п/п"; + + Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл + ОбластьЗаголовок.Область(1, НомерКолонки + 1).Текст = ТаблицаЗначений.Колонки[НомерКолонки - 1].Имя; + КонецЦикла; + ТабДок.Вывести(ОбластьЗаголовок); + + // Заполняем данными + Для НомерСтроки = 1 По ТаблицаЗначений.Количество() Цикл + ОбластьСтрока = ТабДок.ПолучитьОбласть(НомерСтроки + 1, 1, НомерСтроки + 1, ТаблицаЗначений.Колонки.Количество() + 1); + ОбластьСтрока.Область(1, 1).Текст = Формат(НомерСтроки, "ЧГ="); + + Для НомерКолонки = 1 По ТаблицаЗначений.Колонки.Количество() Цикл + ОбластьСтрока.Область(1, НомерКолонки + 1).Текст = Строка(ТаблицаЗначений[НомерСтроки - 1][НомерКолонки - 1]); + КонецЦикла; + + ТабДок.Вывести(ОбластьСтрока); + КонецЦикла; + + Возврат ТабДок; + КонецФункции ``` diff --git a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение DBF.md b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение DBF.md index 816856b..a395f76 100644 --- a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение DBF.md +++ b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение DBF.md @@ -1,6 +1,6 @@ --- title: Чтение DBF -slug: общие-обмен-данными-чтение-файлов-примеры/чтение-dbf +slug: общие-обмен-данными-чтение-данных-из-файла/чтение-dbf --- > Длина имени файла DBF без расширения не должна быть больше **8 символов** diff --git a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение Excel.md b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение Excel.md index c5961ba..f5e0282 100644 --- a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение Excel.md +++ b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение Excel.md @@ -1,6 +1,6 @@ --- title: Чтение Excel -slug: общие-обмен-данными-чтение-файлов-примеры/чтение-excel +slug: общие-обмен-данными-чтение-данных-из-файла/чтение-excel --- ## Обычное чтение diff --git a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение JSON.md b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение JSON.md index 74d566e..b0d7416 100644 --- a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение JSON.md +++ b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение JSON.md @@ -1,6 +1,6 @@ --- title: Чтение JSON -slug: общие-обмен-данными-чтение-файлов-примеры/чтение-json +slug: общие-обмен-данными-чтение-данных-из-файла/чтение-json --- ```bsl diff --git a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение TXT, CSV.md b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение TXT, CSV.md index af0ea43..44488e7 100644 --- a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение TXT, CSV.md +++ b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение TXT, CSV.md @@ -1,6 +1,6 @@ --- title: Чтение TXT, CSV -slug: общие-обмен-данными-чтение-файлов-примеры/чтение-txt-csv +slug: общие-обмен-данными-чтение-данных-из-файла/чтение-txt-csv --- ## Вариант с ЧтениеТекста diff --git a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение XML.md b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение XML.md index bf827f8..833a5ac 100644 --- a/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение XML.md +++ b/src/content/docs/knowledge-base/Общие/Обмен данными/Чтение данных из файла/Чтение XML.md @@ -1,6 +1,6 @@ --- title: Чтение XML -slug: общие-обмен-данными-чтение-файлов-примеры/чтение-xml +slug: общие-обмен-данными-чтение-данных-из-файла/чтение-xml --- ## С помощью XDTO diff --git a/src/content/docs/knowledge-base/Общие/Общего назначения/Сравнить элементы перечисления.md b/src/content/docs/knowledge-base/Общие/Общего назначения/Сравнить элементы перечисления.md new file mode 100644 index 0000000..6688439 --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/Общего назначения/Сравнить элементы перечисления.md @@ -0,0 +1,39 @@ +--- +title: Сравнить элементы перечисления +slug: общие-общего-назначения/сравнить-элементы-перечисления +--- + +## В ERP Управление холдингом +```bsl +Результат = ОбщегоНазначенияУХ.СравнитьЗначенияПеречисления(Значение1, Значение2); +``` + +> Реализация + +```bsl +// Сравнивает два значения перечисления. +// Параметры: +// Значение1 - ПеречислениеСсылка +// Значение2 - ПеречислениеСсылка +// Возвращает: +// Если значения равны, то возвращает 0. +// Если Значение1 стоит раньше по порядку Значение2, то -1 +// Если Значение1 стоит позже по порядку Значение2, то 1 +Функция СравнитьЗначенияПеречисления(Значение1, Значение2) Экспорт + Если Значение1 = Значение2 Тогда + Возврат 0; + КонецЕсли; + + ПерчислениеМенеджер = Перечисления[Значение1.Метаданные().Имя]; + Индекс1 = ПерчислениеМенеджер.Индекс(Значение1); + Индекс2 = ПерчислениеМенеджер.Индекс(Значение2); + + Если Индекс1 < Индекс2 Тогда + Возврат -1; + ИначеЕсли Индекс1 > Индекс2 Тогда + Возврат 1; + КонецЕсли; + + Возврат 0; +КонецФункции +``` \ No newline at end of file diff --git a/src/content/docs/knowledge-base/Типовые/ERP/Общего назначения УХ/Ссылка на объект из навигационной ссылки.md b/src/content/docs/knowledge-base/Общие/Общего назначения/Ссылка на объект из навигационной ссылки.md similarity index 98% rename from src/content/docs/knowledge-base/Типовые/ERP/Общего назначения УХ/Ссылка на объект из навигационной ссылки.md rename to src/content/docs/knowledge-base/Общие/Общего назначения/Ссылка на объект из навигационной ссылки.md index 1adfecc..a35cf3e 100644 --- a/src/content/docs/knowledge-base/Типовые/ERP/Общего назначения УХ/Ссылка на объект из навигационной ссылки.md +++ b/src/content/docs/knowledge-base/Общие/Общего назначения/Ссылка на объект из навигационной ссылки.md @@ -2,7 +2,7 @@ title: Ссылка на объект из навигационной ссылки slug: типовые-erp-общего-назначения-ух/ссылка-на-объект-из-навигационной-ссылки --- -# Пример вызова +# Пример вызова в УХ ```bsl Ссылка = ОбщегоНазначенияУХ.СсылкаНаОбъектИзНавигационнойСсылки(СокрЛП(НавигационнаяСсылка)); ``` diff --git a/src/content/docs/knowledge-base/Общие/Работа с текстом/Из UpperCamelCase в обычную строку.md b/src/content/docs/knowledge-base/Общие/Работа с текстом/Из UpperCamelCase в обычную строку.md new file mode 100644 index 0000000..19e92f1 --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/Работа с текстом/Из UpperCamelCase в обычную строку.md @@ -0,0 +1,68 @@ +--- +title: Из UpperCamelCase в обычную строку +slug: общие-работа-с-текстом/из-uppercamelcase-в-обычную-строку +--- + +```bsl +// Функция - Преобразует CamelCase в обычный текст. +// +// Параметры: +// СтрокаCamelCase - Строка - строка в стиле CamelCase. Например ВДополнительномПодменю, ВводПоСтроке и т.д. +// +// Возвращаемое значение: +// Строка - преобразованный CamelCase в обычный текст. Например "HTTPСервис" => "HTTP сервис" +// +Функция НатуральноеПредставлениеСтрокиCamelCase(Знач СтрокаCamelCase) Экспорт + + СтрокаCamelCase = СтрЗаменить(СтрокаCamelCase, "_", ""); + Результат = ""; + ПредыдущийСимвол = ""; + КоличествоЗаглавныхСимволов = 0; + + // Делим СтрокиТипаТакой на отдельные слова + Для Сч = 1 По СтрДлина(СтрокаCamelCase) Цикл + + Символ = Сред(СтрокаCamelCase, Сч, 1); + ЭтоЗаглавная = (Символ = ВРег(Символ)); + + // Переход от аббревиатуры к обычному слову + Если НЕ ЭтоЗаглавная И КоличествоЗаглавныхСимволов >= 2 Тогда + + Результат = Лев(Результат, СтрДлина(Результат) - 1) + " " + Прав(Результат, 1); + + // Начало нового слова + ИначеЕсли ЭтоЗаглавная И КоличествоЗаглавныхСимволов = 0 И ПредыдущийСимвол <> "" Тогда + Результат = Результат + " "; + КонецЕсли; + + Результат = Результат + Символ; + + Если ЭтоЗаглавная Тогда + КоличествоЗаглавныхСимволов = КоличествоЗаглавныхСимволов + 1; + Иначе + КоличествоЗаглавныхСимволов = 0; + КонецЕсли; + + ПредыдущийСимвол = Символ; + + КонецЦикла; + + // Приведение к строчному регистра (кроме первого слова и аббревиатур) + Слова = СтрРазделить(Результат, " "); + + Для Индекс = 1 По Слова.ВГраница() Цикл + + Слово = Слова[Индекс]; + ЭтоАббревиатура = (Слово = ВРег(Слово)); + + Если СтрДлина(Слово) = 1 Или Не ЭтоАббревиатура Тогда // это точно не аббревиатура + Слова[Индекс] = НРег(Слово); + КонецЕсли; + + КонецЦикла; + + Возврат СокрЛП(СтрСоединить(Слова, " ")); + +КонецФункции + +``` \ No newline at end of file diff --git a/src/content/docs/knowledge-base/Общие/Работа с текстом/Из ЙЦУКЕН в QWERTY.md b/src/content/docs/knowledge-base/Общие/Работа с текстом/Из ЙЦУКЕН в QWERTY.md new file mode 100644 index 0000000..0147f8f --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/Работа с текстом/Из ЙЦУКЕН в QWERTY.md @@ -0,0 +1,104 @@ +--- +title: Из ЙЦУКЕН в QWERTY +slug: общие-работа-с-текстом/из-йцукен-в-qwerty +--- + +```bsl +&НаКлиенте +Процедура ИзЙЦУКЕНвQWERTY(Строка) + + Строка = СокрЛП(Строка); + + // Нижний регистр + Раскладка = Новый Соответствие; + Раскладка.Вставить("й", "q"); + Раскладка.Вставить("ц", "w"); + Раскладка.Вставить("у", "e"); + Раскладка.Вставить("к", "r"); + Раскладка.Вставить("е", "t"); + Раскладка.Вставить("н", "y"); + Раскладка.Вставить("г", "u"); + Раскладка.Вставить("ш", "i"); + Раскладка.Вставить("щ", "o"); + Раскладка.Вставить("з", "p"); + Раскладка.Вставить("х", "["); + Раскладка.Вставить("ъ", "]"); + Раскладка.Вставить("ф", "a"); + Раскладка.Вставить("ы", "s"); + Раскладка.Вставить("в", "d"); + Раскладка.Вставить("а", "f"); + Раскладка.Вставить("п", "g"); + Раскладка.Вставить("р", "h"); + Раскладка.Вставить("о", "j"); + Раскладка.Вставить("л", "k"); + Раскладка.Вставить("д", "l"); + Раскладка.Вставить("ж", ";"); + Раскладка.Вставить("э", "'"); + Раскладка.Вставить("я", "z"); + Раскладка.Вставить("ч", "x"); + Раскладка.Вставить("с", "c"); + Раскладка.Вставить("м", "v"); + Раскладка.Вставить("и", "b"); + Раскладка.Вставить("т", "n"); + Раскладка.Вставить("ь", "m"); + Раскладка.Вставить("б", ","); + Раскладка.Вставить("ю", "."); + Раскладка.Вставить(".", "/"); + + // Верхний регистр + Раскладка.Вставить("Й", "Q"); + Раскладка.Вставить("Ц", "W"); + Раскладка.Вставить("У", "E"); + Раскладка.Вставить("К", "R"); + Раскладка.Вставить("Е", "T"); + Раскладка.Вставить("Н", "Y"); + Раскладка.Вставить("Г", "U"); + Раскладка.Вставить("Ш", "I"); + Раскладка.Вставить("Щ", "O"); + Раскладка.Вставить("З", "P"); + Раскладка.Вставить("Х", "{"); + Раскладка.Вставить("Ъ", "}"); + Раскладка.Вставить("Ф", "A"); + Раскладка.Вставить("Ы", "S"); + Раскладка.Вставить("В", "D"); + Раскладка.Вставить("А", "F"); + Раскладка.Вставить("П", "G"); + Раскладка.Вставить("Р", "H"); + Раскладка.Вставить("О", "J"); + Раскладка.Вставить("Л", "K"); + Раскладка.Вставить("Д", "L"); + Раскладка.Вставить("Ж", ":"); + Раскладка.Вставить("Э", """"); + Раскладка.Вставить("Я", "Z"); + Раскладка.Вставить("Ч", "X"); + Раскладка.Вставить("С", "C"); + Раскладка.Вставить("М", "V"); + Раскладка.Вставить("И", "B"); + Раскладка.Вставить("Т", "N"); + Раскладка.Вставить("Ь", "M"); + Раскладка.Вставить("Б", "<"); + Раскладка.Вставить("Ю", ">"); + Раскладка.Вставить(",", "?"); + + Раскладка.Вставить("""", "@"); + Раскладка.Вставить(";", "$"); + Раскладка.Вставить(":", "^"); + Раскладка.Вставить("?", "&"); + + СимволыНовойСтроки = Новый Массив; + Для Сч = 1 По СтрДлина(Строка) Цикл + + Символ = Сред(Строка, Сч, 1); + СоответствующийСимвол = Раскладка.Получить(Символ); + Если СоответствующийСимвол = Неопределено Тогда + СимволыНовойСтроки.Добавить(Символ); + Иначе + СимволыНовойСтроки.Добавить(СоответствующийСимвол); + КонецЕсли; + + КонецЦикла; + + Строка = СтрСоединить(СимволыНовойСтроки, ""); + +КонецПроцедуры +``` \ No newline at end of file diff --git a/src/content/docs/knowledge-base/Общие/Управляемые формы/Представление отборов форматированной строкой.md b/src/content/docs/knowledge-base/Общие/Управляемые формы/Представление отборов форматированной строкой.md new file mode 100644 index 0000000..2075355 --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/Управляемые формы/Представление отборов форматированной строкой.md @@ -0,0 +1,190 @@ +--- +title: Представление отборов форматированной строкой +slug: общие-управляемые-формы/представление-отборов-форматированной-строкой +--- + +```bsl + +// Функция - Представление отборов форматированной строкой +// +// Параметры: +// ТаблицаОтборов - ТаблицаЗначений - Таблица отборов для формирования представлений. Колонки +// * Имя - Строка - Имя отбора. Должно отвечать требованиям к идентификаторов 1С +// * Значение - Произвольный - Значение установленного отбора +// * Представление - Строка - Представление, которое будет выведено в итоговую строку. Если не заполнено, будет сформировано автоматически +// по имени +// +// ВыводитьНезаполненные - Булево - Истина, если нужно выводить отборы, значения которых не заполнены. По умолчанию Ложь +// +// Возвращаемое значение: +// ФорматированнаяСтрока - Представление установленных отборов вида "УстановленыОтборы: ИмяОтбора: ЗначениеОтбора; ..." +// +Функция ПредставлениеОтборовФорматированнойСтрокой(ТаблицаОтборов, ВыводитьНезаполненные = Ложь) Экспорт + + ПараметрыОформления = ПараметрыФорматированнойСтрокиПредставленияОтборов(); + + ОписанияОтборов = Новый Массив; + + Для Каждого Строка Из ТаблицаОтборов Цикл + + ИмяОтбора = Строка.Имя; + ЗначениеОтбора = Строка.Значение; + ПредставлениеОтбора = ?(ЗначениеЗаполнено(Строка.Представление), + Строка.Представление, + НатуральноеПредставлениеСтрокиCamelCase(ИмяОтбора)); + + Если ВыводитьНезаполненные Тогда + ДобавитьОписаниеЭлементаОтбораВКоллекцию(ОписанияОтборов, ПредставлениеОтбора, ЗначениеОтбора, ПараметрыОформления); + Иначе + Если ТипЗнч(ЗначениеОтбора) = Тип("Булево") И Не ЗначениеОтбора Тогда + Продолжить; + КонецЕсли; + + Если ЗначениеЗаполнено(ЗначениеОтбора) Тогда + + Если ТипЗнч(ЗначениеОтбора) = Тип("СписокЗначений") Тогда + ЗначениеОтбора = ЗначениеОтбора.ВыгрузитьЗначения(); + КонецЕсли; + ДобавитьОписаниеЭлементаОтбораВКоллекцию(ОписанияОтборов, ПредставлениеОтбора, ЗначениеОтбора, ПараметрыОформления); + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Если ОписанияОтборов.Количество() > 0 Тогда + ОписанияОтборов.Удалить(ОписанияОтборов.ВГраница()); + ОписанияОтборов.Вставить(0, + Новый ФорматированнаяСтрока( + СтрШаблон("%1: ", ПараметрыОформления.ЗаголовокДекорации), + ПараметрыОформления.ШрифтЗаголовкаДекорации, + ПараметрыОформления.ЦветТекстаЗаголовкаДекорации)); + Иначе + ОписанияОтборов.Вставить(0, + Новый ФорматированнаяСтрока( + ПараметрыОформления.ПредставлениеПустыхОтборов, + ПараметрыОформления.ШрифтЗаголовкаДекорации, + ПараметрыОформления.ЦветТекстаЗаголовкаДекорации)); + КонецЕсли; + + Результат = Новый ФорматированнаяСтрока(ОписанияОтборов); + + Возврат Результат; + +КонецФункции + +Процедура ДобавитьОписаниеЭлементаОтбораВКоллекцию(Описания, ПредставлениеЭлемента, ЗначениеЭлемента, ПараметрыОформления) + + ЦветТекстаЗаголовкаПоля = ПараметрыОформления.ЦветТекстаЗаголовкаПоля; + ШрифтЗаголовкаПоля = ПараметрыОформления.ШрифтЗаголовкаПоля; + ЦветТекстаЗначения = ПараметрыОформления.ЦветТекстаЗначения; + ШрифтЗначения = ПараметрыОформления.ШрифтЗначения; + + Описания.Добавить(Новый ФорматированнаяСтрока(СтрШаблон("%1: ", ПредставлениеЭлемента), ШрифтЗаголовкаПоля , ЦветТекстаЗаголовкаПоля)); + + Если ЗначениеЗаполнено(ЗначениеЭлемента) Тогда + + Если ТипЗнч(ЗначениеЭлемента) = Тип("Массив") + Или ТипЗнч(ЗначениеЭлемента) = Тип("ФиксированныйМассив") Тогда + + ПредставленияЭлементов = Новый Массив; + + Для Каждого ТекЭлемент Из ЗначениеЭлемента Цикл + + Если ЗначениеЗаполнено(ТекЭлемент) Тогда + ПредставленияЭлементов.Добавить(Строка(ТекЭлемент)); + Иначе + ПредставленияЭлементов.Добавить(НСтр("ru = '<Пустое значение>'")); + КонецЕсли; + КонецЦикла; + ТекстЗначения = СтрСоединить(ПредставленияЭлементов, "; "); + + ИначеЕсли ТипЗнч(ЗначениеЭлемента) = Тип("Дата") Тогда + ТекстЗначения = Формат(ЗначениеЭлемента, "ДФ='ММММ гггг ""г.""'"); + Иначе + ТекстЗначения = Строка(ЗначениеЭлемента); + КонецЕсли; + Иначе + ТекстЗначения = НСтр("ru = '<Пустое значение>'"); + КонецЕсли; + + Описания.Добавить(Новый ФорматированнаяСтрока(Строка(ТекстЗначения), ШрифтЗначения , ЦветТекстаЗначения)); + + Описания.Добавить("; "); + +КонецПроцедуры + +Функция ПараметрыФорматированнойСтрокиПредставленияОтборов() + + ПараметрыПредставления = Новый Структура; + ПараметрыПредставления.Вставить("ЦветТекстаЗаголовкаДекорации", Новый Цвет(0,150,70)); + ПараметрыПредставления.Вставить("ШрифтЗаголовкаДекорации", Новый Шрифт(, , Истина)); + ПараметрыПредставления.Вставить("ЦветТекстаЗаголовкаПоля", Новый Цвет(110, 110, 110)); + ПараметрыПредставления.Вставить("ШрифтЗаголовкаПоля", Новый Шрифт()); + ПараметрыПредставления.Вставить("ЦветТекстаЗначения", Новый Цвет(80, 40, 0)); + ПараметрыПредставления.Вставить("ШрифтЗначения", Новый Шрифт(, , Истина)); + ПараметрыПредставления.Вставить("ЗаголовокДекорации", "Установлены отборы"); + ПараметрыПредставления.Вставить("ПредставлениеПустыхОтборов", "Отборы не установлены"); + + Возврат ПараметрыПредставления; + +КонецФункции + +// Функция - Преобразует CamelCase в обычный текст. +// +// Параметры: +// СтрокаCamelCase - Строка - строка в стиле CamelCase. Например ВДополнительномПодменю, ВводПоСтроке и т.д. +// +// Возвращаемое значение: +// Строка - преобразованный CamelCase в обычный текст. Например "HTTPСервис" => "HTTP сервис" +// +Функция НатуральноеПредставлениеСтрокиCamelCase(Знач СтрокаCamelCase) Экспорт + + СтрокаCamelCase = СтрЗаменить(СтрокаCamelCase, "_", ""); + Результат = ""; + ПредыдущийСимвол = ""; + КоличествоЗаглавныхСимволов = 0; + + Для Сч = 1 По СтрДлина(СтрокаCamelCase) Цикл + + Символ = Сред(СтрокаCamelCase, Сч, 1); + ЭтоЗаглавная = (Символ = ВРег(Символ)); + + Если НЕ ЭтоЗаглавная И КоличествоЗаглавныхСимволов >= 2 Тогда + + Результат = Лев(Результат, СтрДлина(Результат) - 1) + " " + Прав(Результат, 1); + + ИначеЕсли ЭтоЗаглавная И КоличествоЗаглавныхСимволов = 0 И ПредыдущийСимвол <> "" Тогда + Результат = Результат + " "; + КонецЕсли; + + Результат = Результат + Символ; + + Если ЭтоЗаглавная Тогда + КоличествоЗаглавныхСимволов = КоличествоЗаглавныхСимволов + 1; + Иначе + КоличествоЗаглавныхСимволов = 0; + КонецЕсли; + + ПредыдущийСимвол = Символ; + + КонецЦикла; + + Слова = СтрРазделить(Результат, " "); + + Для Индекс = 1 По Слова.ВГраница() Цикл + + Слово = Слова[Индекс]; + ЭтоАббревиатура = (Слово = ВРег(Слово)); + + Если СтрДлина(Слово) = 1 Или Не ЭтоАббревиатура Тогда // это точно не аббревиатура + Слова[Индекс] = НРег(Слово); + КонецЕсли; + + КонецЦикла; + + Возврат СокрЛП(СтрСоединить(Слова, " ")); + +КонецФункции + + +``` \ No newline at end of file