Вот 1Совский код (мой):
Код:
Функция глНайтиШаблонФорматаОбъекта(ИмяШаблона, СПрописью = 0, СоСтатистикой = 0, ВернутьОбъект = 0) Экспорт
Если (ПустоеЗначение(ИмяШаблона) = 1) Тогда
Возврат ""; //Если ошибка или умышленно так вызвано
КонецЕсли;
//Создаём объект справочника, в котором будем ковырять нужные нам шаблоны
СпрШ = СоздатьОбъект("Справочник.ШаблоныФорматовСистемы");
//Смотрим что нам надо найти
СтрПоиска = ИмяШаблона;
Если (СПрописью <> 0) Тогда
СтрПоиска = ИмяШаблона + "Прописью";
КонецЕсли;
//Ищем или шаблон с точным соответствием его
Рез = СпрШ.НайтиПоНаименованию(СтрПоиска, 0, 1);
//Если нам так "повезло" что надо искать с просписью и для прописи он так и не был найден, то пытаемся найти обычный шаблон
Если ((Рез = 0) И (СПрописью <> 0)) Тогда
СтрПоиска = ИмяШаблона;
Рез = СпрШ.НайтиПоНаименованию(СтрПоиска, 0, 1);
КонецЕсли;
//Если что-то нашли - то обновим статистику (если надо) и вернём результат
Если (Рез = 1) Тогда
Если (СоСтатистикой <> 0) Тогда
СпрШ.Обращений = СпрШ.Обращений + 1;
СпрШ.Записать(); //В этом случае не надо вызывать глПриЗаписиСправочника(), так как изменение не интерактивное!
КонецЕсли;
//Возвращаем найденный объект в зависимости от его типа
Если (ВернутьОбъект = 0) Тогда
Возврат СокрЛП(СпрШ.Шаблон); //Вертаем нужный шаблончег! (поле "Шаблон")
Иначе
Возврат СпрШ.ТекущийЭлемент(); //Вертаем нужный шаблончег! (весь объект справочника)
КонецЕсли;
КонецЕсли;
Вот ишчо (это я в прошлом году сделал в своей 1Ске, где щиты проектирую, расчёт потерь нагрузок в линиях-кабелях):
Код:
//Смотрим, какой тип фаз нам дали и выставляем флаг ТрёхФаз или нет
ФлТриФазы = ?((ОбТипФазы = Перечисление.ВидФазыНагрузки.Трёхфазная) ИЛИ (ОбТипФазы = Перечисление.ВидФазыНагрузки.ТрёхфазнаяПолная), 1, 0);
//Проверяем входные параметры и пытаемся взять константы, если нам ни хера не дали
ОбНапряжение = ?(ПустоеЗначение(ОбНапряжение) = 1, ?(ФлТриФазы = 1, ?(ПустоеЗначение(Константа.ЩитНагрузкиНапряжение3Фазы) = 0, Константа.ЩитНагрузкиНапряжение3Фазы, 400), ?(ПустоеЗначение(Константа.ЩитНагрузкиНапряжение1Фаза) = 0, Константа.ЩитНагрузкиНапряжение1Фаза, 230)), ОбНапряжение);
ОбКосФИ = ?(ПустоеЗначение(ОбКосФИ) = 1, ?(ПустоеЗначение(Константа.ЩитНагрузкиКосинусФи) = 0, Константа.ЩитНагрузкиКосинусФи, 0.95), ОбКосФИ);
//Делаем ВСЕ расчёты разом, чтобы не выносить мозги и возвращать нужные
Если (ФлТриФазы = 0) Тогда //Однофазное
ТокНагрузки = (ОбМощность * 1000) / ОбНапряжение / ОбКосФИ;
АктивнаяМощность = ТокНагрузки * ОбНапряжение;
РеактивнаяМощность = КвaдpaтныйКopeнь(3 * (1 - (ОбКосФИ * ОбКосФИ))) * АктивнаяМощность;
ИначеЕсли (ФлТриФазы = 1) Тогда //Трёхфазное
ТокНагрузки = (((ОбМощность * 1000) / ОбНапряжение) / ОбКосФИ) / КореньТрёх;
АктивнаяМощность = ТокНагрузки * ОбНапряжение; //УТОЧНИТЬ, ТАК ЛИ ЭТО!
РеактивнаяМощность = КвaдpaтныйКopeнь(3 * (1 - (ОбКосФИ * ОбКосФИ))) * АктивнаяМощность;
КонецЕсли;
//Теперь считаем то, что нам дали
Если (ОбТипРасчёта = "Ток") Тогда
Возврат ТокНагрузки;
ИначеЕсли (ОбТипРасчёта = "МощАкт") Тогда
Возврат АктивнаяМощность;
ИначеЕсли (ОбТипРасчёта = "МощРАкт") Тогда
Возврат РеактивнаяМощность;
КонецЕсли;
Вот так это работает:
ShCalcLost-AC.gif ShCalcLost-DC.gif
А вот PHP (огрызок):
PHP код:
function cs_topmenu($menuName = "", $listClass = "")
{
$sl_menu_list = "";
//Получаем объект данного меню по имени
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menuName] ) )
{
//Получаем инфу про меню и его пункты
$menu = wp_get_nav_menu_object( $locations[ $menuName ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_count = count($menu_items);
//Начинаем выводить наш слайдер (меню), если оно не пустое
if($menu_count > 0)
{
$sl_menu_list .= "<ul class=\"" . $listClass . "\">\n";
//ВЫВОД СПЕЦИАЛЬНЫХ ССЫЛОК (Второе меню, низ, общее)
if(("csm_smain" == $menuName) && (true)) {
//Ссылка на вкладку "Блог" для всех постов. Получим, находимся ли мы на блоге или нет?
$bIsOnBlogPage = (is_home() or is_archive() or is_single() or is_paged() or is_search() or ( function_exists('is_tag') and is_tag()));
if ($bIsOnBlogPage) { $selClass = "current_page_item"; } else { $selClass = ""; }
//Если настроено выводить - выводим вкладку