Контекст работы с календарями
Доступ к атрибутам и методам календарей осуществляется, например, через объект, созданный системной функцией СоздатьОбъект с ключевым словом "Календарь".
Англоязычный синоним ключевого слова "Календарь" – "Calendar".
Пример:
// Рассчитать продолжительность месяца в часах по календарю "Служащие" Календ = СоздатьОбъект("Календарь.Служащие"); Час = Календ.Часов('01.01.96', '31.01.96'); // Рассчитать продолжительность текущего расчетного // периода журнала расчетов Зарплата по календарю Служащие Календ = СоздатьОбъект("Календарь.Служащие"); ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата"); Час = Календ.Часов(ЖР.НачалоТекущегоПериода(), ЖР.КонецТекущегоПериода());
Кроме того, объекты типа "календарь" являются сохраняемыми, т. е. реквизиты справочников, документов, журналов расчета могут иметь тип "календарь" и хранить ссылки на объекты этого типа.
Пример:
Процедура ПровестиРасчет() // ВнСовместитель — реквизит журнала расчетов // Категории — периодический реквизит справочника ВнутренниеСовместители // Календарь — реквизит справочника Категории Календ = ВнСовместитель.Категория.Получить(ДатаОкончания).Календарь; // размер оклада Оклад = ВнСовместитель.Оклад.Получить(ДатаОкончания) * ВнСовместитель.Ставка.Получить(ДатаОкончания); Дней = Календ.Дней(ДатаНачала, ДатаОкончания); ВсегоДней = Календ.Дней(НачалоПериодаПоДате(ДатаНачала), КонецПериодаПоДате(ДатаНачала)); Если ВсегоДней > 0 Тогда Если Документ.Вид() = "НачалоМесяца" Тогда Результат = Окр(Оклад * Дней / ВсегоДней); Иначе Результат = -Окр(Оклад*Дней/ВсегоДней); КонецЕсли; Иначе Результат = 0; Сообщить("Неправильно указан календарь (" + Объект.Наименование + ")"); Сообщить("Возможно, не задана категория работника"); КонецЕсли; КонецПроцедуры
Контекст работы с праздниками
Доступ к атрибутам и методам праздников осуществляется через объект, создаваемый системной функцией СоздатьОбъект с ключевым словом "Праздники".
Англоязычный синоним ключевого слова "Праздники" – "Holidays".