gifts2017

Фоновое перепроведение

Опубликовал Kida Kida (kida1) в раздел Обработки - Обработка документов

Фоновое перепроведение документов в регламентном задании. Бухгалтерия 3.0

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

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

В общем модуле нужно добавить Регламентное задание со ссылкой на общий модуль. В общем модуле вставляем эту процедуру.Нужно заменить Код организации по которой нужно перепроводить.

Затем в режиме предприятия - добавляем и настраиваем расписание нового фонового задания.

Результат перепроведения записывается в журнал регистрации.

Процедура ПерепроведениеДокументов() Экспорт
   	ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания();
	Организация = Справочники.Организации.НайтиПоКоду("00-000001").Ссылка;
	
	СтрокаСообщения = "Начало: "+Формат(ТекущаяДата(), "ДФ=""дд ММММ гггг 'г.' ЧЧ:мм:сс""")+Символы.ПС;
	
	МоментНарушенияПоЗакрытию = РаботаСПоследовательностями.МоментНачалаПерепроведенияСУчетомИсключенныхМесяцев(Организация, КонецМесяца(ТекущаяДата()));	
	
	ДополнительныеПараметры = Новый Структура();
	ДополнительныеПараметры.Вставить("СамостоятельнаяОперация", Истина);
	ДополнительныеПараметры.Вставить("ВидОперации", 			Неопределено);
	
	
	ПараметрыПерепроведения 								= Обработки.ГрупповоеПерепроведениеДокументов.ПараметрыПерепроведения();
	ПараметрыПерепроведения.Организация 					= Организация;
	Если МоментНарушенияПоЗакрытию = Неопределено тогда 
							СтрокаСообщения = СтрокаСообщения+
						  " Нет нарушения в хронологии проведения"+Символы.ПС+
						  " Окончание: "+Формат(ТекущаяДата(), "ДФ=""дд ММММ гггг 'г.' ЧЧ:мм:сс""");
		ЗаписьЖурналаРегистрации("Регламентное задание.Фоновое перепроведение", УровеньЖурналаРегистрации.Информация,,,СтрокаСообщения);
		Возврат;
	КонецЕсли;
	
	МоментНарушения = ?(МоментНарушенияПоЗакрытию.Дата<НачалоМесяца(ТекущаяДата()),НачалоМесяца(ТекущаяДата()),МоментНарушенияПоЗакрытию.Дата);
	МоментНарушения = Новый МоментВремени(МоментНарушения, Неопределено);
	ПараметрыПерепроведения.МоментНачала					= МоментНарушения;
	ПараметрыПерепроведения.ДатаОкончания					= КонецМесяца(ТекущаяДата());
	ПараметрыПерепроведения.ЭтоЗакрытиеМесяца 				= Ложь;
	Уид = Новый УникальныйИдентификатор;
	ПараметрыПерепроведения.УникальныйИдентификаторФормы = Уид;
	
	ПараметрыПерепроведения.ДополнительныеПараметры			= ДополнительныеПараметры;
	Результат =	Обработки.ГрупповоеПерепроведениеДокументов.ЗапуститьПерепроведение(ПараметрыПерепроведения);
	ВидСообщения = УровеньЖурналаРегистрации.Информация;
	СтрокаСообщения = СтрокаСообщения+ " Проведение "+МоментНарушения.Дата+" - " +  КонецМесяца(ТекущаяДата())+Символы.ПС; 
	Если Результат = Неопределено Тогда
		ВидСообщения = УровеньЖурналаРегистрации.Ошибка;
		СтрокаСообщения = СтрокаСообщения+" Ошибка проведения. Результат неопределен"+Символы.ПС; 
	Иначе
		Если НЕ Результат.ЗаданиеВыполнено Тогда
			ВидСообщения = УровеньЖурналаРегистрации.Ошибка;
			СтрокаСообщения = СтрокаСообщения+" Ошибка проведения. Задание не выполнено"+Символы.ПС; 
		КонецЕсли;
	КонецЕсли;
	СтрокаСообщения = СтрокаСообщения+ " Окончание: "+Формат(ТекущаяДата(), "ДФ=""дд ММММ гггг 'г.' ЧЧ:мм:сс""");
	ЗаписьЖурналаРегистрации("Регламентное задание.Фоновое перепроведение", ВидСообщения,,,СтрокаСообщения);

КонецПроцедуры

 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Юрий Иванов (urcont) 15.01.15 10:26
Может имеет смысл хардкодные данные вывести в параметры процедуры?
Непонятно какая конфигурация. УПП?
Какие документы будут перепроводиться? А если несколько последовательностей в конфигурации?
2. Kida Kida (kida1) 15.01.15 11:27
Параметры здесь не нужны, процедура для общего модуля, для регламентного задания.
Конфиграция Бух 3_0
Проведение аналогично проведению в закрытии месяца, будут проводиться документы по указанной организации.
3. 0vrcr PesskoFF (0vrcr) 16.01.15 21:00
Результат обработки и ошибки лучше писать не в лог.файл а в журнал регистрации, для истории
4. Ли Дмитрий (simple) 19.01.15 17:59
Позновательно, спасибо !
5. Den (Dvornik) 21.01.15 10:39
Не раз такое было.
Даже я писал подобное. http://infostart.ru/public/279894/
Вот и не я :http://infostart.ru/public/300754/
А что нового у вас?
6. Kida Kida (kida1) 21.01.15 21:57
Уникальное название публикации, запись в журнал регистрации.
Как и kholkin писал у вас в комментах - сначала сам сделал потом наткнулся на аналогичные.
7. Зоя Сорокина (Soikalv) 22.01.15 13:00
Интересно. но не понятно. нужно ли. Из моей практики. любое перепроведение документов. лучше проводить под контролем и выборочно. - один раз слетела база при встроенном групповом перепровдении документов. Копии базы не было. Пришлось восстанавливать предыдущую базу.
8. Владимир Чаклин (vec435) 22.01.15 14:50
я так сделал : допилил ГрупповаяОбработкаСправочниковИДокументов чтобы отбирать и запускать программно, допилил справочник, чтобы можно было хранить настройки ГрупповаяОбработкаСправочниковИДокументов. кроме того , днем настроил нужный отбор, сохранил а ночью, после перезагрузки сервера запускается перепроведение
9. Kida Kida (kida1) 22.01.15 16:59
(7) Soikalv, Врядли база слетела из-за перепроведения.
При большом обороте документов обычная ситуация - прихода еще нет, а расход уже проводят или зачет аванса 62.02. Месяц уже работает - пока нареканий нет.
10. Kida Kida (kida1) 22.01.15 17:01
(8) vec435, Процедура взята из закрытия месяца. Нам отбор не важен - нужно перепроводить все документы за период.