Расчетные листки организации с рассылкой по почте. Вариант 2

Отчеты - Бухгалтерские

81
Расчетные листки организации с рассылкой по почте. Вызывается стандартный отчет и анализируется для формирования рассылки расчетных листков в формате xls на почтовые ящики сотрудников.

Решил адаптировать отчет для УПП и пришел к идее что лучше будет не копировать стандартный отчет и адаптировать, а вызвать его и проанализировать результаты. В общих чертах: из обработки открывается форма отчета "РасчетныеЛисткиОрганизаций", к ней присоединяется форма формирования рассылки.

Тестировалось в УПП 1.2.25.1 и ЗУП 2.5.17.8 и 2.5.18.2

81

Скачать файлы

Наименование Файл Версия Размер
РасчетныеЛисткиОрганизаций.epf
.epf 20,59Kb
23.07.13
580
.epf 20,59Kb 580 Скачать

См. также

Комментарии
Сортировка: Древо
1. gutentag 254 03.11.09 21:29 Сейчас в теме
2. rabanik 1 17.11.09 19:08 Сейчас в теме
3. ctankina 04.12.09 11:32 Сейчас в теме
4. MOPC 26 19.05.10 09:10 Сейчас в теме
Спасибо.

Модифицировал - добавил получение адреса электронной почты из AD.

Функция ПолучитьАдресЭлектроннойПочтыИзActiveDirectory(Объект) Экспорт
//
Адр = "";
АдоСоед = новый ComObject("ADODB.Connection");
АдоСоед.Provider = "ADSDSOObject";
АдоСоед.Open("ADs Provider");

query = "SELECT ADsPath FROM 'LDAP://DC=ВашДомен,DC=ru' WHERE objectClass='user' AND objectCategory='person' AND name = '"+Объект.Сотрудник.Наименование+"'";

Cmd = Новый ComObject("ADODB.Command");
Cmd.ActiveConnection = АдоСоед;
Cmd.CommandType = 1;
Cmd.CommandText= query;

Rs = новый ComObject("ADODB.RecordSet");

попытка
Rs = Cmd.Execute();

Rs.MoveFirst();
Пока Rs.EOF() = 0 do
Value1 = ПолучитьCOMОбъект(Rs.Fields("ADsPath").Value);
Адр = Value1.Mail;
Rs.MoveNext();
КонецЦикла;
исключение
Сообщить("Почтовый адрес в AD для сотрудника "+Объект.Сотрудник.Наименование+" не найден!");
конецпопытки;
Rs.Close();
Rs = NULL;
Cmd = NULL;
АдоСоед.Close();
АдоСоед = NULL;

возврат Адр;
конецфункции

//////////////////////////////////

Использование:

Процедура СформироватьТаблицуСотрудников(ТабличныйДокумент,ДанныеРасшифровки) Экспорт
...
Для каждого СтрокаТабл Из ТаблицаСотрудников Цикл
СтрокаТабл.Адрес=ПолучитьАдресЭлектроннойПочтыИзActiveDirectory(СтрокаТабл);
если ПустаяСтрока(СтрокаТабл.Адрес) тогда
СтрокаТабл.Адрес=ПолучитьАдресЭлектроннойПочтыИзКонтактнойИнформации(СтрокаТабл.Сотрудник.Физлицо);
конецесли;
Если ПустаяСтрока(СтрокаТабл.Адрес) Тогда
СтрокаТабл.Пометка=Ложь;
возврат;
КонецЕсли;
...
5. kate_kate 07.06.10 17:38 Сейчас в теме
Спасибо большое, очень помог этот отчетик
6. Anna_Vl 18.11.10 10:48 Сейчас в теме
Спасибо огромное, отличный отчет!
7. sound 527 29.12.10 00:03 Сейчас в теме
Ай маладца! Хотел уже сам писать. Лови жЫрный плюс!
8. nicon1984 02.02.11 23:19 Сейчас в теме
Отличная вещь=) попробовал на 2.5.31 все прекрасно работает, респект.
9. Lo1jke 05.07.11 14:19 Сейчас в теме
10. vlasov 20.07.11 17:36 Сейчас в теме
11. amalisheva 15.09.11 14:51 Сейчас в теме
хорошая вешь! огромное спасибо
12. aqua22 25.09.11 22:35 Сейчас в теме
Спасибо! Очень полезная обработка!
13. e_kazakova 80 23.11.11 11:49 Сейчас в теме
А для ЗУП 8.2 эта обработка будет работать?
14. oaizatulin@yahoo.com 28.12.11 13:17 Сейчас в теме
Супер! Большое спасибо. Надесь быстро врубиться и внедрить до НГ
15. oaizatulin@yahoo.com 28.12.11 13:18 Сейчас в теме
Скажите пож.
Модифицировал - добавил получение адреса электронной почты из AD.

Функция ПолучитьАдресЭлектроннойПочтыИзActiveDirectory(Объект) Экспорт
//
Адр = "";
АдоСоед = новый ComObject("ADODB.Connection");
АдоСоед.Provider = "ADSDSOObject";
АдоСоед.Open("ADs Provider");

query = "SEL ECT ADsPath FR OM 'LDAP://DC=ВашДомен,DC=ru' WHERE objectClass='user' AND objectCategory='person' AND name = '"+Объект.Сотрудник.Наименование+"'";

Cmd = Новый ComObject("ADODB.Command");
Cmd.ActiveConnection = АдоСоед;
Cmd.CommandType = 1;
Cmd.CommandText= query;

Rs = новый ComObject("ADODB.RecordSet");

попытка
Rs = Cmd.Execute();

Rs.MoveFirst();
Пока Rs.EOF() = 0 do
Value1 = ПолучитьCOMОбъект(Rs.Fields("ADsPath").Value);
Адр = Value1.Mail;
Rs.MoveNext();
КонецЦикла;
исключение
Сообщить("Почтовый адрес в AD для сотрудника "+Объект.Сотрудник.Наименование+" не найден!");
конецпопытки;
Rs.Close();
Rs = NULL;
Cmd = NULL;
АдоСоед.Close();
АдоСоед = NULL;

возврат Адр;
конецфункции

//////////////////////////////////
Показать


Использование:

Процедура СформироватьТаблицуСотрудников(ТабличныйДокумент,ДанныеРасшифровки) Экспорт
...
Для каждого СтрокаТабл Из ТаблицаСотрудников Цикл
СтрокаТабл.Адрес=ПолучитьАдресЭлектроннойПочтыИзActiveDirecto­ry(СтрокаТабл);
если ПустаяСтрока(СтрокаТабл.Адрес) тогда
СтрокаТабл.Адрес=ПолучитьАдресЭлектроннойПочтыИзКонтактнойИнф­ормации(СтрокаТабл.Сотрудник.Физлицо);
конецесли;
Если ПустаяСтрока(СтрокаТабл.Адрес) Тогда
СтрокаТабл.Пометка=Ложь;
возврат;
КонецЕсли;

а этот код как использовать?
16. Alltruist 110 28.12.11 13:23 Сейчас в теме
(15) oaizatulin@yahoo.com, я не понял о каком именно коде идет речь?
17. kit 65 26.01.12 01:07 Сейчас в теме
Отчет пригодился, спасибо!
18. Andryuha83 16.02.12 13:42 Сейчас в теме
А там код открытый?
Нужно сделать такой отчет, жаль скачать пока не могу(
20. Alltruist 110 16.02.12 14:36 Сейчас в теме
19. Мать Тереза 16.02.12 13:58 Сейчас в теме
Расчетные листки-хорошая вещь,частенько народ просит, а тут рассылкой-экономит время, особенно у кого штат большой.
21. lira_nk 16.02.12 14:47 Сейчас в теме
Полезная вещица,забираю :)
22. Gonza1978 20.02.12 11:10 Сейчас в теме
Отличная вещь!!! Самому поставили задачу доработать программу, чтобы можно было рассылать расчетные листки сотрудникам. Подумал, может есть что-то уже готовое. И точно - есть!
Реализовано лучше не придумаешь! В список рассылки попадают только те, у которых заполнено поле E-mail. Тема письма формируется автоматически и сразу понятная пользователям.
В ЗУП под 1С8.2 великолепно работает после стандартной конвертации. Единственное, у меня ранее встроенная учетная запись была настроена без реальной настройки пользователя POP3, а при рассылке расчетных листков почему то стала ругаться, что нет такого пользователя. Ну это мелочи, да и ругается скорее всего сам стандартный модуль рассылки.
23. festiv1 07.03.12 19:21 Сейчас в теме
А можно отправить по e-mail altress@yandex.ru? не получается скачать
24. iran3 05.04.12 13:12 Сейчас в теме
Пожалуйста, скиньте этот отчетик на irbor@mail.ru. Очень нужно и время не терпит. Заранее большое спасибо!
25. necropunk 5 05.06.12 13:09 Сейчас в теме
Жирный плюс. Хорошая реализация. Переписал под себя, все замечательно.
26. Pavel777777 53 19.07.12 20:29 Сейчас в теме
27. Mixailo333 19.09.12 22:54 Сейчас в теме
Скажите, а как проверить корректность работы, если всем сотрудникам уже забит свой и-мейл? Не переделывать же вручную для каждого сотрудника на тестовый адрес...
28. RakovskiyK 21.11.12 22:52 Сейчас в теме
великолепно! как раз то, что нужно. пробовал другие, но здесь есть выборочная рассылка. работает великолепно.
29. Zhilyakovdr 89 11.03.13 17:47 Сейчас в теме
Отличная штука! Работает на Комплексной.
30. Baksheev-Nikita 322 29.05.13 11:20 Сейчас в теме
Хорошая публикация. Большой плюс в том, что вызывается стандартный типовой отчет, а на его основе формируются письма. Таким образом обновления типовых конфигураций не влияют на работоспособность данной обработки.
31. Lo1jke 03.08.13 16:47 Сейчас в теме
Изменил Вашу обработку и использую каждый месяц при рассылке расчеток. Спасибо большое за труды!
32. Mila81 34 04.12.13 15:34 Сейчас в теме
33. sergio199 16 21.07.14 08:24 Сейчас в теме
Интересная. Замечание хотелось бы добавить - желательно добавить проверку на наличие каталога и вообще поле для хранения файлов с расчетными листами вывести на форму. ну а так - респект за обработку!
34. stroga 79 29.07.16 16:31 Сейчас в теме
Обработка проработала несколько лет. Сейчас выдает ошибку:
Обработка.РасчетныеЛисткиОрганизацийПоПочте.МодульОбъекта(515)}: Значение, соответствующее ключу, не задано
Сотрудник = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки].ПолучитьПоля()[0].Значение;
Причем только в клиент-серверном варианте работы 1С (УПП). В файловом варианте БД, локально без ошибок.
35. Alltruist 110 29.07.16 20:24 Сейчас в теме
(34) stroga, а версия УПП какая?
36. itriot11 36 29.12.16 12:10 Сейчас в теме
(35) столкнулся с тем же, что и (34)

1С:Предприятие 8.3 (8.3.9.1818)
Управление производственным предприятием, редакция 1.3 (1.3.85.2)

Правится изменением в двух местах этого:

ИдентификаторРасшифровки=ТабличныйДокумент.Область(НомерСтрокиНачалаРЛ+3,1 , НомерСтрокиНачалаРЛ+3,1 ).Расшифровка;
Сотрудник = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки].ПолучитьПоля()[0].Значение;

на это

Сотрудник = ТабличныйДокумент.Область(НомерСтрокиНачалаРЛ+3,1 , НомерСтрокиНачалаРЛ+3,1 ).Расшифровка;

Спасибо за разработку!
37. user752987 30.05.17 11:44 Сейчас в теме
Добрый день, скачали обработку, но при формировании списка выдает ошибку (во вложении). Как исправить ошибку?
Прикрепленные файлы:
ошибка расч.листки.docx
38. user817736 12.02.18 12:45 Сейчас в теме
Спасибо большое! Отлично работает и выручает.
39. sound 527 13.02.18 10:32 Сейчас в теме
Проверил еще раз, все работает
40. Alltruist 110 13.02.18 13:53 Сейчас в теме
Кто бы мог подумать! Написал эту обработку в 2009 году, а до сих пор живет...
41. alo2012 22 02.03.18 11:23 Сейчас в теме
Оставьте свое сообщение