Шаблоны Joomla 2.5 здесь: http://joomla25.ru/shablony/

Всякие самописные функции и методы

// Функция считает дату, отстоящую через заданное количество месяцев

Функция РасчетДатыЧерезКоличествоМесяцев(НачальнаяДата, КоличествоМесяцев)

    ДеньМесяца = День(НачальнаяДата);  //  Количество дней с начала месяца до начальной даты
    НачальныйМесяц = Месяц(НачальнаяДата);       
    НачальныйГод = Год(НачальнаяДата);
   
    ОбщееКоличествоМесяцев = НачальныйМесяц + КоличествоМесяцев;
    
    Если ОбщееКоличествоМесяцев >= 12 Тогда // переходит на следующий год
        КонечныйМесяц = ?(ОбщееКоличествоМесяцев%12 = 0, ОбщееКоличествоМесяцев, ОбщееКоличествоМесяцев%12);
        КонечныйГод = НачальныйГод +(ОбщееКоличествоМесяцев-КонечныйМесяц)/12;    
        КонечнаяДата = Дата(КонечныйГод, КонечныйМесяц, 1, 0, 0, 0) + ДеньМесяца * 86400 - 86400;  // Первый день тоже учитываем, поэтому отнимем один день
    Иначе  // В пределах одного года
        КонечныйМесяц = НачальныйМесяц + КоличествоМесяцев;  
        КонечныйГод = НачальныйГод;
        КонечнаяДата = Дата(КонечныйГод, ОбщееКоличествоМесяцев, 1 ,0 ,0 ,0) + ДеньМесяца * 86400 - 86400; // Первый день тоже учитываем, поэтому отнимем один день
    КонецЕсли;     
    Возврат КонечнаяДата;
КонецФункции

 

// Узнать программно имя базы 1С

ИмяБазы = Макс(НСтр(СтрокаСоединенияИнформационнойБазы(),"Ref"),НСтр(СтрокаСоединенияИнформационнойБазы(),"File"))

 

// Получение сотрудника пользователя в УНФ

&НаСервере
функция СотрудникПользователя(Пользователь) Экспорт
    
    Запрос = Новый Запрос;

    //Установка значений параметров
    Запрос.УстановитьПараметр("Пользователь", Пользователь);

    Запрос.Текст = "ВЫБРАТЬ
    |    СотрудникиПользователя.Сотрудник КАК Сотрудник,
    |    СотрудникиПользователя.Пользователь КАК Пользователь
    |ИЗ
    |    РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя
    |ГДЕ
    |    СотрудникиПользователя.Пользователь = &Пользователь
    |   И СотрудникиПользователя.Пользователь.Недействителен = ЛОЖЬ";

    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Возврат Справочники.Номенклатура.ПустаяСсылка()
    Иначе                  
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.Сотрудник;
    КонецЕсли;     
        
КонецФункции    

// Получение подразделения пользователя из поля "Основное подразделение" в личных настройках пользователя (как один из вариантов настроек подразделений)
&НаСервере
Функция ПодразделениеПользователя(Пользователь) Экспорт    // формирование подразделения из настроек пользователя
    
        //Текст сформирован автоматически из Управляемая консоль отчетов 3.8.9
    Запрос = Новый Запрос;

    //Установка значений параметров
    Запрос.УстановитьПараметр("Пользователь", Пользователь);
    Запрос.УстановитьПараметр("Настройка", ПланыВидовХарактеристик.НастройкиПользователей.ОсновноеПодразделение);   // Настройка

    Запрос.Текст = "ВЫБРАТЬ
    |    НастройкиПользователей.Пользователь КАК Пользователь,
    |    НастройкиПользователей.Настройка КАК Настройка,
    |    НастройкиПользователей.Организация КАК Организация,
    |    НастройкиПользователей.Значение КАК Значение
    |ИЗ
    |    РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
    |ГДЕ
    |    НастройкиПользователей.Настройка = &Настройка
    |    И НастройкиПользователей.Пользователь = &Пользователь";

    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Возврат Справочники.СтруктурныеЕдиницы.ПустаяСсылка()
    Иначе                  
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.Значение;
    КонецЕсли;     

    
КонецФункции