Имя: Пароль:
1C
1C 7.7
v7: Как изменяется Последовательность
0 revision
 
18.02.13
09:43
Подскажите плиз - не силен в 1с77.
Есть в Документах некая последовательность. В нее включено 2 регистра.
Как она может изменятся? При каких событиях?
Поясню.
При проведении(загрузка данных через XML), если дата документа в закрытом периоде - документ в отказ и не проводится.
Но сдвигается граница последовательности. Почему - не пойму.
Подскажите, плиз.
1 Aleksey
 
18.02.13
09:46
только регистры? а документы включены?
2 revision
 
18.02.13
09:49
(1)внизу только в разделе "Последовательность влияет на проведение"
3 Джордж1
 
18.02.13
09:54
(0)"документ в отказ " - это как выглядит?
4 revision
 
18.02.13
09:58
(3)как то так
Процедура ОбработкаПроведения(П)  
   
   ДатаЗапрета = Константа.ДатаЗапретаРедактирования;
   
   Если ДатаДок <= ДатаЗапрета Тогда        
       Сообщить( "Период закрыт для редактирования!");
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
5 Джордж1
 
18.02.13
09:58
(4)А в процедуре восстановления последовательности успех проведения проверяется?
6 revision
 
18.02.13
09:59
(5)не понял - это как и где?
7 revision
 
18.02.13
10:05
апну что ли
8 Джордж1
 
18.02.13
10:36
Функция глВосстановлениеПоследовательности(ВыбПоследовательность) Экспорт
   Перем СтараяПозицияТА;                                                
   
   Если ПравоДоступа("ГрупповоеПроведениеДокументов") = 0 Тогда
       Предупреждение("Недостаточно прав доступа!");
       Возврат 0;
   КонецЕсли;
                       
   СтараяПозицияТА = ПолучитьПозициюТА();
   БылиОшибкиПроведения = 0;
   
   Документ=СоздатьОбъект("Документ");
   Документ.ВыбратьДокументы(ВыбПоследовательность.ПолучитьПозицию(),);
   
   Пока (Документ.ПолучитьДокумент()>0)
   и    (БылиОшибкиПроведения = 0)
   Цикл
       
       Если Документ.Проведен()=0 Тогда
           Продолжить;
       КонецЕсли;
       
       ТекДок = Документ.ТекущийДокумент();
       
       Если МонопольныйРежим()>0 Тогда
           // если оперативный документ находится за ТА, то ТА надо передвинуть в любом случае
           Если (ТекДок.СравнитьТА()>0)
           или  (ВыбПоследовательность.ПринадлежитПоследовательности(ТекДок)>0) Тогда
               БылаПозиция = ПолучитьПозициюТА();
               УстановитьТАНа(ТекДок);
               Если БылаПозиция = ПолучитьПозициюТА() Тогда
                   // не удалось поменять (например, были открытые документы)
                   БылиОшибкиПроведения = 1;
                   Продолжить;
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;  
           
       Если ВыбПоследовательность.ПринадлежитПоследовательности(ТекДок)>0 Тогда
           Объект=СоздатьОбъект("Документ");
           Объект.НайтиДокумент(ТекДок);
               
           Состояние("Восстановление последовательности: "+ТекДок.ДатаДок);
       
           Попытка                          
               Если Объект.Провести() = 0 Тогда
                   БылиОшибкиПроведения = 1;
               КонецЕсли;    
           Исключение
               глСообщениеПроведения("Не удалось провести документ "+Строка(Объект)+"
               |Ошибка: "+ОписаниеОшибки(), Объект.ТекущийДокумент(),,,1);
               БылиОшибкиПроведения = 1;
           КонецПопытки;
       КонецЕсли;
   
   КонецЦикла;    
                                     
   Если (МонопольныйРежим()>0)
   и    (СтараяПозицияТА <> ПолучитьПозициюТА())
   Тогда
       УстановитьТАПо(СтараяПозицияТА);
   КонецЕсли;
               
   Возврат ?(БылиОшибкиПроведения = 0,1,0);
   
КонецФункции    // глВосстановлениеПоследовательности()
9 Джордж1
 
18.02.13
10:37
я так понимаю что успех проведения и продвижение ГП никак не связаны.
Это ручками проверяем
               Если Объект.Провести() = 0 Тогда
                   БылиОшибкиПроведения = 1;
               КонецЕсли;
10 revision
 
18.02.13
10:38
спасибо!