|
КД2. Изменение источника после выгрузки | ☑ | ||
---|---|---|---|---|
0
withoutname
27.09.22
✎
15:11
|
Собственно вопрос в теме
Нашел похожую тему, КД2. Изменение источника после выгрузки но у меня не прокатил данный способ. Пишет "Не удалось записать <Документ>" |
|||
1
withoutname
27.09.22
✎
15:11
|
Добавлю, нам данный реквизит нужен для блокировки документа от изменения )
|
|||
2
withoutname
27.09.22
✎
17:43
|
(0) Разобрался, у меня выдает ошибку, т.к. этот реквизит блокирует изменение )))
Добавил
и все получилось |
|||
3
withoutname
28.09.22
✎
12:30
|
Еще пришлось в Подписке на событие проверять значение этого реквизита, иначе документ циклически регистрировался к выгрузке
|
|||
4
mistеr
28.09.22
✎
18:38
|
Следующий шаг в правильном направлении — блокировать не при выгрузке, а после успешной загрузки. :)
|
|||
5
withoutname
28.09.22
✎
19:50
|
(4) было бы круто, как это сделать?
|
|||
6
Aleksey
28.09.22
✎
20:34
|
(0) Я бы через глобальный обработчик это делал бы
добавил параметр СписокВсехВыгруженныхОбъектов инициализировал бы его в "После загрузки правил обмена" Далее в глобальном "После выгрузки объекта" проверял что это документ и добавлял бы его в параметр (Параметры.СписокВсехВыгруженныхОбъектов.Добавить(Объект)); И уже после того как выгрузка успешно завершена т.е. в глобальном модуле "После выгрузки данных" уже бы бежал бы по документам и ставил галочки. По крайне мере если выгрузка прервется (вылетит 1с, нарвется на ошибки) в твоем случае ты потеряешь часть данных (так как часть документов уже будет с галкой "выгружен"), а в этом случае ты просто повторно выгрузишь |
|||
7
Aleksey
28.09.22
✎
20:39
|
(5) Да как удобно так и делай, к примеру
в После загрузки объекта пиши в текстовый файл реквизиты объекта в После загрузки данных отправляй этот файл куда нибудь (например на фтп) а уже при следующей выгрузки в После загрузки правил обмена считывай этот файл, ищи документы и меняй реквизиты Если конечно не боишься коллизии, когда еще не загрузили подтверждение, но нужно повторно выгрузить документ. Тогда у тебя перед загрузкой флаг что нужно выгружать будет сброшен и обновленные данные не уйдут в приемник |
|||
8
mistеr
29.09.22
✎
07:52
|
(7) Зачем городить свой костыльный механизм, когда есть штатный?
|
|||
9
withoutname
29.09.22
✎
16:04
|
(8) направь в нужную сторону)
|
|||
10
withoutname
29.09.22
✎
16:29
|
mikecool нет, документ создается не проведенный, пользователь заполнит имеющейся номенклатурой
|
|||
11
withoutname
29.09.22
✎
16:30
|
п.с. PR я так понимаю тут же задать вопрос? )
|
|||
12
withoutname
29.09.22
✎
16:32
|
Задача:
В базе Источник у Номенклатуры есть "признак" (булево), если Истина Номенклатуру надо создавать в Приемнике, если Ложь не создавать. В последствии по ней (пользователь проставит соответствие) Пробовал в ПКО ПередВыгрузкой отсеивать, но тогда Номенклатура совсем не выгружается. Как это организовать? Думаю надо в ПКС передать этот реквизит в Параметр, но как (и где) его потом обработать? |
|||
13
mistеr
29.09.22
✎
16:53
|
(9) Передавай реквизит таким же обменом в обратную сторону
|
|||
14
mistеr
29.09.22
✎
16:54
|
(12) Да, в параметр. Обработай при загрузке.
|
|||
15
withoutname
29.09.22
✎
16:54
|
(13) в Приемнике нет этого реквизита
|
|||
16
withoutname
29.09.22
✎
17:43
|
(14) не нашел нужного параметра
|
|||
17
mistеr
29.09.22
✎
18:33
|
(12) Я первый раз невнимательно прочитал задачу. А чем не устраивает вариант "совсем не выгружается"?
|
|||
18
mistеr
29.09.22
✎
18:33
|
(15) Это не мешает передать в обмен что угодно.
|
|||
19
withoutname
29.09.22
✎
19:08
|
(17) нужно выгрузить УИД, чтобы подставилась сопоставленная номенклатура
(16) обработал в ПКО ПослеЗагрузки, странно, но почему то там есть ПараметрыОбъекта ) |
|||
20
withoutname
29.09.22
✎
19:10
|
Еще одна задачка )
Как писать в Лог сообщение об ошибке? Например: если документ проведен в Источнике, запретить его перезаписывать (это сделал) и в логе сообщать, что такой то документ не перезаписан |
|||
21
mistеr
29.09.22
✎
19:33
|
(20) О каком логе речь?
|
|||
22
withoutname
29.09.22
✎
19:45
|
||||
23
PR
29.09.22
✎
19:50
|
(11) Да не, зачем, хреначь на каждый свой вопрос новую ветку
Пусть главная страница полностью забьется вопросами по КД, че |
|||
24
withoutname
29.09.22
✎
20:03
|
(23) зато потом быстрым поиском проще искать будет )
|
|||
25
withoutname
29.09.22
✎
20:20
|
(20) нашел следующие методы, завтра буду разбираться )
Обработка.КонвертацияОбъектовИБ.ЗаписатьВПротоколВыполнения() РС.РезультатыОбменаДанными.<...> |
|||
26
PR
29.09.22
✎
20:33
|
(24) Это вряд ли, у тебя же нет доступа к удаленным веткам
|
|||
27
withoutname
30.09.22
✎
08:23
|
(26) да я не про это, я про то если бы ветка осталась)
|
|||
28
withoutname
30.09.22
✎
16:50
|
В ПКО документа в методе ПослеЗагрузки прописал
Но контекст выполняется на Источнике, и соответственно добавляется в РС.РезультатыОбменаДанными Источника... |
|||
29
withoutname
03.10.22
✎
10:03
|
ап
|
|||
30
withoutname
04.10.22
✎
11:38
|
(28) выяснил что запись в РС все таки делается в базе Приемнике, но не проставляется УзелДляОбмена, если его проставить, запись появляется в форме Предупреждений
|
|||
31
withoutname
04.10.22
✎
15:55
|
(28) итоговый код
|
|||
32
withoutname
12.12.22
✎
18:57
|
Дополню
Корректнее сделать так
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |