gifts2017

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

Опубликовал Альберт (Alltruist) в раздел Отчеты - Бухгалтерские

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

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

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

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

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

См. также

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

Комментарии

1. Igоr Sаulеviсh (gutentag) 03.11.09 21:29
2. гр534 (rabanik) 17.11.09 19:08
3. ctankina ctankina (ctankina) 04.12.09 11:32
4. Павел Кузьмин (MOPC) 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 sound (sound) 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) 23.11.11 11:49
А для ЗУП 8.2 эта обработка будет работать?
14. Oleg Aizatulin (oaizatulin@yahoo.com) 28.12.11 13:17
Супер! Большое спасибо. Надесь быстро врубиться и внедрить до НГ
15. Oleg Aizatulin (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) 28.12.11 13:23
(15) oaizatulin@yahoo.com, я не понял о каком именно коде идет речь?
17. Александр Лагунов (kit) 26.01.12 01:07
Отчет пригодился, спасибо!
18. Andrew Ivanov (Andryuha83) 16.02.12 13:42
А там код открытый?
Нужно сделать такой отчет, жаль скачать пока не могу(
19. Татьяна Фролова (Мать Тереза) 16.02.12 13:58
Расчетные листки-хорошая вещь,частенько народ просит, а тут рассылкой-экономит время, особенно у кого штат большой.
20. Альберт (Alltruist) 16.02.12 14:36
21. Лариса Гайнуллина (lira_nk) 16.02.12 14:47
Полезная вещица,забираю :)
22. Александр (Gonza1978) 20.02.12 11:10
Отличная вещь!!! Самому поставили задачу доработать программу, чтобы можно было рассылать расчетные листки сотрудникам. Подумал, может есть что-то уже готовое. И точно - есть!
Реализовано лучше не придумаешь! В список рассылки попадают только те, у которых заполнено поле E-mail. Тема письма формируется автоматически и сразу понятная пользователям.
В ЗУП под 1С8.2 великолепно работает после стандартной конвертации. Единственное, у меня ранее встроенная учетная запись была настроена без реальной настройки пользователя POP3, а при рассылке расчетных листков почему то стала ругаться, что нет такого пользователя. Ну это мелочи, да и ругается скорее всего сам стандартный модуль рассылки.
23. aa aa (festiv1) 07.03.12 19:21
А можно отправить по e-mail altress@yandex.ru? не получается скачать
24. Ирина Борисычева (iran3) 05.04.12 13:12
Пожалуйста, скиньте этот отчетик на irbor@mail.ru. Очень нужно и время не терпит. Заранее большое спасибо!
25. Сергей (necropunk) 05.06.12 13:09
Жирный плюс. Хорошая реализация. Переписал под себя, все замечательно.
26. Павел (Pavel777777) 19.07.12 20:29
27. Михаил Дементиенко (Mixailo333) 19.09.12 22:54
Скажите, а как проверить корректность работы, если всем сотрудникам уже забит свой и-мейл? Не переделывать же вручную для каждого сотрудника на тестовый адрес...
28. Кирилл Раковский (RakovskiyK) 21.11.12 22:52
великолепно! как раз то, что нужно. пробовал другие, но здесь есть выборочная рассылка. работает великолепно.
29. Дмитрий Жиляков (Zhilyakovdr) 11.03.13 17:47
Отличная штука! Работает на Комплексной.
30. Nikita Baksheev (Baksheev-Nikita) 29.05.13 11:20
Хорошая публикация. Большой плюс в том, что вызывается стандартный типовой отчет, а на его основе формируются письма. Таким образом обновления типовых конфигураций не влияют на работоспособность данной обработки.
31. Роман Верховых (Lo1jke) 03.08.13 16:47
Изменил Вашу обработку и использую каждый месяц при рассылке расчеток. Спасибо большое за труды!
32. Людмила (Mila81) 04.12.13 15:34
33. Сергей (sergio199) 21.07.14 08:24
Интересная. Замечание хотелось бы добавить - желательно добавить проверку на наличие каталога и вообще поле для хранения файлов с расчетными листами вывести на форму. ну а так - респект за обработку!
34. Tala Strogaya (stroga) 29.07.16 16:31
Обработка проработала несколько лет. Сейчас выдает ошибку:
Обработка.РасчетныеЛисткиОрганизацийПоПочте.МодульОбъекта(515)}: Значение, соответствующее ключу, не задано
Сотрудник = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки].ПолучитьПоля()[0].Значение;
Причем только в клиент-серверном варианте работы 1С (УПП). В файловом варианте БД, локально без ошибок.
35. Альберт (Alltruist) 29.07.16 20:24
(34) stroga, а версия УПП какая?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа