Имя: Пароль:
1C
1С v8
КД2. Изменение источника после выгрузки
0 Demasiado
 
16.12.20
14:18
Всем привет.

Коллеги, подскажите, Конвертация 2. Необходимо после выгрузки объект изменить его в источнике. Условно, есть у нас документ и в нем галка "Выгружать", нужно после выгрузки галку снимать и документ записывать/проводить
1 ДенисЧ
 
16.12.20
14:20
Убивать за такое надо.
2 Жан Пердежон
 
16.12.20
14:23
не надоело лисапеды изобретать?
3 Demasiado
 
16.12.20
14:28
(1) обоснуй (2) тоже
4 Ёпрст
 
16.12.20
14:30
(0) выкинуть галку (реквизит свой с "выгружать") к едрени фени. Регистрировать изменения объекта в плане обмена, выгружать изменения по этому плану. Усё.
5 Demasiado
 
16.12.20
14:32
(4) чудесно. я прекрасно знаю про планы обмены, конфа ведь вполне может оказаться и самописной, в которой планов обменов не используют и не реализовали. Но тут речи о них не идет. Господа из (0) и (1) видимо наванговали про контекст задачи, поэтому написали свои рекомендации
6 Demasiado
 
16.12.20
14:33
(5) + конечно же из 1 и 2
7 Ёпрст
 
16.12.20
14:46
(5) если очень надо, можешь свою галку в ПослеВыгрузки поставить.. но это не верно, ибо данные эти могут не загрузить вообще
8 Demasiado
 
16.12.20
14:52
(7) знаю про "узкие места", на интеграциях "собаку съел". Но мне сейчас просто нужно проделать простейшее действие, без контроля результата). Я в правилах прописал "ПВД_ПослеВыгрузки" Объект.Выгружать = Ложь; ругается что поле недоступно для записи. Сомневаюсь, что там можно просто вписать Выгружать = ложь; и надо ли объект потом еще в обработчике записать? Понятное дело, что через отладчик я сейчас все найду и "отлажу", но вдруг кто сталкивался и быстрее подскажет
9 Demasiado
 
16.12.20
14:55
ПВД документа конечно же
10 Demasiado
 
16.12.20
15:31
(7) спасибо за подтверждение что я двигался в правильном направлении.
Выкладываю код, вдруг кому пригодится, вписывается в обработчик ПВДПослеВыгрузки нужного документа(в моем случае документа)

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

И да, код можно лишь в тех случае, где его использование оправдано или зависит от конкретной задачи, т к здесь действительно нет проверки что данные были доставлены в приемник (или загружены)  , отдельное спасибо Ёпрсту
11 zippygrill
 
16.12.20
16:10
Я бы вынес реквизит Выгружать в дополнительные реквизиты..
Смотрю ситуацию когда выгрузят документ 2019 года, а период закрыт...
12 Demasiado
 
16.12.20
16:21
(11) это если в конфе есть БСП, а так рисовать свой рег свед со статусами или галками. А так да, все верно, такая ошибка тоже может быть
13 Demasiado
 
16.12.20
16:24
+ (12)  (хотя ут 10 к примеру, без бсп, а допсвойства там есть)
14 Vovan1975
 
16.12.20
17:53
ну то есть планы обмена отменили нафик да?
15 Demasiado
 
16.12.20
18:11
(14) если есть желание в самописке на 3 справочника и 2 документа и где не требуется контроль ответов от приемника впилить полноценный обмен через планы обмена или впилить БСП - велком
16 Vovan1975
 
16.12.20
18:26
(15) бугага
17 Demasiado
 
16.12.20
18:42
(16) такой большой мальчик (1975 это видимо год рождения?) а ведешь себя как идиот, ая яй
18 Сияющий Асинхраль
 
16.12.20
19:40
А зачем БСП для планов обмена? Только недавно пилил чуть ли не самопальную конфу, новый план обмена делается элементарно, БСП нахрен не нужно, и обработка всего этого несколько строк кода...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший