Поздравление с Новым Годом 2010 для 1С 8.1 - свободный доступ для всех :)

Опубликовал artbear в раздел Сообщество - Поздравления

Поздравление с Новым Годом 2010 для 1С 8.1 - обновил до версии 1.2.1
Включил свободный доступ для всех :)

Поздравление с Новым Годом 2010 для 1С 8.1

Моя обработка основана на аналогичной обработке для 1С 77
http://infostart.ru/public/61649

Версия 1.1

+ используются только новогодние анекдоты;

+ текст отображается не только в Агенте, но и на форме;

+ если Агента по разным причинам не удается загрузить, то обработка все равно работает, просто отображая текст на экране;

+ для каждой фоновой картинки используется свой цвет текста для лучшего восприятия.

Версия 1.2

- исправлен подсчет дней до НГ

* доработан показ дней (1 день, 2 дня, 5 дней и т.п.)

Версия 1.2.1

- исправлена ошибка при работе с поздравлениями.

Для новичков - для использования при начале работы пользователей

необходимо в модуле приложения конфигурации 8.1 выполнить следующее

1. в процедуре ПриНачалеРаботыСистемы добавить следующий код:

[code]
 ДатаПраздника = 31; МесяцПраздника = 12; //31.12
 РаботаемВСубботу = ЛОЖЬ;
 Если НужноВыводитьПоздравлениеСПраздниками(ДатаПраздника, МесяцПраздника, РаботаемВСубботу, лТекущаяДата) Тогда
  Попытка
  Открытка = ВнешниеОбработки.ПолучитьФорму("W:\артПоздравлениеСНовымГодом_2010.epf", "Форма"); 
  Открытка.Открыть();
  Исключение
  //ОписаниеОшибки()
  КонецПопытки;
 КонецЕсли;
[/code]

2. В модуль приложения добавить функцию
[code]
Функция НужноВыводитьПоздравлениеСПраздниками(ДатаПраздника, МесяцПраздника, РаботаемВСубботу, ТекущаяДатаДляОтладки = Неопределено)
 Если ЗначениеЗаполнено(ТекущаяДатаДляОтладки) Тогда
  лТекущаяДата = ТекущаяДатаДляОтладки;
 Иначе
  лТекущаяДата = ТекущаяДата();
 КонецЕсли;
 
 началоДняТекущейДаты = НачалоДня(лТекущаяДата);
 
 Если Месяц(лТекущаяДата) = МесяцПраздника Тогда
  ДеньНедели = ДеньНедели(Дата(Год(лТекущаяДата), МесяцПраздника, ДатаПраздника));
  Если ДеньНедели > 5 Тогда //Праздник попадает на Сб, Вс, открытку выводить нужно в Пт
  Если РаботаемВСубботу Тогда
  СмещениеДат = ДеньНедели - 6;
  Иначе
  СмещениеДат = ДеньНедели - 5;
  КонецЕсли;
  ИначеЕсли ДеньНедели < 3 Тогда //Праздник попадает на Пн, Вт, открытку выводить нужно в Пт, Сб
  Если РаботаемВСубботу Тогда
  СмещениеДат = 2;
  Иначе
  СмещениеДат = 3;
  КонецЕсли;
  Иначе
  СмещениеДат = 1;
  КонецЕсли;

  Если началоДняТекущейДаты = НачалоДня(Дата(Год(лТекущаяДата),МесяцПраздника,(ДатаПраздника - СмещениеДат))) Тогда
  ФизЛицо = глЗначениеПеременной("глТекущийПользователь").ФизЛицо;
  Если ЗначениеЗаполнено(ФизЛицо) Тогда
  Если ФизЛицо.Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда
  Возврат ЛОЖЬ;
  КонецЕсли;
  КонецЕсли;
  Возврат Истина;
  КонецЕсли;
 КонецЕсли;
 Возврат ЛОЖЬ;
КонецФункции
[/code]

