edit
This commit is contained in:
parent
7b08c1d18e
commit
c83173e972
@ -3,15 +3,15 @@ title: Табличный документ в ТЗ и обратно
|
|||||||
slug: общие-обмен-данными/табличный-документ-в-тз-и-обратно
|
slug: общие-обмен-данными/табличный-документ-в-тз-и-обратно
|
||||||
---
|
---
|
||||||
|
|
||||||
# Табличный документ в таблицу значений (табдок в ТЗ)
|
## Табличный документ в таблицу значений (табдок в ТЗ)
|
||||||
```bsl
|
```bsl
|
||||||
Построитель = Новый ПостроительЗапроса;
|
Построитель = Новый ПостроительЗапроса;
|
||||||
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());
|
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());
|
||||||
|
|
||||||
ТабДанные = Построитель.Результат.Выгрузить();
|
ТабДанные = Построитель.Результат.Выгрузить();
|
||||||
```
|
```
|
||||||
|
|
||||||
# Таблица значений в табличный документ (ТЗ в табдок)
|
## Таблица значений в табличный документ (ТЗ в табдок)
|
||||||
|
|
||||||
```bsl
|
```bsl
|
||||||
ТабДокумент = Новый ТабличныйДокумент;
|
ТабДокумент = Новый ТабличныйДокумент;
|
||||||
@ -21,36 +21,36 @@ slug: общие-обмен-данными/табличный-документ-
|
|||||||
Построитель.Вывести(ТабДокумент);
|
Построитель.Вывести(ТабДокумент);
|
||||||
```
|
```
|
||||||
|
|
||||||
## Вариант с собственной функцией
|
### Вариант с собственной функцией
|
||||||
```bsl
|
```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]);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ТабДок.Вывести(ОбластьСтрока);
|
ТабДок.Вывести(ОбластьСтрока);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ТабДок;
|
Возврат ТабДок;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Чтение DBF
|
title: Чтение DBF
|
||||||
slug: общие-обмен-данными-чтение-файлов-примеры/чтение-dbf
|
slug: общие-обмен-данными-чтение-данных-из-файла/чтение-dbf
|
||||||
---
|
---
|
||||||
|
|
||||||
> Длина имени файла DBF без расширения не должна быть больше **8 символов**
|
> Длина имени файла DBF без расширения не должна быть больше **8 символов**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Чтение Excel
|
title: Чтение Excel
|
||||||
slug: общие-обмен-данными-чтение-файлов-примеры/чтение-excel
|
slug: общие-обмен-данными-чтение-данных-из-файла/чтение-excel
|
||||||
---
|
---
|
||||||
|
|
||||||
## Обычное чтение
|
## Обычное чтение
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Чтение JSON
|
title: Чтение JSON
|
||||||
slug: общие-обмен-данными-чтение-файлов-примеры/чтение-json
|
slug: общие-обмен-данными-чтение-данных-из-файла/чтение-json
|
||||||
---
|
---
|
||||||
|
|
||||||
```bsl
|
```bsl
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Чтение TXT, CSV
|
title: Чтение TXT, CSV
|
||||||
slug: общие-обмен-данными-чтение-файлов-примеры/чтение-txt-csv
|
slug: общие-обмен-данными-чтение-данных-из-файла/чтение-txt-csv
|
||||||
---
|
---
|
||||||
|
|
||||||
## Вариант с ЧтениеТекста
|
## Вариант с ЧтениеТекста
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Чтение XML
|
title: Чтение XML
|
||||||
slug: общие-обмен-данными-чтение-файлов-примеры/чтение-xml
|
slug: общие-обмен-данными-чтение-данных-из-файла/чтение-xml
|
||||||
---
|
---
|
||||||
|
|
||||||
## С помощью XDTO
|
## С помощью XDTO
|
||||||
|
@ -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;
|
||||||
|
КонецФункции
|
||||||
|
```
|
@ -2,7 +2,7 @@
|
|||||||
title: Ссылка на объект из навигационной ссылки
|
title: Ссылка на объект из навигационной ссылки
|
||||||
slug: типовые-erp-общего-назначения-ух/ссылка-на-объект-из-навигационной-ссылки
|
slug: типовые-erp-общего-назначения-ух/ссылка-на-объект-из-навигационной-ссылки
|
||||||
---
|
---
|
||||||
# Пример вызова
|
# Пример вызова в УХ
|
||||||
```bsl
|
```bsl
|
||||||
Ссылка = ОбщегоНазначенияУХ.СсылкаНаОбъектИзНавигационнойСсылки(СокрЛП(НавигационнаяСсылка));
|
Ссылка = ОбщегоНазначенияУХ.СсылкаНаОбъектИзНавигационнойСсылки(СокрЛП(НавигационнаяСсылка));
|
||||||
```
|
```
|
@ -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 Или Не ЭтоАббревиатура Тогда // это точно не аббревиатура
|
||||||
|
Слова[Индекс] = НРег(Слово);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат СокрЛП(СтрСоединить(Слова, " "));
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
```
|
@ -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);
|
||||||
|
СоответствующийСимвол = Раскладка.Получить(Символ);
|
||||||
|
Если СоответствующийСимвол = Неопределено Тогда
|
||||||
|
СимволыНовойСтроки.Добавить(Символ);
|
||||||
|
Иначе
|
||||||
|
СимволыНовойСтроки.Добавить(СоответствующийСимвол);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Строка = СтрСоединить(СимволыНовойСтроки, "");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
```
|
@ -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 Или Не ЭтоАббревиатура Тогда // это точно не аббревиатура
|
||||||
|
Слова[Индекс] = НРег(Слово);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат СокрЛП(СтрСоединить(Слова, " "));
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user