0. yaroslavch 22 30.09.14 15:17 Сейчас в теме

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

Простая обработка для ЗУП 3.0-3.1, рассылающая расчетные листки сотрудникам организации. Может быть хорошей базой для разработки более навороченных версий, под требовательных клиентов.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Synoecium 413 01.10.14 15:04 Сейчас в теме
А можете подробнее написать о принципах работы этой обработки?
Если она отсылает расчетные листки в формате PDF, то каким образом происходит рендеринг формируемого отчета.
2. yaroslavch 22 01.10.14 15:23 Сейчас в теме
день добрый,
Расчетные листки формируются средствами ЗУП 3.0 через отчет АнализНачисленийИУдержаний

Далее, настраиваем Схему Компоновки Данных



ДокументРезультат - Табличный документ получаемый входе выполнения компоновки данных

сохранение в файл идет штатными средствами 1с. Т.е. в поле тип файла в принципе можно вписать любое расширение поддерживаемое 1С платформой.

ТекИмяФайла = КаталогФайла + ИмяФайла + "." + НРег(ЭтотОбъект.Объект.ТипФайла);
	ДокументРезультат.Записать(ТекИмяФайла, ТипФайлаТабличногоДокумента[ЭтотОбъект.Объект.ТипФайла]);
3. Synoecium 413 01.10.14 16:01 Сейчас в теме
Действительно все просто, спасибо)
4. Jawa 5 30.01.15 12:20 Сейчас в теме
Добрый день!
Огромное спасибо за обработку! Просто выручила.
5. sergio199 17 08.04.15 09:43 Сейчас в теме
Спасибо! Возьму за основу. Затем выложу свою с переделками.
6. Гость 09.02.16 18:13
Ошибка при работе в клиент-серверном режиме. Ссылается на то, что не может найти временный файл. Т.к файл записывается на сервере. А открыть его пытается с клиента, обращаясь по тому же пути
7. yaroslavch 22 15.02.16 13:57 Сейчас в теме
(6) Макс, прикольно. У клиента работает до сих пор. Собственно, выложил, как пример работы с почтой для ЗУП 3.0
Дорабатывать не планирую, но если хочешь - доработай и вышли на почту мне, я её обновлю в публикации.
8. vagipov 52 06.04.16 09:37 Сейчас в теме
Спасибо за обработку. Работает! (Отключил только под текущую версию функцию ПолучитьПароль(УчетнаяЗапись), вместо него пароль оставил пустой строкой)

И для того, чтобы в клиент-серверном варианте корректно отрабатывалось прикрепление вложений подправил функцию "СоздатьРасчеткуПоСотруднику(..." и перенес формирование "ДокументРезультат" в новую функцию "ПолучитьОбъектОтчет(..."



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

	
	НастройкиОтчета = ВариантОтчета.Настройки;
	
	СтруктураПараметров = Новый Структура;
	СтруктураПараметров.Вставить("Период", Новый СтандартныйПериод(НачалоМесяца(вхПериод), КонецМесяца(вхПериод)));
	СтруктураПараметров.Вставить("НачалоПериода", НачалоМесяца(вхПериод));
	СтруктураПараметров.Вставить("КонецПериода", КонецМесяца(вхПериод));

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

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

	Возврат ДокументРезультат;
КонецФункции

&НаКлиенте
Функция СоздатьРасчеткуПоСотруднику(вхФизлицо, вхПериод, ВидРасчетки = "Подробно") Экспорт
	
	ДокументРезультат = Новый ТабличныйДокумент;
	ПолучитьОбъектОтчет(ДокументРезультат, вхФизлицо, вхПериод, ВидРасчетки = "Подробно");
	
	// для отладки	
	//ДокументРезультат.Показать();
	
	ИмяФайла = СокрЛП(вхФизлицо);
	КаталогФайла = КаталогВременныхФайлов();
	
	ТекИмяФайла = КаталогФайла + ИмяФайла + "." + НРег(ЭтотОбъект.Объект.ТипФайла);
	ДокументРезультат.Записать(ТекИмяФайла, ТипФайлаТабличногоДокумента[ЭтотОбъект.Объект.ТипФайла]);
	
    Возврат ТекИмяФайла;
	
КонецФункции // СоздатьРасчеткуПоСотруднику()
Показать
9. DreamcastMD 05.10.16 09:29 Сейчас в теме
Мне поставлена аналогичная задача.
Вопрос к комментирующим в 2016 году: почему не используете стандартный функционал?

Описание во вложении или по ссылке

Новость на buh.ru от 20.07.2015



Прикрепленные файлы:
ЗУП 3.0. Рассылка расчетных лисков.pdf
PonomarevDY; +1 Ответить
10. Jen1978 4 05.12.18 17:14 Сейчас в теме
выходит пустой лист. ошибок никаких не выдает
TUTSIC923; +1 Ответить
11. TUTSIC923 05.12.18 19:26 Сейчас в теме
Если есть возможность Хелп! Пол дня промучался, так и всё равно колво строк = 0 , то бишь выходит "Пустой Лист" !!!
12. yaroslavch 22 06.12.18 11:56 Сейчас в теме
(11) обработку актуализировал под последние релизы ЗУП.. Выложу в течении дня, новую версию
13. Jen1978 4 07.12.18 09:19 Сейчас в теме
скачал новую обработку. все равно пустой лист выходит
14. Jen1978 4 07.12.18 09:23 Сейчас в теме
15. Jen1978 4 07.12.18 13:36 Сейчас в теме
короче отличия между первой и второй обработкой нет. поле выходит пустым
16. Jen1978 4 07.12.18 13:38 Сейчас в теме
после трех дней копания в темной магии ЗУП выяснил, что отчет еще до открытия колдует с формой и настройками.
Чтобы все получилось нужно после
ОтчетОбъект = Отчеты.АнализНачисленийИУдержаний.Создать();
добавить еще одну команду
ОтчетОбъект.ИнициализироватьОтчет();

лишь после этого все взлетает.
18. yaroslavch 22 07.12.18 16:53 Сейчас в теме
(16) хорошо добавлю строчку...

У меня в 4 различных базах у разных клиентов все листки отлично формируются.


(15) По вашей проблеме возможно и нет(т.к. не понятны исходные данные)
А так есть, обновил код программы в соответствии с измененными реквизитами и алгоритмами, вставил пожелания предыдущих комментаторов.
17. Jen1978 4 07.12.18 13:38 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Старший Программист 1С НОВОСИБИРСК
Новосибирск
зарплата до 130 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 75 000 руб.
Полный день

Ведущий программист 1С
Воронеж
зарплата от 90 000 руб. до 120 000 руб.
Полный день

Программист 1С
Воронеж
зарплата от 65 000 руб. до 90 000 руб.
Полный день