|
КД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) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |