gifts2017

Поздравление с Новым Годом 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
414
.epf 261,40Kb 414 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

* доработан показ дней (1 день, 2 дня, 5 дней и т.п.)
6. Oberonm (oberonm) 29.12.09 08:37
7. Катерина Шах (e-katerina) 29.12.09 10:29
Отлично! :D

А что касается идей: кол-во дней до нового года можно сделать бегущей строкой, а при открытии волшебник выдает небольшое "предсказание" методом случайного выбора.
8. Андрей (AKV77) 29.12.09 11:17
Спасибо, сделано со вкусом
9. Kenshin (kenshin) 29.12.09 16:33
Я б все таки тигра оставил на первой картинке, год тигра как ни как
10. Kenshin (kenshin) 29.12.09 16:40
11. Kenshin (kenshin) 29.12.09 16:43
{Форма.Форма(67)}: Ошибка при вызове метода контекста (Speak): Произошла исключительная ситуация (Agent.Control.2): Параметр задан неверно.

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

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

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


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

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

Больше никаких проблем не было, как видишь, никто не жалуется, ищи у себя :(
Или пиши более подробно.
26. Ольга (DanilovaOlga) 01.12.11 11:07
До сих пор наши вспоминают этот подарок под Новый год )) никто не работал, все анекдоты читали ))
27. Ольга (DanilovaOlga) 01.12.11 11:30
28. Ольга (DanilovaOlga) 01.12.11 11:30
29. Артур Аюханов (artbear) 01.12.11 11:44
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа