|
Регламентные задания-продолжение | ☑ | ||
---|---|---|---|---|
0
amadeus2010
13.12.12
✎
12:41
|
Добрый день, начал новую ветку,так в старой не отвечают. Так вот создал регламентное задание по запуск обработки проведение по партиям.При первом запуске обработки она начинает перепроводить документы с начала учета, а как программно можно установить нужную дату с котрой обработка должна вести перепроведение.Старые данные должны остаться как есть.Привожу коды которые используются в регламентном задании. Добавил в ПолучитьГраницуПоследовательности()в запросе условие Где параметр даты и в установить.параметр прописал дату от которой надо перепроводить документы.Также есть идея в МоементВремени вместо '00010101' поставить '20121201'
/////////////////////////////////////////////////////// Функция ПолучитьГраницуПоследовательности(Учет="", Организация = Неопределено) Экспорт Если Учет = "Упр" ИЛИ Учет ="" Тогда СтрОкончание = ""; СтрРеквизит = "Управленческом"; ИначеЕсли Учет = "Бух" Тогда СтрОкончание = "БУ"; СтрРеквизит = "Бухгалтерском"; ИначеЕсли Учет = "Нал" Тогда СтрОкончание = "НУ"; СтрРеквизит = "Налоговом"; ИначеЕсли Учет = "НДС" Тогда СтрОкончание = "НДС"; СтрРеквизит = "НДС"; Иначе Возврат Новый МоментВремени('00010101'); КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПартионныйУчетГраницы.МоментВремени КАК МоментВремени |ИЗ | Последовательность.ПартионныйУчет" + СтрОкончание + ".Границы КАК ПартионныйУчетГраницы |ГДЕ | ПартионныйУчетГраницы.Организация = &Организация | И ПартионныйУчетГраницы.Период >= &время | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ПартионныйУчет.МоментВремени |ИЗ | Последовательность.ПартионныйУчет" + СтрОкончание + " КАК ПартионныйУчет |ГДЕ | (НЕ ПартионныйУчет.ПроведенВХронологическойПоследовательности) | И ПартионныйУчет.Организация = &Организация | И ПартионныйУчет.Период >= &время | |УПОРЯДОЧИТЬ ПО | МоментВремени"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("время", Дата("20121201")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.МоментВремени; Иначе Возврат Новый МоментВремени('00010101'); КонецЕсли; КонецФункции // ПолучитьГраницуПоследовательности(Задача) /////////////////////////////////////////////////////////// но при выполнении обработки она сперва перепроводит все документы с начала ведения учета от 2009г., а затем при повторном вызове перепроводит только документы по текущей дате,что собственно говоря нормально. Есть подозрения на Возврат Новый МоментВремени('00010101'); Трассировкой пытался отследить участок кода где она пытается найти ссылку на дату последовательности от 2009г., но не смог найти пока что.Как поставить запрет на то чтобы обработка не затрагивала данные до скажем 01.12.2012? Вот сам код вызова обработки из регламентного задания + Code ////////////////////////////////////////////////////// Процедура РегламентноеЗадание_ПроведениеПоПартиям() Экспорт Обработка=Обработки.ПроведениеПоПартиям.Создать(); Обработка.ДатаКонцаОбработки=ТекущаяДата(); Обработка.Организация=Справочники.Организации.НайтиПоНаименованию("Тест"); Обработка.ОтражатьВБухгалтерскомУчете=Истина; Обработка.ОтражатьВУправленческомУчете=Истина; Обработка.ОтражатьВНалоговомУчете=Ложь; Обработка.ФормироватьПроводки=Истина; Обработка.МаксимальноеКоличествоДокументовВВыборке=1; Обработка.МаксимальноеКоличествоСтрокВТранзакции=1; Обработка.ПолучитьГраницуПоследовательности(); Если Обработка.ВыполнятьНаСервере Тогда УправлениеЗапасамиПартионныйУчет.ВыполнитьВосстановлениеНаСервере (Обработка.ДатаКонцаОбработки, Обработка.Организация, Обработка.ОтражатьВУправленческомУчете, Обработка.ОтражатьВБухгалтерскомУчете, Обработка.ОтражатьВНалоговомУчете, Обработка.Останавливаться, Обработка.МаксимальноеКоличествоДокументовВВыборке, Обработка.МаксимальноеКоличествоСтрокВТранзакции, Обработка.ФормироватьПроводки, Обработка.ПроводитьПоНДС); Иначе ЗаполнениеДокументов.ВыполнитьВосстановление (Обработка.ДатаКонцаОбработки, Обработка.Организация, Обработка.ОтражатьВУправленческомУчете, Обработка.ОтражатьВБухгалтерскомУчете, Обработка.ОтражатьВНалоговомУчете, Обработка.Останавливаться, Обработка.МаксимальноеКоличествоДокументовВВыборке, Обработка.МаксимальноеКоличествоСтрокВТранзакции, Обработка.ФормироватьПроводки, Обработка.ПроводитьПоНДС); КонецЕсли; КонецПроцедуры ///////////////////////////////////////////////////////// |
|||
1
amadeus2010
13.12.12
✎
12:54
|
никто не сталкивался с таким вопросом?
|
|||
2
ale-sarin
13.12.12
✎
12:55
|
Границу перенести, не?
|
|||
3
amadeus2010
13.12.12
✎
13:03
|
не совсем так, мне надо поставить запрет на перепроведение документов ранее скажем 01.12.2012, где можно это сделать?
|
|||
4
amadeus2010
13.12.12
✎
13:32
|
ау есть кто-нибудь?
|
|||
5
amadeus2010
13.12.12
✎
14:54
|
вопрос по-прежнему актуальный.Исходя из вышеуказанного кода могу ли я где-нибудь указать нечто вроде этого Последовательность.УправленческийУчет.Установить("01.12.2012"),чтобы документы ранее этой даты не перепроводились?
|
|||
6
ale-sarin
13.12.12
✎
15:11
|
(5) Я об этом и говорил в (2).
|
|||
7
BigShmax
13.12.12
✎
15:33
|
(5) - (2) (6) что еще не так то?
|
|||
8
amadeus2010
13.12.12
✎
15:50
|
(7) в функции получитьграницу последовательности не подскажите как добавить Последовательность.УправленческийУчет.Установить("01.12.2012")?
|
|||
9
cw014
13.12.12
✎
15:52
|
(8) Последовательность.УправленческийУчет.УстановитьГраницу(Новый МоментВремени("01.12.2012"))
|
|||
10
amadeus2010
13.12.12
✎
16:00
|
(9) как видно из кода граница последовательности отбирается запросом, где в условии указал период и его значение как определенную дату.Теперь как я могу добавить (9)? При этом мне надо поставить запрет на проведение документов ранее 01.12.2012?
|
|||
11
amadeus2010
13.12.12
✎
16:25
|
в УПП есть обработка установка даты запрета изменения данных.Если сперва задействовать ее поставив дату запрета 30.11.12, а потом запустить регламентное задание проведение документов, не будут ли перепроводиться документы ранее 01.12.2012?
|
|||
12
amadeus2010
13.12.12
✎
17:25
|
добавил в код модуля регламентного задания следующий код
////////////////////////////////////////////////// Если Обработка.ОтражатьВБухгалтерскомУчете=Истина Тогда Последовательности.ПартионныйУчетБУ.УстановитьГраницу(Новый МоментВремени("01.12.2012")); КонецЕсли; Если Обработка.ОтражатьВУправленческомУчете=Истина Тогда Последовательности.ПартионныйУчет.УстановитьГраницу(Новый МоментВремени("01.12.2012")); КонецЕсли; ////////////////////////////////////////////////////// насколько верно такое решение? |
|||
13
amadeus2010
13.12.12
✎
17:49
|
никто не сталкивался с такой проблемой?
|
|||
14
ale-sarin
13.12.12
✎
18:09
|
(12) Это надо сделать одноразово или иногда, а не в каждый раз при запуске обработки. Я так думаю.
Только имей ввиду, что при изменении дока задним числом, граница сдвинется назад. |
|||
15
amadeus2010
14.12.12
✎
09:23
|
(14) а что думаете по поводу (11)? я вот что еще думаю.Есть функция Обработка.ПолучитьГраницуПоследовательности()-(0) в которой по идее устанавливается последовательность запросом.Но вот что еще интереснозапуская обработку впервые она отрабатывает с 2009, несмотря на то что я поставил запрет изменения данных на дату 30.11.12.Также обратил внимание на то что в регистрах по партионному и бух учету дата актуальности от 2009г. Может обработка восстанавливает последовательность на текущую дату?
|
|||
16
ale-sarin
14.12.12
✎
09:48
|
(15) В (0) Граница не устанавливается, а выясняется.
По поводу (11) у меня в КА так: если установлена дата запрета редактирования, то типовая обработка "Восстановление последовательностей", которую я запускаю по ночам с помощью регламентного задания, не выполняется если граница раньше даты запрета. Т.е. восстановление последовательности не выполнено. Думаю, у Вас так же должно быть. Надо проверить. Ну и, наверное, установить галку "Применять дату запрета для полных прав". Дата актуальности - это другое, хотя почитать надо, лишним не будет. |
|||
17
amadeus2010
14.12.12
✎
10:07
|
просмотрел трассировкой запрос
/////////////////////////////////////////////// Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПартионныйУчетГраницы.МоментВремени КАК МоментВремени |ИЗ | Последовательность.ПартионныйУчет" + СтрОкончание + ".Границы КАК ПартионныйУчетГраницы |ГДЕ | ПартионныйУчетГраницы.Организация = &Организация | И ПартионныйУчетГраницы.Период >= &время | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ПартионныйУчет.МоментВремени |ИЗ | Последовательность.ПартионныйУчет" + СтрОкончание + " КАК ПартионныйУчет |ГДЕ | (НЕ ПартионныйУчет.ПроведенВХронологическойПоследовательности) | И ПартионныйУчет.Организация = &Организация | И ПартионныйУчет.Период >= &время | |УПОРЯДОЧИТЬ ПО | МоментВремени"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("время", Дата("20121201")); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.МоментВремени; Иначе Возврат Новый МоментВремени('00010101'); КонецЕсли; ///////////////////////////////////////////////////// так вот МоментВремени в Возврат Выборка.МоментВремени; возвращает пустое значение и вот думаю от этого и идет путаница |
|||
18
ale-sarin
14.12.12
✎
10:25
|
(17) Че то я не понял. А зачем нам получать последовательность больше или равную такой-то даты?
Если уже установили последовательность на 01.12.12, как в (12), то следует запустить типовую обработку, и убрать из запроса эту фигню про дату. |
|||
19
amadeus2010
14.12.12
✎
11:03
|
(18) сделал так в типовой обработке проведение по партиям в настройках в установка границы последовательности выставил 01.12.2012, в обработке граница последовательности сместилась на эту дату,затем создал документы текущей датой, запустил обработку ГП сместилась на 14.12.2012 и в отчете отобразилась приходная и расходные части, тогда можно (12) не указывать.Еще вопрос если я создам документ скажем от 07.12.2012 то ГП сместиться на эту дату, но при запуске обработки исправиться ли ГП на текущую дату?
|
|||
20
amadeus2010
14.12.12
✎
11:24
|
создал документы от 07.12.12 расходный и приходный документы, запустил обработку, естественно что не списалось по партиям в упр и бух учете и товар как бы остался на складе при этом в обработке отображается ссылка на последний расходный документ на текущую дату
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |