Имя: Пароль:
1C
 
КД2 - как при переносе попросить базу-приемник провести перенесенные документы?
0 Dmitry1c
 
03.11.17
15:20
КД2 - как при переносе попросить базу-приемник провести перенесенные документы?

Есть событие объекта "Конвертация" - "После загрузки объекта" - подойдет ли здесь размещения кода проведения документа?
1 Dmitry1c
 
03.11.17
15:22
Есть событие "После загрузки объекта" у сущности "Конвертация"

подойдет ли там расположение кода?

Объект.Записать(РежимЗаписиДокумента.Проведение)
2 MadJhey
 
03.11.17
15:22
РежимЗаписи = "Проведение";
3 MadJhey
 
03.11.17
15:22
Перед выгрузкой объекта(документа)
4 Amra
 
03.11.17
15:22
(0) Если достаточно что бы док провелся после записи в базу - да.
5 Ёпрст
 
03.11.17
15:53
(0) проще переносить с движениями
6 Dmitry1c
 
03.11.17
15:53
спасибо за ответы
7 Dmitry1c
 
03.11.17
15:53
(5) из УПП в ERP

проще, вестимо...
8 Ёпрст
 
03.11.17
15:54
(7) какая разница откуда и куда ?
9 Mikhail Volkov
 
03.11.17
15:56
(1) Не надо сразу проводить, загрузка может прерваться из-за ошибок проведения. В правилах УПП - ERP вставлено:
Если Объект.Проведен Тогда
    Параметры.ДокументыДляПроведения.Добавить(Объект);
КонецЕсли;
Ну после загрузки все загруженное проводится.
10 d4rkmesa
 
03.11.17
16:43
(0)
//ПослеЗагрузкиОбъекта:
Если ИмяТипаОбъекта = "Документ" Тогда
    ДатаВводаОстатков = РегистрыСведений.ДатыВводаНачальныхОстатков.ДатаВводаНачальныхОстатков(Параметры.Организация);    
    
    Если Параметры.ПроводитьДокументы И Объект.Проведен
        И (Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить) Тогда
        
        ИмяОбъектаМетаданных = Объект.Метаданные().Имя;        
        Если ИмяОбъектаМетаданных = "ВводНачальныхОстатков" Тогда
            Приоритет = 0;
        ИначеЕсли (ИмяОбъектаМетаданных = "СчетФактураВыданный")или(ИмяОбъектаМетаданных = "СчетФактураПолученный") Тогда
            Приоритет = 2;
        Иначе
            Приоритет = 1;
        КонецЕсли;
        
        Если НЕ ОбъектНайден Тогда
            //конечно, можно не записывать и добавлять ссылку на новый документ через ПолучитьСсылкуНового(), но так надежнее
            Объект.Проведен = Ложь;
            УстановитьОбменДаннымиЗагрузка(Объект, Истина);
            Объект.Записать(РежимЗаписиДокумента.Запись);
            ОбъектМодифицирован = Ложь;            
        КонецЕсли;        
        
        Если Приоритет <> 2 Тогда
            НоваяСтрока = Параметры.ТаблицаДокументов.Добавить();
            НоваяСтрока.Документ = Объект.Ссылка;
            НоваяСтрока.ДатаВремя = Объект.Дата;
            НоваяСтрока.Приоритет = Приоритет;
        КонецЕсли;
        
    КонецЕсли;
КонецЕсли;

//ПослеЗагрузкиДанных:

ВсегоСтрок = Параметры.ТаблицаДокументов.Количество();
Если ВсегоСтрок > 0 Тогда    
    Параметры.ТаблицаДокументов.Свернуть("Документ,ДатаВремя,Приоритет");
    Параметры.ТаблицаДокументов.Сортировать("Приоритет,ДатаВремя Возр");
    Ин = 0;
    Для каждого Строка из Параметры.ТаблицаДокументов Цикл
        Объект = Строка.Документ.ПолучитьОбъект();        
        Объект.ОбменДанными.Загрузка = Ложь;        
        Попытка
            Объект.Записать(РежимЗаписиДокумента.Проведение);
            Мсг = Новый СообщениеПользователю;
            Мсг.Текст = "Документ проведен: " + Строка(Объект.Ссылка);            
            Мсг.КлючДанных = Объект.Ссылка;
            Мсг.Сообщить();
            Ин = Ин + 1;
        Исключение
            Мсг = Новый СообщениеПользователю;
            Мсг.Текст = "Документ НЕ Проведен : " + Строка(Объект.Ссылка) + "" + ОписаниеОшибки();
            Мсг.КлючДанных = Объект.Ссылка;
            Мсг.Сообщить();
        КонецПопытки;
    КонецЦикла;
    Мсг = Новый СообщениеПользователю;
    Мсг.Текст = "Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено " + СокрЛП(Ин) +" объектов";    
    Мсг.Сообщить();    
Иначе
    Мсг = Новый СообщениеПользователю;
    Мсг.Текст = "Из "+СокрЛП(Параметры.ТаблицаДокументов.Количество())+" документов проведено 0 объектов";
    Мсг.Сообщить();    
КонецЕсли;
Параметры.Удалить("ТаблицаДокументов");
11 d4rkmesa
 
03.11.17
16:44
(0) Можно, конечно, красивее, но на средних объемах "и так сойдет". Тем более, для онлайн-обменов по другому вопрос решается.
12 Dmitry1c
 
03.11.17
19:32
(11) спасибо
Основная теорема систематики: Новые системы плодят новые проблемы.