Жду предложений по развитию + анекдотов + идей по оформлению/использованию.

PS Мои женщины (менеджеры, бухгалтера) всегда по-детски радуются подобным поздравлениям на праздники.

PPS долго ждал, пока кто-нибудь сделает для 8.1, но народ не спешил, пришлось самому заняться :)

Файлы

Наименование Файл Дата Размер Кол. Скачив.
артПоздравлениеСНовымГодом_2010.epf
.epf 261,40Kb
25.02.13
411
.epf 25.02.13 261,40Kb 411 Бесплатно

См. также

Лучшие комментарии

4. 321 (файл скачал) 29.12.2009 05:46
Все работает, отлично. Правда, считает странно :( . Пишет "Сегодня 29 декабря. До Нового года осталось 1 дней". Это по-нашему стопудово :D
Ответили: (5)
+ 2 [ O-Planet; artbear; ]
# Ответить
11. kenshin (файл скачал) 29.12.2009 16:43
{Форма.Форма(67)}: Ошибка при вызове метода контекста (Speak): Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.

гПерсонажАгента.Speak(наименование);
по причине:
Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.

при повторном нажатии на поздравления ошибка вылазить подправь и будет счастье
Ответили: (12) (14)
+ 1 [ artbear; ]
# Ответить

Комментарии

1. shaganel (файл скачал) 28.12.2009 17:07
Мило. Завтра как раз еду любимых клиентов поздравлять.
# Ответить
3. dobraleks 28.12.2009 18:10
прикольно.. :D ..
# Ответить
4. 321 (файл скачал) 29.12.2009 05:46
Все работает, отлично. Правда, считает странно :( . Пишет "Сегодня 29 декабря. До Нового года осталось 1 дней". Это по-нашему стопудово :D
Ответили: (5)
+ 2 [ O-Planet; artbear; ]
# Ответить
5. artbear 29.12.2009 06:53
Версия 1.2

- исправлен подсчет дней до НГ - Спасибо (4)

* доработан показ дней (1 день, 2 дня, 5 дней и т.п.)
# Ответить
6. oberonm (файл скачал) 29.12.2009 08:37
Молодец
# Ответить
7. e-katerina (файл скачал) 29.12.2009 10:29
Отлично! :D

А что касается идей: кол-во дней до нового года можно сделать бегущей строкой, а при открытии волшебник выдает небольшое "предсказание" методом случайного выбора.
# Ответить
8. AKV77 (файл скачал) 29.12.2009 11:17
Спасибо, сделано со вкусом
# Ответить
9. kenshin (файл скачал) 29.12.2009 16:33
Я б все таки тигра оставил на первой картинке, год тигра как ни как
# Ответить
10. kenshin (файл скачал) 29.12.2009 16:40
http://infostart.ru/public/61649

В тексте ошибки насчет года 20010
Ответили: (13)
# Ответить
11. kenshin (файл скачал) 29.12.2009 16:43
{Форма.Форма(67)}: Ошибка при вызове метода контекста (Speak): Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.

гПерсонажАгента.Speak(наименование);
по причине:
Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.

при повторном нажатии на поздравления ошибка вылазить подправь и будет счастье
Ответили: (12) (14)
+ 1 [ artbear; ]
# Ответить
12. artbear 29.12.2009 19:34
(11) Спасибо. Посмотрю
ЗЫ вроде все тестил :)
# Ответить
13. artbear 29.12.2009 19:35
(10) Не понял, ты про что написал?
# Ответить
14. artbear 29.12.2009 20:43
Выложена версия 1.2.1 - исправлена ошибка при работе с поздравлениями.

(11) Исправил
# Ответить
15. strange2007 (файл скачал) 30.12.2009 04:26
СУПЕР!!!!!!!!!!! Как я раньше не догадался?
# Ответить
16. elisabet (файл скачал) 30.12.2009 07:47
все прикольно, но только у нас год будет 2010, а не 20010 как у автора в одной примете, а так "+"
# Ответить
17. KIT_VIA (файл скачал) 30.12.2009 08:38
Большое спасибо, очень понравилось всем клиентам!!!
# Ответить
18. aipnnov (файл скачал) 30.12.2009 09:02
Для новичков - для использования при начале работы пользователей необходимо в модуле приложения конфигурации 8.1 в процедуре ПриНачалеРаботыСистемы добавить следующий код:
Если НачалоДня(ТекущаяДата())= НачалоДня(Дата(2009,12,30)) ИЛИ НачалоДня(ТекущаяДата())= НачалоДня(Дата(2009,12,31)) Тогда 
  Попытка
  Открытка = ВнешниеОбработки.ПолучитьФорму("W:\артПоздравлениеСНовымГодом_2010.epf", "Форма");
  //Открытка = Обработки.артПоздравлениеСНовымГодом_2010.ПолучитьФорму("Форма");
  Открытка.Открыть();
  Исключение
  //ОписаниеОшибки()
  КонецПопытки;
 КонецЕсли
...Показать Скрыть


По моему лучше этот код добавить в модуль самой обработки, а обращение к ней добавить в любой общий модуль, который вызывается из модуля приложения ПриНачалеРаботыСистемы, например в ЗавершениеРаботыПользователей -> УстановитьКонтрольРежимаЗавершенияРаботыПользователей() и конечно же между операторами препроцессора #Если Клиент Тогда и #КонецЕсли.
Это гораздо лучше т.к. можно добавлять в обработку любой праздник.
Ответили: (19)
# Ответить
19. artbear 30.12.2009 09:56
Выложил обработку в свободный доступ для всех - качайте сколько хотите :)

(18) Я специально написал "для новичков".
Более опытные разработчики могут придумывать различные варианты :)
Например, у меня юзается спец.класс с вызовом разных вариантов для различных праздников.
# Ответить
20. DarkSign 30.12.2009 12:14
А что-то не стартует оно при загрузке. Модуль поправил, права есть, интерфейс соответствует. Работает только с пинка, т.е. вручную...
Ответили: (25)
# Ответить
21. welik (файл скачал) 30.12.2009 13:01
Спасибо, идея очень нужная. Пошлые анекдоты пришлось удалить. ))
Ответили: (24)
# Ответить
22. TLS (файл скачал) 30.12.2009 13:49
Спасибо большое, поставила, наших порадовала )))
# Ответить
23. DanilovaOlga (файл скачал) 30.12.2009 16:02
Просто СУПЕЕЕР!!!! Пока всё работает! СПАСИИИБО!!!! От восторга прям распирает ))) :{}
Ответили: (24)
# Ответить
24. artbear 31.12.2009 10:45
(23) Всегда пожалуйста! :)
(21) Насчет пошлых - пока никто не жаловался, тем более, что самые пошлые я предпочитаю рассказывать лично уже самым достойным :)
# Ответить
25. artbear 31.12.2009 10:48
(20) Случайно хранилище не юзаешь? У меня лично была проблема, когда в конфу, подключенную к хранилищу, я пытался загрузить данный файл как обработку. Забыл флаг рекурсии поставить, и в итоге форма не грузилась.

Больше никаких проблем не было, как видишь, никто не жалуется, ищи у себя :(
Или пиши более подробно.
# Ответить
26. DanilovaOlga (файл скачал) 01.12.2011 11:07
До сих пор наши вспоминают этот подарок под Новый год )) никто не работал, все анекдоты читали ))
# Ответить
27. DanilovaOlga (файл скачал) 01.12.2011 11:30
Ждем на 2012 год ))
# Ответить
28. DanilovaOlga (файл скачал) 01.12.2011 11:30
Наши уже спрашивали ))
# Ответить
29. artbear 01.12.2011 11:44
Спасибо!
Подумаю.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл