Имя: Пароль:
1C
1С v8
Обмен и ручные корректировки.
0 Zombi
 
14.05.13
13:53
Есть БП 2.0 и УТ 10.3, между ними настроен обмен. Документ "Списание товаров" создается в УТ и правится в БП(Движения документов корректируются). После проведения этого документа в УТ, в БП документ становится проведенным, в движениях галочка "Ручная корректировка" стоит, но движений никаких нет. При обмене же при ручных корректировках документ вообще не должен записываться? Или зависит от каких то настроек?
1 Zombi
 
14.05.13
14:12
ап
2 Zombi
 
14.05.13
15:01
Есть в обработке проведения такой код:

   Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
       Возврат
   КонецЕсли;


Функция:

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


При обмене вроде как все срабатывает, выдается сообщение:

Проведение документа "Списание товаров УТКС0000004 от 31.03.2013 23:59:59":
Движения документа отредактированы вручную и не могут быть автоматически актуализированы.

Но движения почему то очищаются. Почему?
3 Zombi
 
14.05.13
15:50
Обработка "ОбменДаннымиXML", функция "ПрочитатьОбъект" есть такой кусок:

                       Если НужноЗаписатьОбъект Тогда
                       
                           // документы которые просто нужно записать - так и записываем
                           Если РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
                               
                               ЗаписатьОбъектВИБ(Объект, ТипОбъекта);
                               
                           ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения
                               ИЛИ РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
                               
                               // проведение убираем всегда...
                                   ОтменитьПроведениеОбъектаВИБ(Объект, ТипОбъекта);

                               
                           КонецЕсли;
                           
                       КонецЕсли;
4 Zombi
 
14.05.13
15:50
Может модернизировать его до:

                       Если НужноЗаписатьОбъект Тогда
                       
                           // документы которые просто нужно записать - так и записываем
                           Если РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
                               
                               ЗаписатьОбъектВИБ(Объект, ТипОбъекта);
                               
                           ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения
                               ИЛИ РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
                               
                               // проведение убираем всегда...
                               Если Не Объект.РучнаяКорректировка Тогда
                                   
                                   ОтменитьПроведениеОбъектаВИБ(Объект, ТипОбъекта);
                                   
                               КонецЕсли;
                               
                           КонецЕсли;
                           
                       КонецЕсли;
5 MKZM
 
14.05.13
15:52
РежимЗаписи - Строка. Режим записи документа. Имеет смысл только если тип объекта приемника "Документ". Возможные значения "Запись", "Проведение", "ОтменаПроведения"

РежимПроведения - Строка. Режим проведения документа. Имеет смысл только если тип объекта приемника "Документ". Возможные значения "Неоперативный", "Оперативный"
6 MKZM
 
14.05.13
15:53
В перед загрузкой и не надо ничего модифицировать
7 Zombi
 
14.05.13
15:56
(6) Что писать в перед загрузкой?
8 Zombi
 
14.05.13
15:58
Да и вообще я стараюсь поменьше в правила лезть. Лучше уж тут при обновлении увидеть свои изменения, чем потом еще и в правилах ковыряться.
9 MKZM
 
14.05.13
15:59
Например
    Если Не Объект.РучнаяКорректировка Тогда
                                   
         РежимЗаписи = "Запись"   // Или что там надо                      
                                   
    КонецЕсли;