Главная | О сайте | Новости | Статьи | Программы | OLAP | Ссылки |
|
||||||||||||||
На данной странице собраны некоторые полезные с моей точки зрения функции, которые могут пригодиться при разработке. Функции условно поделены на несколько категорий:
вспомогательные функции для использования недокументированных возможностей системной функции Шаблон()
функции для работы со строками с разделителем
функции для работы с массивами
Вспомогательные функции для вычисления выражений с помощью системной функции Шаблон()
Вспомогательные функции лучше всего вставить в глобальный модуль:
Вспомогательные функции для обработки строк с разделителем.
//=======================================
// Возвращает кол-во элементов в списке с разделителями (число)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Стр - строка списка с разделителями
// Разделитель - символ разделителя в списке
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Функция _КоличествоЭлементов
(Знач Стр,
Разделитель="~") Экспорт
Возврат СтрЧислоВхождений(Стр
,Разделитель);
КонецФункции
Ничего выдающегося, просто ее удобно использовать в цикле. Например,
Для
Индекс=1 По _КоличествоЭлементов
(Стр)
Цикл
...какие-то действия
КонецЦикла;
При разработке различных решений почти всегда используются различные массивы данных.
Это объекты типа "СписокЗначений", "ТаблицаЗначений", "Запрос". Для отладки можно использовать следующие функции и обработки:
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ТЗ - ТаблицаЗначений
// МодРежим - модальный режим (0-нет/1-да)
//======================================
Функция _ОтладкаТЗ(Знач ТЗ
,МодРежим=0)
Экспорт
Возврат ?(МодРежим
=0,ОткрытьФорму("Отчет.ОтладкаТЗ#"
,ТЗ),
ОткрытьФормуМодально("Отчет.ОтладкаТЗ#"
,ТЗ));
КонецФункции
А вот и собственно отчет, который вызывается функцией -
debugVT.rar
Функцию _ПечатьТЗ() можно использовать при необходимости быстрого вывода данных в результирующую таблицу для дальнейшей печати.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Вход: ТЗ - ТаблицаЗначений
// МодРежим - модальный режим (0-нет/1-да)
//=======================================
Функция _ПечатьТЗ(Знач
ТЗ,
МодРежим=0
) Экспорт
Возврат ?(МодРежим
=0,ОткрытьФорму("Отчет.ПечатьТЗ#"
,ТЗ),
ОткрытьФормуМодально("Отчет.ПечатьТЗ#"
,ТЗ));
КонецФункции
Это отчет, который вызывается функцией -
printVT.rar
Получилась довольно прикольная и в то же время мощная функция, позволяющая наложить фильтр по определенному значению.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Функция УстановитьЗначениеФильтра(
ТЗ,Колонка,
Значение)
НачСтрока=0;
КонСтрока=0;
ТЗ.Сортировать(
Колонка+"+");
ТЗ.НайтиЗначение(
Значение,НачСтрока,
Колонка);
БТ=СоздатьОбъект("ТаблицаЗначений"
);
Если НачСтрока
>0 Тогда
ТЗ.Выгрузить(
БТ,НачСтрока);
БТ.Сортировать(
Колонка+"-");
БТ.НайтиЗначение(
Значение,КонСтрока,
Колонка);
БТ.Выгрузить(
БТ,КонСтрока
);
КонецЕсли;
Возврат
БТ;
КонецФункции
Пример использования:
// ТабЗнач - таблица значений оригинал (ее оставляем без изменений).
// ТЗ - таблица с отфильтрованными данными (ее изменяем как угодно)
ТЗ=УстановитьЗначениеФильтра(ТабЗнач,ИДКолонки,Значение);
// Фильтруем в уже отфильтрованной.
ТЗ
=УстановитьЗначениеФильтра
(ТЗ
,ИДКолонки2
,Значение2
);
ТЗ=УстановитьЗначениеФильтра
(ТЗ,ИДКолонкиХХХ
,ЗначениеХХХ);
// и так до полного самоудовлетворения :-)