Рассылка расчетных листков по электронной почте для 1С:Зарплата и управление персоналом 8.2. Версия 3.

Публикация № 148281

Учет и отчетность - Зарплата

Инструмент позволяет сформировать Расчетные листки сотрудников организаций за произвольный период времени и отправить их на адреса электронной почты сотрудников и/или руководителей.
В версии 3 добавлена совместимость с последними релизами 1С ЗУП (в типовой конфигурации были изменены некоторые общие модули, которые использует обработка).

Инструмент позволяет сформировать Расчетные листки сотрудников организаций за произвольный период времени и отправить их на адреса электронной почты сотрудников и/или руководителей.

Для сотрудников формируются краткие расчетные листки, а для руководителя - подробные листки для проведения анализа результатов расчетов, в которых помимо сумм начислений и оплаченного времени выводятся периоды действия начислений и исходные показатели для расчета (тарифные ставки, проценты оплаты и т.п.).

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

Рассылка расчетных листков

После этого в дереве подразделений флажками помечаются нужные, при этом, автоматически заполняется список рассылки, сотрудниками из выбранных подразделений. В список не попадают увольенные, помещенные в архив или помеченные на удаление сотрудники. Руководители подразделений выделяются жирным шрифтом.

Руководителя подразделения можно задать в справочнике «Подразделения организаций».

Руководитель подразделения

Сотрудники, для которых не задан адрес электронной почты, и не удалось определить адрес электронной почты руководителя, выделяются красным цветом.

Адрес электронной почты сотрудника указывается в справочнике «Сотрудники».

Задание электронного адресе сотрудника

Желтым цветом выделяются сотрудики, которым можно отправить расчетные листки, но которые не отмечены соответствующими флажками.

Расчетные листки формируются с использованием алгоритмов отчета «Расчетные листки организации» типовой конфигурации 1С:Зарплата и управление персоналом 8.2 и отправляются через стандартный сервис электронной почты конфигурации.

Использования отчета не требует внесение никаких изменений в типовую конфигурацию и никак не влияет на ее обновление.

Использовать инструмент достаточно просто. Существует по крайней мере два способа.

1. Можно каждый раз открывать файл внешней обработки (у пользователя должны быть соответствующие права) через меню «Файл - Открыть».

2. Можно зарегистрировать внешнюю обработку в справочнике «Дополнительные внешние обработки» через меню «Сервис - Дополнительные отчеты и обработки». Пользователь может подключить обработку к конфигурации самостоятельно.

Чтобы подключить новую внешнюю обработку, нужно зарегистрировать ее в указанном справочнике. Для этого из формы списка справочника следует открыть форму регистрации, нажав на кнопку «Добавить». В открывшемся окне нужно указать файл внешней обработки с расширением .epf (кнопка «Заменить файл внешней обработки»). В поле Наименование автоматически отобразится название подключенной внешней обработки, которое можно изменить вручную. В поле Вид нужно выбрать вид обработки «Обработка».

Регистрация внешней обработки

Сведения о подключенных обработках отображаются в форме списка справочника. Для использования подключенной внешней обработки по назначению следует открыть форму списка справочника внешних обработок и дважды щелкнуть мышью по нужной записи.

Дополнительные внешние обработки


Новое в версии 2:

 

  1. Теперь обработка совместима как с конфигурацией 1С:Зарплата и управление персоналом КОРП, так и с 1С:Зарплата и управление персоналом.
  2. Добавлена обработка прерывания. Ход формирования и отправки расчетных листков можно прервать нажатием комбинации клавиш Ctrl + Break.
  3. Добавлена возможность произвольной сортировки списка отправки.
  4. В список отправки добавлены колонки «Емаил сотрудника» и «Емаил руководителя». По умолчанию эти колонки скрыты. При нажатии на список отправки правой клавишей мыши, можно вызвать контекстное меню, которое позволяет настроить сортировку списка, видимость колонок и вывести список на печать.
  5. Если сделать двойное нажатие левой клавишей мыши по подразделению, сотруднику или руководителю в списке отправки, то будет открыта форма соответствующего элемента справочника.
  6. Доработан индикатор прогресса отправки расчетных листков. Теперь он отображает общий процент выполнения (ранее отдельно отображался ход отправки сотрудникам и отдельно - руководителям).
  7. Реализована возможность выбирать тип расчетного листка для сотрудника и тип расчетного листка для руководителя. По умолчанию, для сотрудников формируются краткие расчетные листки, а для руководителя - подробные листки для проведения анализа результатов расчетов, в которых помимо сумм начислений и оплаченного времени выводятся периоды действия начислений и исходные показатели для расчета (тарифные ставки, проценты оплаты и т.п.). Тип расчетных листков можно изменить в настройках.
  8. В настройках можно указать формат файла, в который будет записываться сформированный расчетный листок и далее отправляться сотрудникам и/или руководителям. По умолчанию, в качестве формата файла выбран Документ PDF (*.pdf).
  9. В теме письма теперь отображается ФИО сотрудника или наименование подразделения, в случае отправки руководителю.
  10. Прочие мелкие доработки.

 Настройки программы

Настройка списка

Настройка списка

Вывод данных табличной части

 

В версии 3 добавлена совместимость с последними релизами 1С ЗУП (в типовой конфигурации были изменены некоторые общие модули, которые использует обработка).

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

Наименование Файл Версия Размер
PaySlips3.epf

.epf 28,45Kb
248
.epf 28,45Kb 248 Скачать
PaySlips2.epf

.epf 28,59Kb
83
.epf 28,59Kb 83 Скачать
PaySlips.epf

.epf 21,69Kb
86
.epf 21,69Kb 86 Скачать

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. djek88 1 13.09.12 10:30 Сейчас в теме
А в каком формате к получателю приходит расчЛисток?
2. Nicholas 763 13.09.12 12:20 Сейчас в теме
3. djek88 1 13.09.12 12:29 Сейчас в теме
т.е. перед отправкой получателю, копия расчЛистка остается на локальном диске?
4. Nicholas 763 13.09.12 13:53 Сейчас в теме
Совершенно верно. В случае отправки расчеток руководителю, во временной папке создаются файлы в формате Excel на каждого сотрудника, затем эти файлы архивируются и одним архивом отправляются. После отправки файлы удаляются.
5. djek88 1 13.09.12 14:30 Сейчас в теме
Как я понял из ответа, при отправке руководителю Ecxel файлы удаляются, а если просто сотруднику, то не удаляются. Так?
И еще вопросы:
1) Архив тоже удаляется после отправки?
2) Есть ли возможность запаролить архив?
6. Nicholas 763 13.09.12 14:57 Сейчас в теме
(5) djek88, сколько много вопросов :)
1. Архив удаляется. Теоретически, перед закрытием, 1С должна подчищать за собой временные папки. На практике - не проверял.
2. Данная обработка это не предусматривает, но доработать не сложно. Из синтаксис-помощника:
Новый ЗаписьZipФайла(<ИмяФайла>, <Пароль>,...)
Только для чего это нужно?
7. Mx00 234 12.11.12 03:23 Сейчас в теме
Спасибо за полезную игрушку, только вот играть в неё не удобно :-(
1. при открытии вываливается ошибка "ПодразделенияОрганизаций.Актуальность = ИСТИНА"
если уж выкладываешь, то либо тестируй на типовой конфигурации, либо сразу пиши проверку на наличие дополнительных реквизитов
2. При отправке нет обработки прерывания
3. Добавить в описание необходимость заполнения реквизита ответственный, (или текущий пользователь), а то при входе без учетной записи обработка что-то пытается отправить, но выдает ошибку.
4. список сотрудников нужно отсортировать по фамилиям по возрастанию вот так: СписокРассылки.Сортировать("Подразделение,Сотрудник");
5. если о сотруднику расчетный листок пустой, то его не нужно отправлять (например отпуск без содержания или новый сотрудник)
6. не корректная фраза "Желтым цветом выделяются сотрудики, которым можно отправить расчетные листки, но которые не отмечены соответствующими флажками"
если у сотрудника НЕТ e-mail, то ему нельзя отправить расчетный листок, но он будет желтым если снять флажок отправки руководителю

это были важные замечания (по моему мнению)
теперь НЕ важные :-) (просто хотелки)
1. Добавить в таблицу адреса сотрудников
в табличную часть добавить реквизит e_mail а в процедуру ДобавитьСотрудниковПодразделения добавить строку
СтрокаСпискаРассылки.e_mail = ПолучитьЕмаилФизлица(ВыборкаДетальныеЗаписи.Сотрудник.Физлицо);

2. открывать сотрудника (или физ.лицо) при клике в таблице
3. Индикатор процесса не адекватен :-) желательно сделать движение индикатора при каждом формировании расчетного листка
4. дать возможность указанию пользователю формата файла расчетного листка (тот xlsx который сейчас не везде открывается, варианты xlsx, xls, pdf)
5. Тема письма "Расчетные листки" добавить "по отделу ..."
6. Очепятки:
Этам 2 из 2
ИмяАрихива

З.Ы. а в целом очень обработка мне понравилась и уже используется, спасибо!
Vida; Nicholas; +2 1 Ответить
9. Nicholas 763 22.11.12 07:37 Сейчас в теме
(7), (8) Спасибо за отзывы. Обязательно сделаю то, о чем вы пишите. К сожалению, сейчас практически нет свободного времени. Поэтому, чуть позже.
13. v.vik 21.02.13 10:43 Сейчас в теме
(7) Mx00,
Подскажите, пожалуйста, как вы исправили эту ошибку:

{Форма.Форма.Форма(139)}: Ошибка при вызове метода контекста (Выполнить)
Подразделения = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
по причине:

по причине:
{(9, 29)}: Поле не найдено "ПодразделенияОрганизаций.Актуальность"
И ПодразделенияОрганизаций.<<?>>Актуальность = ИСТИНА

Заранее благодарю.
14. Mx00 234 21.02.13 11:59 Сейчас в теме
(13) Просто закомментировал эту строку и всё
15. Гость 21.02.13 12:20
(14) Mx00,

Простите, для меня наверное это сложно.....как это "закомментировал эту строку".
Что должно быть написано, чтобы исправить эту ошибку?
16. Mx00 234 21.02.13 12:50 Сейчас в теме
(15) это относится к программированию, нужно открыть конфигуратор и там уже разбираться с модулями. т.к. обработка не моя, то более конкретно не отвечу, вспоминать лень, а обучение программированию не мой конёк
21. Nicholas 763 21.02.13 18:32 Сейчас в теме
(7), (8), (10), (13) Если ничего не помешает, то завтра выложу новую версию обработки. Большую часть уже сделал, остались небольшие штрихи и тестирование.
(12) Обещаю подумать по поводу Английского языка, но с трудом представляю как это возможно. Вы вообще пробовали работать в английском интерфейсе? Если да, то поделитесь опытом.
8. RakovskiyK 21.11.12 22:42 Сейчас в теме
прикольная обработка, но так же думаю, что получать в виде Excel 2007|2010 не всем удобно :)
Nicholas; +1 Ответить
10. RakovskiyK 27.11.12 11:36 Сейчас в теме
Еще одно добавление: было бы не плохо добавить возможность выбора вида расчетного листка (подробный, краткий, для сотрудника), а по умолчанию "рассылать для сотрудника".

P.S. реально бесподобная обработка! до сих пор не могу нарадоваться! Еще раз спасибо!
11. Nicholas 763 27.11.12 12:58 Сейчас в теме
(10) Спасибо. Тоже была мысль сделать такую настройку. Обязательно реализую это позже.
12. RakovskiyK 24.12.12 16:52 Сейчас в теме
(11) приветствую вопрос: появились ли какие нибудь обновления в сей прекрасной обработке?

И еще один каприз, хотя быть может и не по адресу, а если сделать еще ее на английском языке? понимаю, что много геморроя, т.к. понимаю откуда берется информация (отчет то, грубо говоря, дефолтный), но тем не менее, быть может будет интересно решить и этот вопрос.

Заранее извиняюсь за возможную наглость и не сдержанность в просьбе :)
17. Nicholas 763 21.02.13 14:04 Сейчас в теме
Mx00, Виктория, подскажите, пожалуйста, а какая у вас конфигурация?
Потому как в типовой ЗУП КОРП этот реквизит имеется.
18. Mx00 234 21.02.13 14:25 Сейчас в теме
(17)не сложно догадаться, что Конфигурация: 1С:Зарплата и Управление Персоналом 8
НЕ КОРП :-)
19. Nicholas 763 21.02.13 14:36 Сейчас в теме
(18) Поделитесь, пожалуйста, конфигурацией, чтобы можно было провести полноценное тестирование. Краткое наименование конфигурации у вас "ЗарплатаИУправлениеПерсоналом"?
20. v.vik 21.02.13 15:40 Сейчас в теме
(19)
Добрый день, у меня конфигурация Зарплата и Управление Персоналом, редакция 2.5 (2.5.60.1)
22. MiB 07.03.13 12:16 Сейчас в теме
пишет вот такую хрень
{Форма.Форма.Форма(68)}: Метод объекта не обнаружен (ФамилияИнициалыФизЛица)
ИмяФайлаТ = "Расчетный листок_" + ОбщегоНазначения.ФамилияИнициалыФизЛица(Выборка.ФизЛицо) + "_" + ПредставлениеПериода(НачалоМесяца(Период), КонецМесяца(Период));
23. Nicholas 763 11.03.13 07:05 Сейчас в теме
(22) Уточните, пожалуйста, какая у вас конфигурация? Дело в том, что в моей обработке нет такой строки. Более того, я не нашел ничего подобного в типовой конфигурации 1С:Зарплата и управление персоналом КОРП.
24. MasterSVS 54 28.03.13 15:20 Сейчас в теме
Плюс...
На заметку : При выборе реквизита "Организация", таблица не обновляется...
Nicholas; +1 Ответить
25. d_control 3 28.08.13 12:20 Сейчас в теме
Добрый день.
Тоже хотим воспользоваться вашей обработкой.
Есть вопрос.
Бывали ли случаи блокировки адреса электронной почты, с которого отправляются листки?
Ведь это массовая рассылка, которая может не приветствоваться mail.ru, yandex.ru...

Что показывает ваша практика?
Прикрепленные файлы:
26. Nicholas 763 28.08.13 12:45 Сейчас в теме
(25) К сожалению, у меня нет опыта использования обработки совместно с внешними почтовыми сервисами, такими как mail.ru, yandex.ru и пр. С внутрекорпоративными почтовыми серверами, а также с облачными решениями типа Office365 работает отлично.
27. homer_ 76 12.09.13 09:09 Сейчас в теме
Воспользовался вашей обработкой, но пришлось переписать концепцию заполнения данных т.к. запросы не оптимальные (Запросы в цикле), из за чего все тормозит. + добавил возможность загрузки из AD.
В целом неплохое решение, но не оптимизированное.
З.Ы зачем при отправки письма считывать снова адрес если он уже есть в таблице?
28. Nicholas 763 12.09.13 10:40 Сейчас в теме
(27) homer_, спасибо за отзыв.
Буду благодарен, если поделитесь отпимизированными запросами.
Для загрузки данных из AD я пользуюсь другими механизмами.
Изначально адреса в таблице не было, позже, по просьбам пользователй, была сделана эта доработка, но, видимо, не во всех местах это учел.
29. homer_ 76 12.09.13 12:24 Сейчас в теме
Новый реквизит добавил "ЕмаилТолькоРуководителям"
ИТОбщийМодуль.ПоискПочтыПОЮзерувАД(мТабЕмейла);-тут сам должен уже разработать
Это модуль
Перем мГоловнаяОрганизация; // Хранит ссылку на головную организацию
Перем ФормаИндикатора;
Перем мРуководителю; // Хранит количество расчетных листков, подготовленных для рассылки руководителю
Перем мСотруднику; // Хранит количество расчетных листков, подготовленных для рассылки сотруднику
Перем мКонфигурация; // Хранит краткое имя конфигурации
Перем мКолЗаписей;
////////////////////////////////////////////////////////////­///////////////////
// ОБЩЕГО НАЗНАЧЕНИЯ                                                         //
////////////////////////////////////////////////////////////­///////////////////
 Перем мТабЕмейла,мСписок;

Процедура ДобавитьСотрудниковПодразделения(вхПодразделение)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	СотрудникиОрганизаций.Ссылка КАК Сотрудник,
	|	СотрудникиОрганизаций.Физлицо.СтраховойНомерПФР КАК СотрудникПФР,
	|	СотрудникиОрганизаций.ТекущееПодразделениеОрганизации КАК Подразделение,
	|	ЕСТЬNULL(ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо.СтраховойНомерПФР, """") КАК РуководительПФР,
	|	ЕСТЬNULL(ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо, """") КАК Руководитель
	|ИЗ
	|	Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)) КАК ОтветственныеЛицаОрганизацийСрезПоследних
	|		ПО СотрудникиОрганизаций.ТекущееПодразделениеОрганизации = ОтветственныеЛицаОрганизацийСрезПоследних.СтруктурнаяЕдиница
	|ГДЕ
	|	СотрудникиОрганизаций.ПометкаУдаления = ЛОЖЬ
	|	И СотрудникиОрганизаций.ТекущееПодразделениеОрганизации В(&ТекущееПодразделениеОрганизации)
	|	И СотрудникиОрганизаций.Актуальность = ИСТИНА
	|	И НАЧАЛОПЕРИОДА(СотрудникиОрганизаций.ДатаПриемаНаРаботу, МЕСЯЦ) <= НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ)
	|	И (КОНЕЦПЕРИОДА(СотрудникиОрганизаций.ДатаУвольнения, МЕСЯЦ) >= КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
	|			ИЛИ СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
	|
	|УПОРЯДОЧИТЬ ПО
	|	СотрудникиОрганизаций.Наименование";
	
	Запрос.УстановитьПараметр("Период", ПериодРегистрации);
	Запрос.УстановитьПараметр("ТекущееПодразделениеОрганизации", вхПодразделение);
	
	Результат = Запрос.Выполнить();
	
	ПоискВADЕмайла(Результат);
	
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		СтрокаСпискаРассылки = СписокРассылки.Добавить();
		СтрокаСпискаРассылки.Сотрудник = ВыборкаДетальныеЗаписи.Сотрудник;
		СтрокаСпискаРассылки.Подразделение = ВыборкаДетальныеЗаписи.Подразделение;
		СтрокаСпискаРассылки.Руководитель = ВыборкаДетальныеЗаписи.Руководитель;
		Состояние("Обработанно "+ СписокРассылки.Количество() + " из "+ мКолЗаписей + " записей");
		ТекЕмаилСотрудника = ПолучитьЕмаилФизлицаИзAD(ВыборкаДетальныеЗаписи.Сотрудник.Физлицо);
		ТекЕмаилРуководителя = ПолучитьЕмаилФизлицаИзAD(ВыборкаДетальныеЗаписи.Руководитель);
		Если ТекЕмаилСотрудника <> Неопределено Тогда
			СтрокаСпискаРассылки.ЕмаилСотрудника = ТекЕмаилСотрудника;
			СтрокаСпискаРассылки.ЕстьЕмаилСотрудника = Истина;
			Если ВыборкаДетальныеЗаписи.Сотрудник.Физлицо = ВыборкаДетальныеЗаписи.Руководитель Тогда
				СтрокаСпискаРассылки.ОтправитьСотруднику = Ложь;
			Иначе
				СтрокаСпискаРассылки.ОтправитьСотруднику = Истина;
			КонецЕсли;
		Иначе
			СтрокаСпискаРассылки.ЕстьЕмаилСотрудника = Ложь;
			СтрокаСпискаРассылки.ОтправитьСотруднику = Ложь;
		КонецЕсли;
		Если ТекЕмаилРуководителя <> Неопределено Тогда
			СтрокаСпискаРассылки.ЕмаилРуководителя = ТекЕмаилРуководителя;
			СтрокаСпискаРассылки.ЕстьЕмаилРуководителя = Истина;
			СтрокаСпискаРассылки.ОтправитьРуководителю = Истина;
		Иначе
			СтрокаСпискаРассылки.ЕстьЕмаилРуководителя = Ложь;
			СтрокаСпискаРассылки.ОтправитьРуководителю = Ложь;
		КонецЕсли;
		
		Если СтрокаСпискаРассылки.ОтправитьРуководителю Тогда
			мРуководителю = мРуководителю + 1;
		КонецЕсли;
		Если СтрокаСпискаРассылки.ОтправитьСотруднику Тогда
			мСотруднику = мСотруднику + 1;
		КонецЕсли;
		
	КонецЦикла;
	КоманднаяПанельСпискаРассылкиСнятьФлажкиСотрудник(Истина);
    ОбработатьСотрудниковБезДанныхВAD();
КонецПроцедуры // ДобавитьСотрудниковПодразделения()

Процедура ОбработатьСотрудниковБезДанныхВAD()
	Состояние("Поиск электронной почты в справочники Контактная информация");
	мТаб = ПолучитьЕмаилФизлица(СписокРассылки.ВыгрузитьКолонку("Сотрудник"));	
	Для Каждого Строки из СписокРассылки Цикл
		Если Строки.ЕстьЕмаилСотрудника = Ложь Тогда 
			мОтбор = мТаб.НайтиСтроки(Новый Структура("Объект",Строки.Сотрудник.Физлицо));
			Если мОтбор.Количество() > 0 Тогда 
				Строки.ЕмаилСотрудника = мОтбор[0].Представление;
				Строки.ЕстьЕмаилСотрудника = Истина;
				Строки.ОтправитьСотруднику = НЕ ЕмаилТолькоРуководителям;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	мТаб = ПолучитьЕмаилФизлица(СписокРассылки.ВыгрузитьКолонку("Руководитель"));
	Для Каждого Строки из СписокРассылки Цикл
		Если Строки.ЕстьЕмаилРуководителя = Ложь Тогда 
			мОтбор = мТаб.НайтиСтроки(Новый Структура("Объект",Строки.Руководитель));
			Если мОтбор.Количество() > 0 Тогда 
				Строки.ЕмаилРуководителя = мОтбор[0].Представление;
				Строки.ЕстьЕмаилРуководителя = Истина;
				Строки.ОтправитьРуководителю = Истина;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Состояние("");
КонецПроцедуры

Процедура ОбойтиУровеньДерева(Строки, ВидОбхода)
	Для каждого Строка из Строки Цикл
		
		Если ВидОбхода = "ДобавитьСотрудниковПодразделения" Тогда
			Если Строка.ФлагВыбора Тогда
				мСписок.Добавить(Строка.Подразделение);
			КонецЕсли;
		ИначеЕсли ВидОбхода = "УстановитьФлажки" Тогда
			Строка.ФлагВыбора = Истина;
		ИначеЕсли ВидОбхода = "СнятьФлажки" Тогда
			Строка.ФлагВыбора = Ложь;
		ИначеЕсли ВидОбхода = "ИнвертироватьФлажки" Тогда
			Если Строка.ФлагВыбора Тогда
				Строка.ФлагВыбора = Ложь;
			Иначе
				Строка.ФлагВыбора = Истина;
			КонецЕсли;
		ИначеЕсли ВидОбхода = "СвернутьВсе" Тогда
			ЭлементыФормы.Подразделения.Свернуть(Строка);
		ИначеЕсли ВидОбхода = "РазвернутьВсе" Тогда
			ЭлементыФормы.Подразделения.Развернуть(Строка, Истина);
		КонецЕсли;
		ОбойтиУровеньДерева(Строка.Строки, ВидОбхода);
	КонецЦикла;
КонецПроцедуры

Процедура ЗаполнитьДеревоПодразделений()
	
	Запрос = Новый Запрос;
	Если мКонфигурация = "ЗарплатаИУправлениеПерсоналомКОРП" Тогда
		
		Запрос.Текст = 
			"ВЫБРАТЬ РАЗРЕШЕННЫЕ
			|	ПодразделенияОрганизаций.Ссылка КАК Подразделение,
			|	ЛОЖЬ КАК ФлагВыбора
			|ИЗ
			|	Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
			|ГДЕ
			|	ПодразделенияОрганизаций.Владелец = &Владелец
			|	И ПодразделенияОрганизаций.ПометкаУдаления = ЛОЖЬ
			|	И ПодразделенияОрганизаций.Актуальность = ИСТИНА
			|
			|УПОРЯДОЧИТЬ ПО
			|	ПодразделенияОрганизаций.Наименование ИЕРАРХИЯ";
		
	Иначе
		
		Запрос.Текст = 
			"ВЫБРАТЬ РАЗРЕШЕННЫЕ
			|	ПодразделенияОрганизаций.Ссылка КАК Подразделение,
			|	ЛОЖЬ КАК ФлагВыбора
			|ИЗ
			|	Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
			|ГДЕ
			|	ПодразделенияОрганизаций.Владелец = &Владелец
			|	И ПодразделенияОрганизаций.ПометкаУдаления = ЛОЖЬ
			|
			|УПОРЯДОЧИТЬ ПО
			|	ПодразделенияОрганизаций.Наименование ИЕРАРХИЯ";
		
	КонецЕсли;
	
	Запрос.УстановитьПараметр("Владелец", Организация);
	
	Подразделения = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
	
	ЭлементыФормы.Подразделения.СоздатьКолонки();
	ЭлементыФормы.Подразделения.Колонки.ФлагВыбора.Видимость = ЛОЖЬ;
	ЭлементыФормы.Подразделения.Колонки.Подразделение.ДанныеФлажка = "ФлагВыбора";
	ЭлементыФормы.Подразделения.Колонки.Подразделение.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
	
КонецПроцедуры // ЗаполнитьДеревоПодразделений()

Процедура ЗаполнитьТаблицуРассылки()
	
	СписокРассылки.Очистить();
	мРуководителю = 0;
	мСотруднику = 0;
	ОбойтиУровеньДерева(Подразделения.Строки, "ДобавитьСотрудниковПодразделения");
	Если НЕ мСписок.Количество() = 0 Тогда 
		ДобавитьСотрудниковПодразделения(мСписок);
		мСписок.Очистить();
	КонецЕсли;
	СписокРассылки.Сортировать("Подразделение,Сотрудник");
	
КонецПроцедуры // ЗаполнитьТаблицуРассылки()

Функция ПолучитьЕмаилФизлица(вхФизлицо)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	|	СотрудникиОрганизаций.Физлицо
	|ПОМЕСТИТЬ мТабФизЛиц
	|ИЗ
	|	Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
	|ГДЕ
	|	(СотрудникиОрганизаций.Ссылка В (&Объект)
	|			ИЛИ СотрудникиОрганизаций.Физлицо В (&Объект))
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	КонтактнаяИнформация.Представление,
	|	ВЫБОР
	|		КОГДА КонтактнаяИнформация.ЗначениеПоУмолчанию
	|			ТОГДА 1
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК Приоритет,
	|	КонтактнаяИнформация.Объект
	|ИЗ
	|	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ мТабФизЛиц КАК мТабФизЛиц
	|		ПО КонтактнаяИнформация.Объект = мТабФизЛиц.Физлицо
	|ГДЕ
	|	КонтактнаяИнформация.Тип = &Тип
	|
	|УПОРЯДОЧИТЬ ПО
	|	Приоритет УБЫВ";
	
	Запрос.УстановитьПараметр("Объект", вхФизлицо);
	Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
	
	Результат = Запрос.Выполнить().Выгрузить();
	
	Возврат Результат;
	
КонецФункции // ПолучитьЕмаилФизлица()

Функция ПолучитьЕмаилФизлицаИзAD(вхФизлицо)
	Если НЕ ЗначениеЗаполнено(вхФизлицо) Тогда 
		Возврат Неопределено
	КонецЕсли;
	Если мТабЕмейла.Количество() = 0 Тогда 
		Возврат Неопределено
	КонецЕсли;
	мРез = мТабЕмейла.НайтиСтроки(Новый Структура("ПФР",вхФизлицо.СтраховойНомерПФР));
	ЕСли мРез.Количество() = 0 Тогда 
		Возврат Неопределено
	ИначеЕсли мРез.Количество() = 1 Тогда
		Возврат мРез.Получить(0).Почта;
	ИначеЕсли мРез.Количество() > 1 Тогда
		Возврат мРез.Получить(0).Почта;
	КонецЕсли;
	
КонецФункции // ПолучитьЕмаилФизлица()


Процедура ПоискВADЕмайла(Результат)
	Состояние("Поиск электронной почты в AD");
	мТабЕмейла.Очистить();
	мТабЕмейла = Результат.Выгрузить().ВыгрузитьКолонку("СотрудникПФР");
	мКолЗаписей = мТабЕмейла.Количество();
	Для Каждого Строки из Результат.Выгрузить().ВыгрузитьКолонку("РуководительПФР") Цикл
		мТабЕмейла.Добавить(Строки);
	КонецЦикла;
	мТабЕмейла = ИТОбщийМодуль.ПоискПочтыПОЮзерувАД(мТабЕмейла);
	мТабЕмейла.Свернуть("ПФР, Почта");
	Состояние("");
КонецПроцедуры
////////////////////////////////////////////////////////////­///////////////////
// ФОРМА                                                                     //
////////////////////////////////////////////////////////////­///////////////////

Процедура ОрганизацияПриИзменении(Элемент)
	
	ЗаполнениеДокументов.ПриИзмененииЗначенияОрганизации(ЭтотОбъект);
	мГоловнаяОрганизация = ОбщегоНазначенияЗК.ГоловнаяОрганизация(Организация);
	ЗаполнитьДеревоПодразделений();
	
КонецПроцедуры

Процедура ПериодРегистрацииРегулирование(Элемент, Направление, СтандартнаяОбработка)
	
	ПериодРегистрации = ДобавитьМесяц(ПериодРегистрации, Направление);
	Элемент.Значение = РаботаСДиалогами.ДатаКакМесяцПредставление(ПериодРегистрации);
	ЗаполнитьТаблицуРассылки();
	
КонецПроцедуры

Процедура ПериодРегистрацииНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
	
	РаботаСДиалогами.НачалоВыбораИзСпискаПредставленияПериодаРегистрации(Элемент, СтандартнаяОбработка, ПериодРегистрации, ЭтаФорма);
	ЗаполнитьТаблицуРассылки();
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////
// ДЕРЕВО ЗНАЧЕНИЙ "ПОДРАЗДЕЛЕНИЯ"                                           //
////////////////////////////////////////////////////////////­///////////////////

Процедура ПодразделенияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	ЗаполнитьТаблицуРассылки();
	
КонецПроцедуры

Процедура ПодразделенияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
	
	Если ДанныеСтроки.Родитель = Неопределено Тогда
		ОформлениеСтроки.Шрифт = Новый Шрифт(ОформлениеСтроки.Шрифт , , , Истина, Ложь);
	Иначе
		ОформлениеСтроки.Шрифт = Новый Шрифт(ОформлениеСтроки.Шрифт , , , Ложь, Ложь);
	КонецЕсли;
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////
// ТАБЛИЦА ЗНАЧЕНИЙ "СПИСОК РАССЫЛКИ"                                        //
////////////////////////////////////////////////////////////­///////////////////

Процедура СписокРассылкиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
	
	Если ДанныеСтроки.ЕстьЕмаилРуководителя = Ложь И ДанныеСтроки.ЕстьЕмаилСотрудника = Ложь Тогда
		ОформлениеСтроки.ЦветФона = Новый Цвет(255, 200, 200);
	ИначеЕсли ДанныеСтроки.ОтправитьРуководителю = Ложь И ДанныеСтроки.ОтправитьСотруднику = Ложь Тогда
		ОформлениеСтроки.ЦветФона = Новый Цвет(255, 255, 153);
	КонецЕсли;
	Если ДанныеСтроки.Руководитель = ДанныеСтроки.Сотрудник.Физлицо Тогда
		ОформлениеСтроки.Шрифт = Новый Шрифт(ОформлениеСтроки.Шрифт , , , Истина, Ложь);
	Иначе
		ОформлениеСтроки.Шрифт = Новый Шрифт(ОформлениеСтроки.Шрифт , , , Ложь, Ложь);
	КонецЕсли;
	Если ДанныеСтроки.ЕстьЕмаилРуководителя = Ложь Тогда
		ОформлениеСтроки.Ячейки.ОтправитьРуководителю.ТолькоПросмотр = Истина;
	КонецЕсли;
	Если ДанныеСтроки.ЕстьЕмаилСотрудника = Ложь Тогда
		ОформлениеСтроки.Ячейки.ОтправитьСотруднику.ТолькоПросмотр = Истина;
	КонецЕсли;
	
КонецПроцедуры

Процедура СписокРассылкиПриИзмененииФлажка(Элемент, Колонка)
	
	Если Колонка.Имя = "ОтправитьРуководителю" Тогда
		Если Элемент.ТекущаяСтрока.ОтправитьРуководителю Тогда
			мРуководителю = мРуководителю + 1;
		Иначе
			мРуководителю = мРуководителю - 1;
		КонецЕсли;
	КонецЕсли;
	Если Колонка.Имя = "ОтправитьСотруднику" Тогда
		Если Элемент.ТекущаяСтрока.ОтправитьСотруднику Тогда
			мСотруднику = мСотруднику + 1;
		Иначе
			мСотруднику = мСотруднику - 1;
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

Процедура СписокРассылкиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
	
	ИмяКолонки = Элемент.ТекущаяКолонка.Имя;
	Если ИмяКолонки = "Сотрудник" ИЛИ ИмяКолонки = "Подразделение" ИЛИ ИмяКолонки = "Руководитель" Тогда
		Элемент = Элемент.ТекущиеДанные[Элемент.ТекущаяКолонка.Имя];
		Если ЗначениеЗаполнено(Элемент) Тогда
			ФормаЭлемента = Элемент.ПолучитьФорму();
			ФормаЭлемента.Открыть();
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////
// КОМАНДНАЯ ПАНЕЛЬ ПОДРАЗДЕЛЕНИЯ                                            //
////////////////////////////////////////////////////////////­///////////////////

Процедура КоманднаяПанельПодразделенияУстановитьФлажки(Кнопка)
	
	СписокРассылки.Очистить();
	мРуководителю = 0;
	мСотруднику = 0;
	ОбойтиУровеньДерева(Подразделения.Строки, "УстановитьФлажки");
	ОбойтиУровеньДерева(Подразделения.Строки, "ДобавитьСотрудниковПодразделения");
	Если НЕ мСписок.Количество() = 0 Тогда 
		ДобавитьСотрудниковПодразделения(мСписок);
		мСписок.Очистить();
	КонецЕсли;
	СписокРассылки.Сортировать("Подразделение");
	
КонецПроцедуры

Процедура КоманднаяПанельПодразделенияСнятьФлажки(Кнопка)
	
	СписокРассылки.Очистить();
	мРуководителю = 0;
	мСотруднику = 0;
	ОбойтиУровеньДерева(Подразделения.Строки, "СнятьФлажки");
	ОбойтиУровеньДерева(Подразделения.Строки, "ДобавитьСотрудниковПодразделения");
	Если НЕ мСписок.Количество() = 0 Тогда 
		ДобавитьСотрудниковПодразделения(мСписок);
		мСписок.Очистить();
	КонецЕсли;
  	СписокРассылки.Сортировать("Подразделение");
	
КонецПроцедуры

Процедура КоманднаяПанельПодразделенияИнвертироватьФлажки(Кнопка)
	
	СписокРассылки.Очистить();
	мРуководителю = 0;
	мСотруднику = 0;
	ОбойтиУровеньДерева(Подразделения.Строки, "ИнвертироватьФлажки");
	ОбойтиУровеньДерева(Подразделения.Строки, "ДобавитьСотрудниковПодразделения");
	Если НЕ мСписок.Количество() = 0 Тогда 
		ДобавитьСотрудниковПодразделения(мСписок);
		мСписок.Очистить();
	КонецЕсли;
	СписокРассылки.Сортировать("Подразделение");
	
КонецПроцедуры

Процедура КоманднаяПанельПодразделенияУстановитьФлажкиПапка(Кнопка)
	
	СписокРассылки.Очистить();
	мРуководителю = 0;
	мСотруднику = 0;
	ЭлементыФормы.Подразделения.ТекущаяСтрока.ФлагВыбора  = Истина;
	ОбойтиУровеньДерева(ЭлементыФормы.Подразделения.ТекущаяСтрока.Строки, "УстановитьФлажки");
	ОбойтиУровеньДерева(Подразделения.Строки, "ДобавитьСотрудниковПодразделения");
	Если НЕ мСписок.Количество() = 0 Тогда 
		ДобавитьСотрудниковПодразделения(мСписок);
		мСписок.Очистить();
	КонецЕсли;
	СписокРассылки.Сортировать("Подразделение");
	
КонецПроцедуры

Процедура КоманднаяПанельПодразделенияСнятьФлажкиПапка(Кнопка)
	
	СписокРассылки.Очистить();
	мРуководителю = 0;
	мСотруднику = 0;
	ЭлементыФормы.Подразделения.ТекущаяСтрока.ФлагВыбора  = Ложь;
	ОбойтиУровеньДерева(ЭлементыФормы.Подразделения.ТекущаяСтрока.Строки, "СнятьФлажки");
	ОбойтиУровеньДерева(Подразделения.Строки, "ДобавитьСотрудниковПодразделения");
	СписокРассылки.Сортировать("Подразделение");
	
КонецПроцедуры

Процедура КоманднаяПанельПодразделенияСвернутьВсе(Кнопка)
	
	ОбойтиУровеньДерева(Подразделения.Строки, "СвернутьВсе");
	
КонецПроцедуры

Процедура КоманднаяПанельПодразделенияРазвернутьВсе(Кнопка)
	
	ОбойтиУровеньДерева(Подразделения.Строки, "РазвернутьВсе");
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////
// КОМАНДНАЯ ПАНЕЛЬ СПИСКА РАССЫЛКИ                                          //
////////////////////////////////////////////////////////////­///////////////////

Процедура КоманднаяПанельСпискаРассылкиУстановитьФлажкиРуководитель(Кнопка)
	
	мРуководителю = 0;
	Для Каждого СтрокаСписка Из СписокРассылки Цикл
		Если СтрокаСписка.ЕстьЕмаилРуководителя Тогда
			СтрокаСписка.ОтправитьРуководителю = Истина;
			мРуководителю = мРуководителю + 1;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

Процедура КоманднаяПанельСпискаРассылкиСнятьФлажкиРуководитель(Кнопка)
	
	мРуководителю = 0;
	Для Каждого СтрокаСписка Из СписокРассылки Цикл
		СтрокаСписка.ОтправитьРуководителю = Ложь;
	КонецЦикла;
	
КонецПроцедуры

Процедура КоманднаяПанельСпискаРассылкиИнвертироватьФлажкиРуководитель­(Кнопка)
	
	мРуководителю = 0;
	Для Каждого СтрокаСписка Из СписокРассылки Цикл
		Если СтрокаСписка.ЕстьЕмаилРуководителя Тогда
			Если СтрокаСписка.ОтправитьРуководителю = Истина Тогда
				СтрокаСписка.ОтправитьРуководителю = Ложь;
			Иначе
				СтрокаСписка.ОтправитьРуководителю = Истина;
				мРуководителю = мРуководителю + 1;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

Процедура КоманднаяПанельСпискаРассылкиУстановитьФлажкиСотрудник(Кнопка)
	
	мСотруднику = 0;
	Для Каждого СтрокаСписка Из СписокРассылки Цикл
		Если СтрокаСписка.ЕстьЕмаилСотрудника Тогда
			СтрокаСписка.ОтправитьСотруднику = Истина;
			мСотруднику = мСотруднику + 1;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

Процедура КоманднаяПанельСпискаРассылкиСнятьФлажкиСотрудник(Кнопка)
	Если ЕмаилТолькоРуководителям = Ложь Тогда 
		Возврат
	КонецЕсли;
	мСотруднику = 0;
	Для Каждого СтрокаСписка Из СписокРассылки Цикл
		СтрокаСписка.ОтправитьСотруднику = Ложь;
	КонецЦикла;
	
КонецПроцедуры

Процедура КоманднаяПанельСпискаРассылкиИнвертироватьФлажкиСотрудник(Кнопка)
	
	мСотруднику = 0;
	Для Каждого СтрокаСписка Из СписокРассылки Цикл
		Если СтрокаСписка.ЕстьЕмаилСотрудника Тогда
			Если СтрокаСписка.ОтправитьСотруднику = Истина Тогда
				СтрокаСписка.ОтправитьСотруднику = Ложь;
			Иначе
				СтрокаСписка.ОтправитьСотруднику = Истина;
				мСотруднику = мСотруднику + 1;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////
// КОМАНДНАЯ ПАНЕЛЬ СНИЗУ                                                    //
////////////////////////////////////////////////////////////­///////////////////

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	Если (мСотруднику + мРуководителю) = 0 Тогда
		Сообщить("Нет данных для отправки.", СтатусСообщения.Внимание);
		Предупреждение("Нет данных для отправки.", 60);
		Возврат;
	КонецЕсли;
	Если Не ЗначениеЗаполнено(Ответственный) Тогда
		Сообщить("Не заполнен обязательный реквизит ""Ответственный"".", СтатусСообщения.Внимание);
		Предупреждение("Не заполнен обязательный реквизит ""Ответственный"".", 60);
		Возврат;
	КонецЕсли;
	Если Не ЗначениеЗаполнено(Организация) Тогда
		Сообщить("Не заполнен обязательный реквизит ""Организация"".", СтатусСообщения.Внимание);
		Предупреждение("Не заполнен обязательный реквизит ""Организация"".", 60);
		Возврат;
	КонецЕсли;
	
	ОсновнаяУчетнаяЗапись = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Ответственный, "ОсновнаяУчетнаяЗапись");
	
	Если Лев(СокрЛП(ОсновнаяУчетнаяЗапись),18) = "<Объект не найден>" или Не ЗначениеЗаполнено(ОсновнаяУчетнаяЗапись) Тогда
		Сообщить("Нет доступа к учетной записи электронной почты.", СтатусСообщения.Внимание);
		Предупреждение("Нет доступа к учетной записи электронной почты.", 60);
		Возврат;
	КонецЕсли;
	
	ФормаИндикатора = ПолучитьОбщуюФорму("ХодВыполненияОбработкиДанных");
	ФормаИндикатора.НаименованиеОбработкиДанных = ЭтаФорма.Заголовок;
	ФормаИндикатора.КомментарийОбработкиДанных = "Ход выполнения отправки расчетных листков";
	ФормаИндикатора.Открыть();
	
	СписокФизлиц = Новый ТаблицаЗначений;
	СписокФизлиц.Колонки.Добавить("Подразделение");
	СписокФизлиц.Колонки.Добавить("Руководитель");
	СписокФизлиц.Колонки.Добавить("ЕмаилРуководителя");
	СписокФизлиц.Колонки.Добавить("Сотрудник");
	
	СписокРуководителей = Новый ТаблицаЗначений;
	ФизлицаРуководителя = Новый СписокЗначений;
	
	ФормаИндикатора.КомментарийЗначения = "Этап 1 из 2: Отправка расчетных листков сотрудникам";
	
	ОбщийСчетчик = 0;
	ФормаИндикатора.Значение = 0;
	Для Каждого СтрокаОтправки Из СписокРассылки Цикл
		
		Если Не ЗначениеЗаполнено(СтрокаОтправки.Сотрудник) Тогда
			Продолжить;
		КонецЕсли;
		
		Если СтрокаОтправки.ОтправитьСотруднику Тогда
			
			РезультатОтправки = ВыполнитьОтправку(СтрокаОтправки.Сотрудник.Физлицо, СтрокаОтправки.ЕмаилСотрудника, ?(ОтправлятьКопиюСотрудникаОтветственному, "", ""), ПериодРегистрации, ОсновнаяУчетнаяЗапись, "", ФормаИндикатора, ОбщийСчетчик, (мСотруднику + мРуководителю));
			Если РезультатОтправки = Истина Тогда
				Сообщить("Отправлено сотруднику """ + СтрокаОтправки.Сотрудник + """", СтатусСообщения.Информация);
			Иначе
				Сообщить("Не удалось отправить сотруднику """ + СтрокаОтправки.Сотрудник + """ по причине """ + РезультатОтправки + """", СтатусСообщения.Внимание);
			КонецЕсли;
			
		КонецЕсли;
		
		Если СтрокаОтправки.ОтправитьРуководителю И ЗначениеЗаполнено(СтрокаОтправки.Руководитель) Тогда
			НовасСтрока = СписокФизлиц.Добавить();
			НовасСтрока["Подразделение"] = СтрокаОтправки.Подразделение;
			НовасСтрока["Руководитель"] = СтрокаОтправки.Руководитель;
			НовасСтрока["ЕмаилРуководителя"] = СтрокаОтправки.ЕмаилРуководителя;
			НовасСтрока["Сотрудник"] = СтрокаОтправки.Сотрудник.Физлицо;
		КонецЕсли;
		
		ОбработкаПрерыванияПользователя();
		
	КонецЦикла;
	
	ФормаИндикатора.КомментарийЗначения = "Этап 2 из 2: Отправка расчетных листков руководителям";
	
	СписокРуководителей = СписокФизлиц.Скопировать();
	СписокРуководителей.Свернуть("Подразделение,Руководитель,ЕмаилРуководителя");
	
	Для Каждого СтрокаРуководителя Из СписокРуководителей Цикл
		
		ФизлицаРуководителя.Очистить();
		Для Каждого СтрокаФизлиц Из СписокФизлиц Цикл
			Если СтрокаФизлиц.Руководитель = СтрокаРуководителя.Руководитель Тогда
				ФизлицаРуководителя.Добавить(СтрокаФизлиц.Сотрудник);
			КонецЕсли;
		КонецЦикла;
		
		Если ФизлицаРуководителя.Количество() <> 0 Тогда
			РезультатОтправки = ВыполнитьОтправку(ФизлицаРуководителя, СтрокаРуководителя.ЕмаилРуководителя, ?(ОтправлятьКопиюРуководителяОтветственному, "", ""), ПериодРегистрации, ОсновнаяУчетнаяЗапись, СтрокаРуководителя.Подразделение, ФормаИндикатора, ОбщийСчетчик, (мСотруднику + мРуководителю));
			Если РезультатОтправки = Истина Тогда
				Сообщить("Отправлено руководителю подразделения """ + СтрокаРуководителя.Подразделение + """ """ + СтрокаРуководителя.Руководитель + """", СтатусСообщения.Информация);
			Иначе
				Сообщить("Не удалось отправить руководителю подразделения """ + СтрокаРуководителя.Подразделение + """ """ + СтрокаРуководителя.Руководитель + """ по причине """ + РезультатОтправки + """", СтатусСообщения.Внимание);
			КонецЕсли;
		Иначе
			Сообщить("Нет данных для отправки руководителю подразделения """ + СтрокаРуководителя.Подразделение + """ """ + СтрокаРуководителя.Руководитель + """", СтатусСообщения.Внимание);
		КонецЕсли;
		
		ОбработкаПрерыванияПользователя();
		
	КонецЦикла;
	
	ФормаИндикатора.Закрыть();
	
КонецПроцедуры

Процедура ОсновныеДействияФормыНастройки(Кнопка)
	
	ФормаНастройки = ПолучитьФорму("ФормаНастройки", ЭтаФорма);
	ФормаНастройки.Открыть();
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ                                                //
////////////////////////////////////////////////////////////­///////////////////

Процедура ПриОткрытии()
	
	ЗаполнениеДокументовПереопределяемый.ЗаполнитьШапкуДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"));
	ПериодРегистрации = ДобавитьМесяц(ПериодРегистрации, -1);
	МесяцСтрока = РаботаСДиалогами.ДатаКакМесяцПредставление(ПериодРегистрации);
	мГоловнаяОрганизация = ОбщегоНазначенияЗК.ГоловнаяОрганизация(Организация);
	ЗаполнитьДеревоПодразделений();
	
	ТипРасчеткиРуководителю = "Подробно";
	ТипРасчеткиСотруднику = "Рабочий";
	ТипФайла = "PDF";
	ЕмаилТолькоРуководителям = Истина;
	
КонецПроцедуры

Процедура СписокРассылкиЕмаилРуководителяПриИзменении(Элемент)
	 ЭлементыФормы.СписокРассылки.ТекущаяСтрока.ЕстьЕмаилРуководителя = ЗначениеЗаполнено(Элемент.значение);
	 ЭлементыФормы.СписокРассылки.ТекущаяСтрока.ОтправитьРуководителю = ЗначениеЗаполнено(Элемент.значение);
КонецПроцедуры

Процедура СписокРассылкиЕмаилСотрудникаПриИзменении(Элемент)
	ЭлементыФормы.СписокРассылки.ТекущаяСтрока.ЕстьЕмаилСотрудника = ЗначениеЗаполнено(Элемент.значение);
	ЭлементыФормы.СписокРассылки.ТекущаяСтрока.ОтправитьСотруднику = ЗначениеЗаполнено(Элемент.значение);
КонецПроцедуры

мТабЕмейла = Новый Массив;
мСписок = Новый Массив
Показать


Это модуль обработки

Функция СоздатьРасчеткуПоСотруднику(вхФизлицо, вхПериод, ВидРасчетки = "Подробно")
	
	ОтчетРасчетныеЛисткиОрганизаций = Отчеты.РасчетныеЛисткиОрганизаций.Создать();
	
	ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "НачалоПериода", НачалоМесяца(вхПериод));
	ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "КонецПериода", КонецМесяца(вхПериод));
	ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "Группировать", Ложь);
	ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "ВидРасчетногоЛистка", ВидРасчетки);
	ТиповыеОтчеты.ДобавитьОтбор(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "ФизЛицо", вхФизлицо);
	
	ТабличныйДокументРасчетныйЛисток = Новый ТабличныйДокумент;
	ТабличныйДокументРасчетныйЛисток.АвтоМасштаб = Истина;
	ТабличныйДокументРасчетныйЛисток.Защита = Истина;
	ТабличныйДокументРасчетныйЛисток.ТолькоПросмотр = Истина;
	//ТабличныйДокументРасчетныйЛисток.КодЯзыкаМакета = "En";
	
	ОтчетРасчетныеЛисткиОрганизаций.СформироватьОтчет(ТабличныйДокументРасчетныйЛисток);
	
	ИмяФайла = СокрЛП(вхФизлицо.Наименование);
	КаталогФайла = КаталогВременныхФайлов();
	
	ТекИмяФайла = КаталогФайла + ИмяФайла + "." + НРег(ТипФайла);
	ТабличныйДокументРасчетныйЛисток.Записать(ТекИмяФайла, ТипФайлаТабличногоДокумента[ТипФайла]);
	
	Возврат ТекИмяФайла;
	
КонецФункции // СоздатьРасчеткуПоСотруднику()

Функция ВыполнитьОтправку(вхФизлица, вхЕмаил, вхКопия, вхПериод, вхУчетнаяЗаписьПочты, вхПодразделение, ФормаИндикатора, ОбщийСчетчик, ВсегоРесчеток) Экспорт
	
	Успех = Истина;
	
	СписокФайловНаУдаление = Новый СписокЗначений;
	
	ИмяАрихива = СтрЗаменить(СтрЗаменить(СтрЗаменить(Строка(Формат(ТекущаяДата(), "ДФ='dd.MM.yy hh:mm:ss'")), ".", ""), ":", ""), " ", "") + ".zip";
	ИмяАрихиваПолное = КаталогВременныхФайлов() + ИмяАрихива;
	АрхивФайлов = Новый ЗаписьZipФайла(ИмяАрихиваПолное, , , МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Оптимальный, МетодШифрованияZIP.AES128);
	
	ТелоПисьма = "";
	Если ТипЗнч(вхФизлица) = Тип("СписокЗначений") Тогда
		ТемаПисьма = "Расчетные листки" + ?(вхПодразделение = "", "", " по подразделению " + вхПодразделение) + " за " + РаботаСДиалогами.ДатаКакМесяцПредставление(вхПериод);
		ТелоПисьма = ТелоПисьма + "<p>Во вложении расчетные листки сотрудников:
    "; Для СчетчикЦикла = 0 По вхФизлица.Количество() - 1 Цикл ТелоПисьма = ТелоПисьма + "
  • " + вхФизлица.Получить(СчетчикЦикла).Значение + ""; ТекИмяФайла = СоздатьРасчеткуПоСотруднику(вхФизлица.Получить(СчетчикЦикла).Значение, вхПериод, ТипРасчеткиРуководителю); СписокФайловНаУдаление.Добавить(ТекИмяФайла); АрхивФайлов.Добавить(ТекИмяФайла, РежимСохраненияПутейZIP.НеСохранятьПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать); ОбщийСчетчик = ОбщийСчетчик + 1; ФормаИндикатора.Значение = ОбщийСчетчик / ВсегоРесчеток * 100; КонецЦикла; ТелоПисьма = ТелоПисьма + "
</p>" ИначеЕсли ТипЗнч(вхФизлица) = Тип("СправочникСсылка.ФизическиеЛица") Тогда ТемаПисьма = "Расчетный листок сотрудника " + вхФизлица + " за " + РаботаСДиалогами.ДатаКакМесяцПредставление(вхПериод); ТелоПисьма = ТелоПисьма + "<p>Во вложении расчетный листок сотрудника:
  • " + вхФизлица + "
</p>"; ТекИмяФайла = СоздатьРасчеткуПоСотруднику(вхФизлица, вхПериод, ТипРасчеткиСотруднику); СписокФайловНаУдаление.Добавить(ТекИмяФайла); АрхивФайлов.Добавить(ТекИмяФайла, РежимСохраненияПутейZIP.НеСохранятьПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать); ОбщийСчетчик = ОбщийСчетчик + 1; ФормаИндикатора.Значение = ОбщийСчетчик / ВсегоРесчеток * 100; КонецЕсли; ТелоПисьма = ТелоПисьма + "<p>Ответственный: " + Ответственный + " </p>"; АрхивФайлов.Записать(); Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераSMTP = вхУчетнаяЗаписьПочты.SMTPСервер; Профиль.ВремяОжидания = вхУчетнаяЗаписьПочты.ВремяОжиданияСервера; Профиль.Пароль = вхУчетнаяЗаписьПочты.Пароль; Профиль.ПарольSMTP = вхУчетнаяЗаписьПочты.ПарольSMTP; Профиль.Пользователь = вхУчетнаяЗаписьПочты.Логин; Профиль.ПользовательSMTP = вхУчетнаяЗаписьПочты.ЛогинSMTP; Профиль.ПортSMTP = вхУчетнаяЗаписьПочты.ПортSMTP; //Профиль = УправлениеЭлектроннойПочтой.ПолучитьИнтернетПочтовыйПрофиль(вхУчетнаяЗаписьПочты); Сообщение = Новый ИнтернетПочтовоеСообщение; Сообщение.Отправитель = вхУчетнаяЗаписьПочты.АдресЭлектроннойПочты; Сообщение.ИмяОтправителя = "ZUP"; Сообщение.Получатели.Добавить(вхЕмаил); Если вхКопия <> "" Тогда Сообщение.Копии.Добавить(вхКопия); КонецЕсли; Сообщение.Тема = ТемаПисьма; Сообщение.Тексты.Добавить(ТелоПисьма + "<p>При сотрудничестве с 1С</p>", ТипТекстаПочтовогоСообщения.HTML); Сообщение.Вложения.Добавить(ИмяАрихиваПолное); Почта = Новый ИнтернетПочта; Попытка Почта.Подключиться(Профиль); Исключение Успех = "Не удалось подключить профиль электронной почты по причине: " + ОписаниеОшибки(); КонецПопытки; Попытка Почта.Послать(Сообщение); ЗаписьЖурналаРегистрации("Письма.Отправленные",УровеньЖурналаРегистрации.Информация, , ,"Отправленно на " + СокрЛП(Строка(вхЕмаил)) + " по сотрудникам: " + СокрЛП(ТелоПисьма)); Исключение Успех = "Не удалось отправить сообщение электронной почты по причине: " + ОписаниеОшибки(); ЗаписьЖурналаРегистрации("Письма.Ошибка",УровеньЖурналаРегистрации.Ошибка, , ,"Ошибка отправления на " + СокрЛП(Строка(вхЕмаил)) + " по сотрудникам: " + СокрЛП(ТелоПисьма)); КонецПопытки; Попытка Почта.Отключиться(); Исключение Успех = "Не удалось отключиться от электронной почты по причине: " + ОписаниеОшибки(); КонецПопытки; Сообщение.Вложения.Очистить(); Для Каждого ФайлНаУдаление Из СписокФайловНаУдаление Цикл Попытка УдалитьФайлы(ФайлНаУдаление); Исключение Успех = "Не удалось удалить файл " + ФайлНаУдаление + " по причине: " + ОписаниеОшибки(); КонецПопытки; КонецЦикла; Попытка УдалитьФайлы(ИмяАрихиваПолное); Исключение Успех = "Не удалось удалить файл " + ТекИмяФайла + " по причине: " + ОписаниеОшибки(); КонецПопытки; Возврат Успех; КонецФункции // ВыполнитьОтправку()
Показать
30. b-dm 169 29.07.14 10:39 Сейчас в теме
А зачем постоянно в зипе отправлять даже если указан Excel ?
31. Nicholas 763 30.07.14 09:13 Сейчас в теме
(30) Для снижения траффика и нагрузки на почтовые сервера. При необходимости можно легко доработать это и сделать архивирование опцией.
32. AlexGS 28.11.14 14:17 Сейчас в теме
Под ЗКБУ работать будет?
33. Nicholas 763 28.11.14 16:12 Сейчас в теме
34. b-dm 169 18.12.15 13:20 Сейчас в теме
Планируется ли поддерживать, дорабатывать публикацию ?))
35. Nicholas 763 19.12.15 17:47 Сейчас в теме
Готов доработать под ваши требования и любую конфигурацию. Стоимость и сроки обсуждаемы.
36. b-dm 169 24.12.15 11:32 Сейчас в теме
Пишет ошибку, но отсылает :)
37. Swetlana 20 13.11.17 12:52 Сейчас в теме
Обработка еще работоспособна?)
38. Nicholas 763 13.11.17 17:14 Сейчас в теме
(37) Да, у меня в одной базе до сих пор работает.
39. ninch 51 31.03.18 10:57 Сейчас в теме
Спасибо. Все работает. Версию 3 пользую
40. гаврюша 2 24.05.19 15:01 Сейчас в теме
Спасибо за обработку. Очень классная, выручила. Работает на УПП релиз 1.3.121.2
Может кто подскажет как в zip добавить пароль, чтобы прочитать мог только получатель, который знает пароль архива?
Оставьте свое сообщение

См. также

Групповая установка даты выплаты в документах "Отпуск" и "Командировка" на заданную дату и перерасчет отобранных документов Промо

Обработка документов Зарплата Управление персоналом (HRM) Зарплата v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Обработка позволяет расчетчикам сократить время, затрачиваемое на расчет отпусков и командировок.

2 стартмани

15.02.2017    16894    86    ser6702    18    

Представления в ЗУП

Зарплата Расчетные механизмы v8 v8::СПР v8::СКД ЗУП3.x БУ Абонемент ($m)

Использование представлений вместо прямого чтения из регистров сведений в ЗУП.

5 стартмани

12.04.2021    3581    7    Gladkov_Anton    12    

Помощник подготовки данных для СЗВ-ТД

Зарплата Обработка документов Документооборот и делопроизводство v8 v8::СПР ЗКГУ3.0 ЗУП3.x Россия БУ ФОМС, ПФ, ФСС Абонемент ($m)

С 1 января 2020 г. начался переход на электронные трудовые книжки. Работодателям в 2020 г. предстоит выполнить ряд мероприятий для перехода на ЭТК, а также ежемесячно отчитываться в ПФР обо всех кадровых изменениях по форме СЗВ-ТД. В этой публикации размещена обработка, которая поможет быстро подготовить кадровые документы для заполнения СЗВ-ТД в программе 1С ЗУП 3.1, 1С ЗКГУ 3.1.

1 стартмани

23.01.2020    12633    112    Kaval88    62    

ЗУП 3.1.10 или когда пропадают элементы в отборах списком

Адаптация типовых решений Зарплата Зарплата v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

ЗУП 3.1.10 значительно изменил функционал формы отчетов по сравнению с 3.1.9, 3.1.8 и т.д.. В отчетах в отборах с видом сравнения: В списке, В группе из списка - неприятно, но стали пропадать из списков не отмеченные флажком элементы. Данное расширение решает проблему, не изменяя типовой функционал.

1 стартмани

31.07.2019    11610    7    sapervodichka    6    

Конвертация данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Промо

Внешние источники данных Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 КА1 ЗУП2.5 УПП1 БГУ Россия БУ Госбюджет Абонемент ($m)

Перенос данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Переносит данные сотрудника, физического лица и начисления за произвольный период

1 стартмани

10.06.2014    36918    67    kns77    87    

Подсистема справок (ЗУП 3.х)

Универсальные печатные формы Справки Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Подсистема справок внешней печатной формой для 1C: Зарплата и Управление Персоналом, редакция 3.х.

1 стартмани

25.04.2019    15579    24    🅵🅾️🆇    17    

Красивые письма из 1С

Email v8 v8::БУ БП3.0 Россия Абонемент ($m)

Как отправлять из типовой конфигурации (БП 3.0) красивые электронные письма без редактирования конфигурации, регистрации и смс.

1 стартмани

02.02.2019    16376    33    maxkrezi    19    

Ошибки, предупреждения и прочее из журнала регистрации на почту и в Telegram автоматически (БП 3, ЗУП 3.1, УТ 11.4, ERP 2.4, Розница 2.2)

Журнал регистрации Поиск данных Тестирование и исправление Email v8 Розница УНФ ERP2 ЗКГУ3.0 БП3.0 УТ11 ЗУП3.x Абонемент ($m)

Данная обработка позволяет анализировать журнал регистрации с пользовательским отбором (4 критерия отбора) и высылать отчет пользователю с заданной периодичностью на электронную почту или в Телеграм. Возможно использовать как регламентное задание (автоматическая отправка отчетов по времени), непосредственно запускать из клиента, а также выгружать в форму обработки отфильтрованные данные из журнала регистрации без отправки.

2 стартмани

28.01.2019    13230    42    Redinternational    3    

Выгрузка документов из ЗУП в БП (1С 8.2-8.3) Промо

Перенос данных из 1C8 в 1C8 Зарплата Зарплата v8 БП2.0 ЗУП2.5 Абонемент ($m)

Обработка для выгрузки документов из конфигурации "Зарплата и управление персоналом" 8.2 в конфигурацию "Бухгалтерия предприятия" 8.2. Использует правила обмена. В обработке создан удобный интерфейс для гибкого формирования списка документов кадрового учета и начисления ЗП.

1 стартмани

18.12.2012    18918    138    d.zhukov    20    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Печатные формы документов Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    28519    22    stvorl    0    

Расчет Тарификации и зарплаты в средних общеобразовательных школах для ЗКГУ - 3.1 (релиз 3.1.18.82)

Бухгалтерия Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 Государственные, бюджетные структуры Россия БУ Госбюджет Абонемент ($m)

Данная настройка конфигурации предназначена для расчета Тарификации педработников и расчета зарплаты в средних общеобразовательных учреждениях. Настройка сделана на базе Типовой конфигурации "Зарплата и кадры государственного учреждения" редакции 3.1.

2 стартмани

05.09.2018    33968    53    ivnik    24    

Автоматическая рассылка прайс-листов Промо

Ценообразование, прайсы Email Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 Абонемент ($m)

Устали от утомительной рассылки прайс-листов своим клиентам? Тогда эта обработка как раз для вас, она сделает полностью все сама! Сформирует прайс с нужными настройками и отправит его по электронной почте, как, куда и когда надо.

1 стартмани

24.03.2014    44623    20    skyadmin    20    

Расширение резервов отпусков

Обработка документов Зарплата Зарплата v8 v8::СПР ERP2 ЗКГУ3.0 ЗУП3.x Россия БУ Абонемент ($m)

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

2 стартмани

10.08.2018    33039    65    СергейКа    30    

Автоматическое заполнение графиков в ЗУП 3.1

Зарплата Учет рабочего времени Обработка справочников Зарплата Учет рабочего времени v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Данная разработка будет актуальна для организаций с большим количеством графиков (несколько десятков/сотен).

1 стартмани

05.05.2018    28739    18    notserioussam    2    

Правила переноса документов из ЗУП 2.5 в ЗУП 3.1

Обмен через XML Перенос данных из 1C8 в 1C8 Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Абонемент ($m)

Перенос документов, справочников и планов видов расчета из конфигурации 1С ЗУП 2.5 в ЗУП 3.1.

3 стартмани

28.03.2018    33880    425    Cobranet123    67    

Отправка пакета документов по электронной почте (в формате PDF/XLS/HTML/MXL/ODS) Промо

Печатные формы документов Пакетная печать Email Оптовая торговля Оптовая торговля v8 БП2.0 КА1 УПП1 УТ10 Россия БУ Абонемент ($m)

С помощью обработки можно нажатием одной кнопки отправить пакет документов контрагенту по электронной почте. Теперь не надо заходить в каждый документ, формировать нужную печатную форму, сохранять на диск, а потом собирать в одном письме. Все это за вас сделает программа самостоятельно. Все, что требуется от пользователя - просто выбрать документ в программе! Доступны варианты обработки для обычного и управляемого приложения!

2 стартмани

22.04.2015    57578    33    trendy    21    

Настройка соответствий подразделений ЗУП 3.1 и БП 3.0

Перенос данных из 1C8 в 1C8 Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::БУ v8::СПР БП3.0 ЗУП3.x Россия БУ Абонемент ($m)

Синхронизация ЗУП 3 и БП 3.0: настройка соответствий подразделений при помощи внешней обработки.

5 стартмани

23.03.2018    32225    233    pas    36    

Синхронизация (выгрузка) данных ЗУП 3.1 - БП 2.0, УПП 1.3

Перенос данных из 1C8 в 1C8 Зарплата Управление персоналом (HRM) Зарплата v8 v8::БУ v8::СПР БП2.0 ЗУП3.x Россия БУ Абонемент ($m)

Подобная выгрузка не была предусмотрена разработчиками 1С, поэтому и существует эта публикация. Поддерживается выгрузка оценочных обязательств и резервов отпусков. Непосредственная выгрузка в базу Бухгалтерии. Решение проблем с COM-соединением одной кнопкой.

3 стартмани

22.03.2018    51118    708    diso    211    

Правила конвертации документов ЗУП 2.5 - ЗУП 3.1

Обмен через XML Зарплата Перенос данных из 1C8 в 1C8 Зарплата v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Абонемент ($m)

Правила конвертации документов ЗУП 2.5 - ЗУП 3.1. Позволяют вести параллельную работу в базах ЗУП редакций 2,5 и 3.1.

10 стартмани

06.03.2018    44939    142    kostya_whiskas    24    

Рассылка расчетных листков руководителям (сотрудникам) по электронной почте для ЗУП 3.1.*

Email Бухгалтерские Зарплата Зарплата v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Обработка предназначена для рассылки расчетных листков руководителям подразделений по группе подчиненных сотрудников, либо произвольным сотрудникам. Протестирована на ЗУП 3.1.*

1 стартмани

10.01.2018    15141    47    Spartacus    9    

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1

Обработка документов Загрузка и выгрузка в Excel Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Абонемент ($m)

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    56386    34    mvv1975    7    

Правила переноса документов из ЗУП 2.5 в ЗУП 3.1

Перенос данных из 1C8 в 1C8 Обмен через XML Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Перенос документов из ЗУП 2.5 в ЗУП 3.1 - позволяет снизить объем работ при опытной эксплуатации ЗУП 3.1 параллельно с ЗУП 2.5.

1 стартмани

04.12.2017    37141    504    AntonH851    38    

Правила обмена ЗУП 3.1 - БП 2.0 и ЗУП 3.1 - УПП 1.3 (отражение, ведомости и справочники)

Перенос данных из 1C8 в 1C8 Обмен через XML Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::БУ v8::СПР БП2.0 БП3.0 ЗУП3.x Россия БУ Абонемент ($m)

Правила обмена для выгрузки документов "Отражение зарплаты в бухучете", "Ведомость в банк", "Ведомость в кассу", справочников "Сотрудники" и "Физические лица"

1 стартмани

01.08.2017    86325    1594    forseil    210    

Правила обмена ЗУП 3.1(3.1.2.140) - УПП 1.3(1.3.88.2) - документа "Отражение зарплаты в регламентированном учете". Добавлено правило Отражения ERP20->БП30. ***Добавлено правило для ЗУП 3.1.5 и старше с использованием дополнительных реквизитов.

Перенос данных из 1C8 в 1C8 Зарплата Зарплата v8 УПП1 ЗУП3.x Россия БУ Абонемент ($m)

Правила обмена для производственных предприятий, где зарплата отдельной программой ЗУП 3.1 (для оперативного поддержания актуальности релиза), а управленческий и регламентированный учет ведется в УПП 1.3.

1 стартмани

24.03.2017    27043    224    bulas    51    

Расчет стажа в ЗУП 3.1

Обработка документов Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8::СПР v8::УФ ЗУП3.x Россия БУ Абонемент ($m)

Данное расширение добавляет на форму трудовой деятельности кнопку расчета стажа по трудовой книжке.

1 стартмани

26.01.2017    34167    244    sdw2007    20    

Изменение кода дохода для справки 2-НДФЛ без перепроведения документов в ЗУП 2.5

Обработка документов Зарплата Зарплата v8::СПР ЗУП2.5 Россия БУ НДФЛ Абонемент ($m)

Обработка потребовалась в связи с приказом ФНС от 22.11.16 № ММВ-7-11/633, где изменился код премии с "2000" на "2002". Обработка меняет код дохода в регистре накопления "НДФЛСведенияОДоходах" на тот, который установлен в карточке вида расчета. Код меняется без перепроведения документов.

1 стартмани

11.01.2017    26667    198    forseil    26    

Поиск и исправление ошибок при заполнении 6-НДФЛ в ЗУП 2.5, Бухгалтерии 2.0, УПП 1.3 версия от 28.08.2018

Регламентированная отчетность Бухгалтерские Анализ учета Зарплата Зарплата v8 v8::БУ v8::СПР БП2.0 ЗУП2.5 УПП1 Россия БУ НДФЛ Абонемент ($m)

Помощь в поиске и исправлении ошибок при заполнении отчёта 6-НДФЛ в ЗУП 2.5, Бухгалтерии 2.0 Просмотр всех записей регистров, имеющих отношение к учёту НДФЛ с детализаций до сотрудника и документа. Ручная корректировка основных регистров. Обновлённая версия от 02.07.2018г

3 стартмани

25.10.2016    41835    219    serge_msk    21    

Закрытие долгов. ЗКГУ 3.1, ЗУП 3.1

Закрытие периода Зарплата Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ НДФЛ Абонемент ($m)

Обработка Закрытие долгов по регистрам накопления , конфигурация ЗКГУ 3.1 , ЗУП 3.1

1 стартмани

20.06.2016    30362    483    ccserg    68    

Автопрайс: Конструктор прайс-листов с автоматической рассылкой по шаблонам

Ценообразование, прайсы Email Оптовая торговля Оптовая торговля v8 УТ10 Оптовая торговля, дистрибуция, логистика Россия УУ Абонемент ($m)

Гибкая и удобная система для формирования и автоматической рассылки прайс-листов. Быстрая рассылка - прайсы на 100+ тыс. строк уходят десяткам клиентов с индивидуальными настройками менее чем за 10 мин. Форматы:.XLS, .XLSX, .TXT /CSV(UTF-8/ANSI), .MXL, .HTML, .DOCX, .PDF, .ODS. Поддерживает картинки в прайсе. Создание макетов прайсов, рассылка по почте и FTP, архивация в ZIP, шаблоны, гибкая настройка и расписание, отчеты о рассылке.

10 стартмани

08.06.2016    26768    73    taurus__    1    

Перенос данных из ЗУП 2.5 в ЗУП 3.1

Перенос данных из 1C8 в 1C8 Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x БУ Абонемент ($m)

Обработка предназначена для переноса некоторых данных из ЗУП 2.5 в ЗУП 3.1 через COM-соединения. Обработка была написана потому, что типовые правила переноса не предоставляют возможности переносить данные по отдельности, а некоторые данные не переносят вовсе. Тестировалась на версии 3.1.14.129 (8.3.15.1830).

1 стартмани

26.05.2016    49124    779    yojeeg    101    

Выгрузка реестра зарплаты в ГазПромБанк ЗУП 2.5 c ведущими нулями

Обмен с банком Банковские операции Зарплата Банковские операции Зарплата v8 v8::СПР ЗУП2.5 Россия БУ Абонемент ($m)

Корректно выгружает в текстовый формат поля, начинающиеся на НОЛЬ (Например, серии паспортов вида 0803)

5 стартмани

16.05.2016    35149    16    asher72    1    

Рассылка расчетных листков для ЗУП 3.1

Email Зарплата Зарплата v8::СПР ЗУП3.x БУ Абонемент ($m)

Обработка для рассылки расчетных листков по выбранным сотрудникам компании. Протестирована на ЗУП 3.1.14.129 платформа 8.3.15.1830

1 стартмани

11.05.2016    28255    184    yojeeg    35    

Ещё один вариант свертки регистров учета НДФЛ (для ЗБУ/ЗКОУ/ЗКМУ ред. 1, ЗУП ред. 2.5)

Свертка базы Зарплата Зарплата v8 ЗУП2.5 ЗКБУ Россия НУ НДФЛ Абонемент ($m)

С появлением формы 6-НДФЛ вопрос правильного ведения исчисленного/удержанного/перечисленного НДФЛ встал не просто остро, а сверхостро! Поможем расчетчикам чем сможем...

1 стартмани

10.03.2016    37712    283    GlebHappy    50    

Специалист-Консультант по ЗУП 3.0 - решение всех задач из сборника

Управленческий учет (прочее) Решение задач на 1С:Специалист Бухгалтерский учет Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8::СПР ЗУП3.x Россия Абонемент ($m)

Файл-Word содержит решение всех задач из "Сборника задач для подготовки к экзамену 1С:Специалист-Консультант по внедрению прикладного решения ЗУП.3.0" (Май 2014 года).

3 стартмани

26.02.2016    51773    356    user_2010    74    

Перечисление НДФЛ в бюджет РФ (13%, 30%)

Обработка документов Зарплата Зарплата v8 v8::СПР ЗУП2.5 БУ НУ НДФЛ Абонемент ($m)

Внешняя обработка (табличных частей), предназначенная для корректного заполнения документа "Перечисление НДФЛ в бюджет РФ". Конфигурация: Зарплата и Управление Персоналом, редакция 2.5

1 стартмани

27.01.2016    40074    239    1kashak    23    

Перечисление НДФЛ в бюджет: заполнение НДФЛ по расчетной ведомости для ЗУП 2.5

Обработка документов Зарплата Зарплата v8 ЗУП2.5 Россия БУ НДФЛ Абонемент ($m)

Внешняя обработка для заполнению сумм НДФЛ для перечисления в бюджет по данным расчетной ведомости для 1С ЗУП 2.5

2 стартмани

30.12.2015    27189    71    Snork    4    

Мастер рассылки e-mail 2.2 для управляемых форм

Практика программирования Email v8 v8::УФ ERP2 БП3.0 УТ11 Абонемент ($m)

Для пользователей: переделанный из старый разработки под 8.2 с использованием библиотеки Мастер рассылки e-mail 2.2 (ERP, УТ, БП) (Только управляемые формы), который теперь может запускаться под любой версией платформы с разрешенными или запрещенными модальными/синхронными вызовами в конфигурации. Также удобный выбор e-mail и их владельцев с помощью отбора динамического списка по любым критериям и галочки исключения.

1 стартмани

29.12.2015    44049    20    milkers    4    

Резервы отпусков для УПП 1.3

Обработка документов Зарплата Зарплата v8 УПП1 Россия БУ Абонемент ($m)

Обработка для создания резерва отпусков в 1С: УПП 1.3

1 стартмани

14.12.2015    33246    48    sarun    5    

Остатки отпусков по периодам и их использование. ЗУП 2.5 / КА 1.1 / УПП 1.3 / ЗУП 3.X / КА 2.2 / УП 2.2

Обработка документов Зарплата Зарплата v8::СПР КА1 ЗУП2.5 УПП1 ERP2 КА2 ЗУП3.x БУ Абонемент ($m)

Обработка, позволяющая заглянуть в нутро печатной формы "Справка по отпуску" и увидеть в более доступной форме остатки отпусков, как их видит программа, как она разносит отпуска по периодам, на сколько дней она сдвигала рабочие года.

1 стартмани

17.11.2015    31217    313    Brawler    17    

Удобная выгрузка зарплаты в формат CSV для Сбербанк Бизнес Онлайн (ЗУП 2.5)

Обмен с банком Банковские операции Зарплата Банковские операции Зарплата v8 ЗУП2.5 Россия БУ Абонемент ($m)

Самая удобная внешняя обработка для бухгалтера, не требует лишних действий! Выбрал документ и выгрузил в формате CSV для Сбербанк Бизнес Онлайн

10 стартмани

06.11.2015    43739    29    adinez    7    

Правила переноса зарплаты из ЗУП 3.0 в Бухгалтерию 2.0

Перенос данных из 1C8 в 1C8 Обмен через XML Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 БП2.0 ЗУП3.x БУ Абонемент ($m)

Правила помогут Вам осуществить перегрузку начисления зарплаты из ЗУП 3.0 в Бухгалтерию 2.0

10 стартмани

11.09.2015    60518    275    leka99    63    

Алгоритмы и выгрузка ИБ с решениями для экзамена Специалист ЗУП 3.0.

Решение задач на 1С:Специалист Зарплата Зарплата v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Аттестацию "1С:Специалист" по конфигурированию подсистем расчета зарплаты и управления персоналом в прикладных решениях "1С:Предприятие 8" автор сдал на отлично. Здесь решение обновлено до 3.0.24.125.

3 стартмани

24.08.2015    37134    83    IgorXml    54