Имя: Пароль:
1C
Админ
Объект "Праздники" в 1с 7.7
0 exp3rt
 
22.11.10
16:06
Пишу табель учета рабочего времени для строительной организациии.
Не могу разобраться, как работать с Календарями и Праздниками в 1С 7.7. Нигде не нашел человеческого описания с примерами. Описание встроенного языка не помогло.

Для табеля учета рабочего времени хотел задать праздничные дни. В обработку закинул процедуру:

Процедура Выполнить()
   Празд=СоздатьОбъект("Календарь.Праздники");    
   Празд.Новый("01.01.2010",0);
   Празд.ВыбратьДаты(НачДата,КонДата);
   Пока Празд.СледующаяДата()=1 Цикл
        Сообщить(Празд.ПолучитьАтрибут (Празд.Дата)+Празд.ПолучитьАтрибут(Празд.Значение));
   КонецЦикла;

КонецПроцедуры

На строке     Празд.Новый("01.01.2010",0); конфигуратор вылетает с критической ошибкой.

В связи с чем хотел бы обратиться с вопросом: может ли кто-то объяснить как использовать объект праздники для задания праздничных дней или если, это возможно, ссылку на описание использования "Праздников".
Спасибо.
1 DrZombi
 
гуру
22.11.10
16:14
(0)Вот так

// Праздничные дни
Празд = СоздатьОбъект("Праздники");
Празд.Новый('01.05.99', 0)
2 DrZombi
 
гуру
22.11.10
16:15
+(0)Так то если ты посмотришь, то увидишь, что Праздник - это не совсем календарь :)
3 DrZombi
 
гуру
22.11.10
16:17
+(0)Вот все что есть

Методы праздников
Новый
Ввести новый «праздничный» день.
Синтаксис:
Новый(<Дата>, <Значение>)
Англоязычный синоним:
New
Параметры:
<Дата>
Дата нового праздника.

<Значение>
Положительное число с двумя знаками после запя­той (не более 100). Поскольку объект «Праздни­ки», как правило, используется для ввода выход­ных праздничных дней по календарям, то значе­ние, как правило, задают равным нулю.

Описание:
Метод Новый вводит и записывает новую запись (новый «праздничный» день).
Пример:
// Праздничные дни
Празд = СоздатьОбъект("Праздники");
Празд.Новый('01.05.99', 0)

Удалить
Удаляет «праздничный» день.
Синтаксис:
Удалить(<Дата>)
Англоязычный синоним:
Delete
Параметры:
<Дaтa>
Дата удаляемой строки (праздника).

Описание:
Метод Удалить позволяет удалить существующую запись («праздничный» день). Если строка с такой датой не найдена, то метод ничего не делает. Воз­вращаемого значения нет.
Пример:
// Праздничные дни
Празд = СоздатьОбъект("Праздники");
Празд.Удалить('01.05.99');

ВыбратьДаты
Открывает выборку записей праздников.
Синтаксис:

ВыбратьДаты(<ДатаНачала>, <ДатаОкончания>)
Англоязычный синоним:
SelectDates
Параметры:
<ДатаНачала>
Дата начала периода выборки.

<ДатаОкончания>
Дата окончания периода выборки.

Возвращаемое значение:
Число: 1 — выборка открыта и в ней есть хоть одна запись; 0 — не обнаруже­но записей.

Описание:
Метод ВыбратьДаты открывает выборку записей праздников. Выбираются все элементы с даты начала по дату окончания включительно.

Пример:
// Праздничные дни
Празд = СоздатьОбъект("Праздники");
Празд.ВыбратьДаты(ДатаНачала, ДатаОкончания);
Пока Празд.СледующаяДата() = 1 Цикл
  // ...
КонецЦикла;
См. также: СледующаяДата

СледующаяДата
Выбирает следующий день праздников в выборке.
Синтаксис:
СледующаяДата()

Англоязычный синоним:
NextDate

Возвращаемое значение:
Число: 1 — получена очередна язапись; 0 — не обнаружено очередной записи, т. е. конец выборки.

Описание:
Выбирает следующий день праздников (позиционируется на очередной за­писи выборки) в порядке дат.

Пример:
// Праздничные дни
Празд = СоздатьОбъект("Праздники");
Празд.ВыбратьДаты(ДатаНачала, ДатаОкончания);
Пока Празд.СледующаяДата() = 1 Цикл
  // ...
КонецЦикла;
См. также: ВыбратьДаты
4 exp3rt
 
22.11.10
16:55
За описание спасибо. Но все равно

Процедура Выполнить()
   Празд=СоздатьОбъект("Праздники");    
   Празд.Новый('01.01.2010',0);
   Празд.ВыбратьДаты(НачДата,КонДата);
   Пока Празд.СледующаяДата()=1 Цикл
        Сообщить(Празд.ПолучитьАтрибут(Празд.Дата)+Празд.ПолучитьАтрибут(Празд.Значение));
   КонецЦикла;

КонецПроцедуры

вылет с критической ошибкой на строке     Празд.Новый('01.01.2010',0); ;(
5 zuza
 
22.11.10
17:00
(4) хз..., может компонента рассчет нужна?
6 zuza
 
22.11.10
17:02
(5) бред...
7 zuza
 
22.11.10
17:03
+(5) А календари в метаданных есть вообще? Добавь какой-нить и попробуй ещё раз.
8 exp3rt
 
22.11.10
18:13
Спасибо! Добавил календарь "Служащие" и вылет с критической ошибкой пропал.

Процедура Выполнить()
   Празд=СоздатьОбъект("Праздники");    
   Празд.Новый('01.01.2010',0);
   Празд.ВыбратьДаты(НачДата,КонДата);
   Пока Празд.СледующаяДата()=1 Цикл
        Сообщить(Празд.ПолучитьАтрибут("Дата"));
   КонецЦикла;
КонецПроцедуры

Процедура работает без вопросов. Теперь осталось найти пример использования праздников ;)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс