Рассылка расчетных листков по электронной почте для 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
08.08.13
249
.epf 28,45Kb 249 Скачать
PaySlips2.epf

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

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

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

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. djek88 1 13.09.12 10:30 Сейчас в теме
А в каком формате к получателю приходит расчЛисток?
2. Nicholas 748 13.09.12 12:20 Сейчас в теме
3. djek88 1 13.09.12 12:29 Сейчас в теме
т.е. перед отправкой получателю, копия расчЛистка остается на локальном диске?
4. Nicholas 748 13.09.12 13:53 Сейчас в теме
Совершенно верно. В случае отправки расчеток руководителю, во временной папке создаются файлы в формате Excel на каждого сотрудника, затем эти файлы архивируются и одним архивом отправляются. После отправки файлы удаляются.
5. djek88 1 13.09.12 14:30 Сейчас в теме
Как я понял из ответа, при отправке руководителю Ecxel файлы удаляются, а если просто сотруднику, то не удаляются. Так?
И еще вопросы:
1) Архив тоже удаляется после отправки?
2) Есть ли возможность запаролить архив?
6. Nicholas 748 13.09.12 14:57 Сейчас в теме
(5) djek88, сколько много вопросов :)
1. Архив удаляется. Теоретически, перед закрытием, 1С должна подчищать за собой временные папки. На практике - не проверял.
2. Данная обработка это не предусматривает, но доработать не сложно. Из синтаксис-помощника:
Новый ЗаписьZipФайла(<ИмяФайла>, <Пароль>,...)
Только для чего это нужно?
7. Mx00 228 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 748 22.11.12 07:37 Сейчас в теме
(7), (8) Спасибо за отзывы. Обязательно сделаю то, о чем вы пишите. К сожалению, сейчас практически нет свободного времени. Поэтому, чуть позже.
13. v.vik 21.02.13 10:43 Сейчас в теме
(7) Mx00,
Подскажите, пожалуйста, как вы исправили эту ошибку:

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

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

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

Простите, для меня наверное это сложно.....как это "закомментировал эту строку".
Что должно быть написано, чтобы исправить эту ошибку?
16. Mx00 228 21.02.13 12:50 Сейчас в теме
(15) это относится к программированию, нужно открыть конфигуратор и там уже разбираться с модулями. т.к. обработка не моя, то более конкретно не отвечу, вспоминать лень, а обучение программированию не мой конёк
21. Nicholas 748 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 748 27.11.12 12:58 Сейчас в теме
(10) Спасибо. Тоже была мысль сделать такую настройку. Обязательно реализую это позже.
12. RakovskiyK 24.12.12 16:52 Сейчас в теме
(11) приветствую вопрос: появились ли какие нибудь обновления в сей прекрасной обработке?

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

Заранее извиняюсь за возможную наглость и не сдержанность в просьбе :)
17. Nicholas 748 21.02.13 14:04 Сейчас в теме
Mx00, Виктория, подскажите, пожалуйста, а какая у вас конфигурация?
Потому как в типовой ЗУП КОРП этот реквизит имеется.
18. Mx00 228 21.02.13 14:25 Сейчас в теме
(17)не сложно догадаться, что Конфигурация: 1С:Зарплата и Управление Персоналом 8
НЕ КОРП :-)
19. Nicholas 748 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 748 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 748 28.08.13 12:45 Сейчас в теме
(25) К сожалению, у меня нет опыта использования обработки совместно с внешними почтовыми сервисами, такими как mail.ru, yandex.ru и пр. С внутрекорпоративными почтовыми серверами, а также с облачными решениями типа Office365 работает отлично.
27. homer_ 75 12.09.13 09:09 Сейчас в теме
Воспользовался вашей обработкой, но пришлось переписать концепцию заполнения данных т.к. запросы не оптимальные (Запросы в цикле), из за чего все тормозит. + добавил возможность загрузки из AD.
В целом неплохое решение, но не оптимизированное.
З.Ы зачем при отправки письма считывать снова адрес если он уже есть в таблице?
28. Nicholas 748 12.09.13 10:40 Сейчас в теме
(27) homer_, спасибо за отзыв.
Буду благодарен, если поделитесь отпимизированными запросами.
Для загрузки данных из AD я пользуюсь другими механизмами.
Изначально адреса в таблице не было, позже, по просьбам пользователй, была сделана эта доработка, но, видимо, не во всех местах это учел.
29. homer_ 75 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 748 30.07.14 09:13 Сейчас в теме
(30) Для снижения траффика и нагрузки на почтовые сервера. При необходимости можно легко доработать это и сделать архивирование опцией.
32. AlexGS 28.11.14 14:17 Сейчас в теме
Под ЗКБУ работать будет?
33. Nicholas 748 28.11.14 16:12 Сейчас в теме
34. b-dm 169 18.12.15 13:20 Сейчас в теме
Планируется ли поддерживать, дорабатывать публикацию ?))
35. Nicholas 748 19.12.15 17:47 Сейчас в теме
Готов доработать под ваши требования и любую конфигурацию. Стоимость и сроки обсуждаемы.
36. b-dm 169 24.12.15 11:32 Сейчас в теме
Пишет ошибку, но отсылает :)
37. Swetlana 13 13.11.17 12:52 Сейчас в теме
Обработка еще работоспособна?)
38. Nicholas 748 13.11.17 17:14 Сейчас в теме
(37) Да, у меня в одной базе до сих пор работает.
39. ninch 50 31.03.18 10:57 Сейчас в теме
Спасибо. Все работает. Версию 3 пользую
40. гаврюша 2 24.05.19 15:01 Сейчас в теме
Спасибо за обработку. Очень классная, выручила. Работает на УПП релиз 1.3.121.2
Может кто подскажет как в zip добавить пароль, чтобы прочитать мог только получатель, который знает пароль архива?
Оставьте свое сообщение

См. также

Рабочий стол зарплатчика Промо

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

Назначение обработки: - Консолидация основных операций работника кадровой службы, расчетчика заработной платы в одном окне; - Весь цикл кадровых операций: от создания сотрудника, до ввода любого необходимого кадрового документа; - Ввод зарплатных документов: плановых начислений, удержаний; ввода документов расчета, перерасчета, выплаты зарплаты; ввода налоговых документов.

15.01.2020    4958    4    HostHost    0    

Пакетная печать документов. ЗУП 3.1

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

1.1 Назначение расширения: - Печать комплекта документов. Вывод нескольких печатных форм документа в одном окне, нажатием одной кнопки. - Для каждого вида документов доступен свой список печатных форм, в том числе и подключаемые внешние печатные формы.

05.02.2020    3288    7    HostHost    5    

Загрузка табелей рабочего времени из файлов Excel

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

Обработка по загрузке в типовой документ «Табель» конфигурации ЗУП 3.1 данных из файлов MS Excel, согласно шаблону.

18.10.2019    7410    5    HostHost    0    

Трудовой договор, Дополнительное соглашение к трудовому договору, Лист ознакомления, Договор о материальной ответственности, Договор о коммерческой тайне, Согласие на обработку персональных данных для ЗУП 3.1

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

Комплект печатных форм для отдела кадров для документов Прием на работу и Кадровый перевод: Трудовой договор, Доп. соглашение к трудовому договору, Лист ознакомления с локальными нормативными актами, Договор о полной материальной ответственности, Договор о неразглашении коммерческой тайны, Согласие на обработку персональных данных.

2 стартмани

12.03.2019    27627    145    Asenka    34    

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

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

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

1 стартмани

24.03.2014    36118    41    skyadmin    18    

Проверка действительности паспортов, проверка ФЛ на негатив в ЗУП 3.1

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

Обработка проверки действительности паспортов физических лиц в 1С ЗУП 3.x. Обработка обращается к API сервису проверки паспортов и открытых реестров. При работе в демо режиме обращение к сервису происходит с задержкой в 2 секунды. Проверка ФЛ на негатив осуществляется по следующим открытым реестрам: реестр дисквалифицированных лиц, реестр массовых руководителей, реестр массовых учредителей, реестр лиц причастных к террористической деятельности, открытый реестр недействительных паспортов. Не работает в демо режиме.

1 стартмани

04.11.2018    15816    15    user718500    4    

Отправка электронной почты с помощью локального почтового клиента из 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    21240    13    stvorl    0    

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

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

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

2 стартмани

22.04.2015    49562    30    trendy    20    

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

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

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

2 стартмани

05.09.2018    23414    42    ivnik    11    

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

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

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

2 стартмани

10.08.2018    23133    51    СергейКа    16    

Проверка и корректировка данных по выплате зарплаты

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

Обработка показывает остатки и движения взаиморасчетов с сотрудниками. Также обработка может откорректировать сумму остатков. Конфигурации: "Зарплата и управление персоналом" , релиз не ниже 3.1.2.105 и "Зарплата и кадры государственного учреждения" , релиз не ниже 3.1.2.105.

2 стартмани

08.06.2018    23572    155    APTEM_SLV    14    

Анализ НДФЛ и сверка данных учета при подготовке 2-НДФЛ (ЗИК 1.0, ЗУП 2.5, ЗГУ 3.1, ЗУП 3.1) Промо

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

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

1 стартмани

28.01.2016    32245    153    the1    10    

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

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

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

1 стартмани

05.05.2018    20914    18    notserioussam    2    

Настройки отчета "Анализ начислений и удержаний" для ЗУП/ЗГУ 3.1

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

Несколько полезных настроек отчета "Анализ начислений и удержаний" для зарплаты редакции 3.1. В состав входят настройки: Свод в разрезе налогообложения, Сводные данные для статистики, Реестр пособий, Расчетная ведомость по зарплате, Свод в разрезе финансирования, Отклонения от режима работы, Свод по зарплате в разрезе ИФНС, Начисления с детализацией отсутствий, Лицевые счета сотрудников, Распределение отпусков, Сводка затрат

2 стартмани

03.05.2018    34970    229    the1    39    

Правила конвертации документов ЗУП 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    36591    151    kostya_whiskas    24    

Универсальный реестр документов с возможностью вывода данных из табличных частей Промо

Бухгалтерские Управленческие v8 1cv8.cf Абонемент ($m)

-Возможность выводить числовые данные из табличных частей документов, такие как "Количество", "Сумма", "СуммаНДС" и др. При этом такие реквизиты, как "Цена", "Коэффициент", "ПроцентСкидок" не выводятся, так как это не имеет смысла. -Возможность выбирать выводимые документы. -Возможность выбирать выводимые реквизиты (при этом, если выбрано несколько документов, то можно выводить только реквизиты, общие для всех выбранных документов). -Возможность накладывать отборы на выводимые реквизиты. -Возможность выбора реквизитов, по которым проводить упорядочивание.

1 стартмани

31.10.2013    45248    321    Kubik1984    47    

Трудовой договор, Дополнительное соглашение, Материальная ответственность, Коллективная материальная ответственность, Кадровый перевод, Индексация, Т-53 для ЗУП 3 внешние (7 печатных форм). Создание ведомостей по каждому сотруднику одной кнопкой

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

1. Комплект из 6 печатных форм для документов: Прием на работу, Индексация, Кадровый перевод, Кадровый перевод списком для ЗУП 3.1.11 и более ранних Трудовой договор, дополнительное соглашение, договор личной материальной ответственности, договор коллективной материальной ответственности, индексация, Ведомость Т-53 без лишних строк. Не требуется изменения конфигурации. Подключается через стандартное подключение внешних обработок. 2. Обработка для создания ведемостей из начисления зарплаты. 3. Расширение конфигурации для ЗУП 3.1.11 и КА 2.4.6 для редактирования стажа как в ЗУП 2.5 (Из трудовой деятельности сотрудника. Если ввели строки трудовой деятельности, то стаж считается до даты приема сотрудника).

1 стартмани

26.01.2018    42059    486    p.ugrumov    96    

Проверка данных после неполного ("нового") переноса из ЗУП 2.5 в ЗУП 3.1

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

Описаны данные, которые необходимо проверить после неполного ("нового") переноса из ЗУП 2.5 в ЗУП 3.1. Описано, на что необходимо обратить внимание, где найти перенесенные данные, что НЕ переносится, где найти настройки.

1 стартмани

17.01.2018    28351    142    btydj    3    

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

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

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

1 стартмани

10.01.2018    12722    46    Spartacus    8    

Универсальный бухгалтерский отчет Промо

Оборотно-сальдовая ведомость, Анализ счета Бухгалтерские Оборотно-сальдовая ведомость, Анализ счета v8 v8::БУ КА1 БП2.0 УПП1 БУ Абонемент ($m)

Стандартные отчеты на СКД из 1С:Бухгалтерия предприятия 8 КОРП, адаптированные для: 1С:Бухгалтерия предприятия 8, 1С:Бухгалтерия предприятия 8 для Украины, 1С:Бухгалтерия для Беларуси, 1С:Управление производственным предприятием, 1С:Управление производственным предприятием для Украины, 1С:Управление торговым предприятием для Украины.

1 стартмани

24.08.2009    15364    23    bonv    173    

Себестоимость реализованной продукции по периодам выпуска в УПП (для РАУЗ, бухгалтерский учёт)

Производство готовой продукции (работ, услуг) Бухгалтерские Производство готовой продукции (работ, услуг) v8 УПП1 Россия БУ Абонемент ($m)

Отчёт показывает распределение себестоимости реализованной продукции по периодам. Продукция по периодам выпуска распределяется на полуфабрикаты по периодам выпуска полуфабрикатов. Затем выполняется разузлование полуфабрикатов до уровня материалов. Отчёт может быть полезен для предоставления результатов деятельности предприятия акционерам предприятия.

8 стартмани

29.12.2017    25220    46    Designer1C    11    

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

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

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

3 стартмани

20.12.2017    44301    31    mvv1975    7    

Справка о заработной плате и других доходах (измененная форма №46)

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

Форма разработана для автоматизированного формирования справки по форме № 46. Внешний отчет с возможностью пользовательских настроек.

3 стартмани

24.11.2017    37726    52    agospodarin    15    

Налоги и взносы (кратко) по подразделениям и сотрудникам. ЗУП 3

Бухгалтерские Зарплата Зарплата v8 v8::СПР ЗУП3.x Россия БУ НДФЛ ФОМС, ПФ, ФСС Абонемент ($m)

Отчет "Налоги и взносы (кратко)" в разрезе подразделений и сотрудников.

3 стартмани

13.11.2017    33727    166    tritonof    9    

Контроль учёта спецодежды

Бухгалтерские Анализ учета Учет ТМЦ Учет ТМЦ v8 v8::БУ БП3.0 Россия БУ Абонемент ($m)

Отчет предназначен для выявления ошибок возникших в бухгалтерском учёте специальной одежды в эксплуатации.

8 стартмани

08.09.2017    30870    36    sansys    14    

Универсальная ведомость (отчет) по РАУЗ (управленческий и регламентированный учет)

Бухгалтерские Налоговые Управленческие v8 КА1 УПП1 БУ НУ УУ Абонемент ($m)

Универсальные отчеты, раскрывающие регистры РАУЗ (УчетЗатрат, УчетЗатратРегл) по всем доступным реквизитам, для конфигураций КА 1.1, УПП 1.3. По функциональности эквивалентны типовым отчетам "Ведомость по учету МПЗ", "Ведомость по учету затрат", но отличаются простыми и менее капризными настройками (по мнению автора), более удобной расшифровкой, решенной проблемой с расшифровкой по периодам.

2 стартмани

05.06.2017    31778    77    stvorl    0    

Отчет ОСВ++ для 1С:Бухгалтерии 3.0 - расшифровка оборотов, добавление любого количества субконто без изменения конфигурации и не только

Бухгалтерские Оборотно-сальдовая ведомость, Анализ счета Оборотно-сальдовая ведомость, Анализ счета v8 v8::БУ БП3.0 БУ Абонемент ($m)

Отчет ОСВ++, наряду с возможностями типовых отчетов ОСВ, ОСВ по счету, Карточка счета, Анализ субконто и Карточка субконто, позволяет: Консолидировать данные ОСВ нескольких организаций; Добавлять произвольное количество субконто - наряду со стандартными, в качестве субконто могут быть задействованы любые реквизиты и дополнительные сведения документов движения; Получать расшифровки оборотов по корреспондирующим счетам и субконто; Получать данные оборотов с расшифровкой по документам движения; Формировать сальдо по оборотным субконто; Выводить данные по счетам и аналитикам, обороты по которым в выбранном периоде равны нулю (типовой отчет "ОСВ по счету" в подобной ситуации данных не выводит). Внесение изменений в конфигурацию не требуется.

1 стартмани

22.03.2017    37595    286    TSSV    5    

П-4 и П-4 (НЗ) за 1 квартал 2020г. (январь-март) для ЗУП 2.5 с ОКВЭД 2 (в новой ред. № 404 от 15.07.2019) (ОКУД 0606010)

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

1) П-4 в новой редакции за 1 квартал 2020 г. для ЗУП 2.5 и УПП с отбором по подразделению и КПП, ред. №404 от 15.07.2019 с указанием новых кодов статистики ОКВЭД2 2) П-4 (НЗ) в новой редакции за 1 квартал 2020 г. для ЗУП 2.5 и УПП - с отбором по подразделениям и КПП, в ред. №404 от 15.07.2019.выгрузка в электронном виде в соответствии с XML-шаблоном от 30.12.2019,

1 стартмани

13.02.2017    50757    1000    ilnet    79    

T-11а. Премии работников организации (отображение в %) для ЗУП 3.1

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

Внешняя печатная форма приказа о поощрении сотрудников (Т-11а отображение в %) для ЗУП 3.1 подключаемая к документу "Премия". Добавляется через Сервис - Дополнительные отчеты и обработки.

1 стартмани

06.02.2017    16222    39    chervic    0    

Поиск и исправление ошибок при заполнении 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    35340    212    serge_msk    21    

Книга покупок по разным ставкам НДС для Бухгалтерии 3.0

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

Отчет по НДС. КНИГА ПОКУПОК по разным ставкам НДС ДЛЯ БУХГАЛТЕРИИ 3.0. Типовая книга покупок не показывает все сведения по суммам по разным ставкам НДС. Отчет создан для самопроверки перед формированием отчетности.

1 стартмани

21.09.2016    16549    26    overloader    2    

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

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

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

10 стартмани

08.06.2016    21593    3    taurus__    0    

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

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

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

5 стартмани

16.05.2016    29454    16    asher72    1    

Краткий регистр налогового учета НДФЛ 2016

Бухгалтерские Налоговые Зарплата Зарплата v8 v8::БУ v8::СПР БП3.0 ЗУП3.x Россия БУ НДФЛ Абонемент ($m)

C 2016 года у ИФНС повысились требования к учету НДФЛ. Предлагаю вам отчет "Краткий регистр налогового учета НДФЛ", компактный, простой и информативный. Самое главное - от обычного "Регистр налогового учета НДФЛ" отличается размерами.

2 стартмани

18.04.2016    29507    26    Craig    6    

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

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

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

1 стартмани

27.01.2016    32614    235    1kashak    16    

1С:Предприятие 8. Нужные отчеты. В копилку бухгалтера и специалиста 1С. Обновлено 07.03.2016 г.

Бухгалтерские Оборотно-сальдовая ведомость, Анализ счета Учет доходов и расходов Оборотно-сальдовая ведомость, Анализ счета Учет доходов и расходов v8 БП2.0 Украина БУ Абонемент ($m)

Пакет нужных отчетов - "Остатки и движение запасов" , "Остатки и движение денег", "Сравнительный анализ себестоимости и цен реализации". СКД и Построитель отчетов не использованы. НЕ управляемые формы. Запросы строились только по данным Хозрасчетного плана счетов. Сравнительный анализ - очень нужный отчет для предприятий, реализующих продукцию собственного производства. На сумму продаж ниже себестоимости нужно доначислить доход со всеми вытекающими. Отчет позволит своевременно выявить и откорректировать плановую стоимость продукции.

1 стартмани

13.01.2016    27734    38    kompas-dm    8    

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

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

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

2 стартмани

30.12.2015    20015    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    35412    19    milkers    4    

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

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

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

1 стартмани

14.12.2015    24207    38    sarun    5    

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

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

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

10 стартмани

06.11.2015    37455    28    adinez    7    

Расшифровка по Основным средствам для расчета налога на имущество по 2-му и 3-му разделам декларации "Авансы по налогу на имущество".

Бухгалтерские Налоговые Учет ОС и НМА Учет ОС и НМА v8 v8::БУ v8::УФ КА1 БП2.0 УПП1 БУ НУ Налог на имущество Абонемент ($m)

Отчет "Расшифровка отчета 'Авансы по налогу на имущество' по 2-3 разделам" предназначен для проверки и контроля правильности расчета регламентированного отчета "Авансы по налогу на имущество" в разрезе Основных средств. Предоставляет ряд дополнительных данных по состоянию ОС организации на текущий момент согласно данным хозрасчетного регистра. Написан на основании стандартных процедур заполнения регламентированных отчетов, но дополнительно показывает данные в разрезе групп ОС и каждого ОС, согласно данным 2-го и 3-го разделов стандартного отчета. Версия для обычного приложения тестировалась на УПП 1.3, но должно работать в БУ, БУ КОРП 2.0, КА, БАУ и БАУ КОРП (по крайней мере для обычных /неуправляемых/ приложений). Версия для управляемого приложения тестировалась на БП 3.0. В отчете учтены ОС, введенные в эксплуатацию после 2013 и учтены изменения, введенные в 2017 г. Предусмотрено три варианта отчета: 1. Для обычного приложения 8.1-8.3 платформ; 2. Для управляемого приложения 8.2 - 8.3 платформ; 3. Универсальный вариант, который подходит для обоих типов конфигураций: для обычного и управляемого приложений (удобно, если на предприятии используются оба типа - и обычные, и управляемые приложения).

2 стартмани

04.09.2015    39569    307    vik2006    70    

Простой отчет по фактическим отпускам

Бухгалтерские Управленческие Управление персоналом (HRM) Учет рабочего времени Управление персоналом (HRM) Учет рабочего времени v8 ЗУП2.5 УПП1 БУ УУ Абонемент ($m)

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

2 стартмани

18.08.2015    31998    86    VBod    5