|
Конвертация - загружать только проведенные или уже присутствующие в приемнике | ☑ | ||
---|---|---|---|---|
0
varyag
21.04.15
✎
06:46
|
Надо чтобы не загружались непроведенные документы если они не были загружены раньше. Сделал алгоритм записи всех документов, который вызывается в "ПослеЗагрузки" объекта:
Если Объект.Проведен Тогда Попытка Объект.Записать(РежимЗаписиДокумента.Проведение); Исключение Объект.Проведен = Ложь; КонецПопытки; //Запись лога Выполнить(Алгоритмы.ЗаписьВЛог); Иначе Если ОбъектНайден Тогда Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения); Иначе Отказ = Истина; КонецЕсли; КонецЕсли; Для всех документов отрабатывает нормально, кроме тех, которые выгружаются из счет-фактуры ПКС ДокументОснование таким образом: // Если основание "Реализация товаров": ИначеЕсли ТипЗнч(Источник.ДокументОснование)=Тип("ДокументСсылка.РеализацияТоваров") Тогда Значение = Источник.ДокументОснование; ИмяПКО = "РеализацияТоваровУслуг"; Такие документы почему-то все равно загружаются в приемник, но заполнен только контрагент.. Не могу вычислить почему выгружаются, может кто подсказать? |
|||
1
1С_Fitness
21.04.15
✎
06:54
|
призагрузке так то , после загрузки ты уже загрузил)))
если не объект.проведен тогда отказ=истина; конецЕсли; |
|||
2
1С_Fitness
21.04.15
✎
06:55
|
(0) твой код неверен полностью
|
|||
3
varyag
21.04.15
✎
06:56
|
(1) Нет. Изучите справку.
После загрузки Условия возникновения события Только для платформы V8. Событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта. Параметры: Отказ - Булево - Если Истина, то объект загружен не будет. Для всех документов отрабатывает, кроме тех, ПКО и Значение которых определены программно |
|||
4
varyag
21.04.15
✎
06:56
|
(2) В чем он неверен?
|
|||
5
Dilgorp
21.04.15
✎
06:58
|
(4) выгружать то зачем если они не нужны? Да и долго если по каждому объекту отдельно проверять
|
|||
6
1С_Fitness
21.04.15
✎
07:00
|
(3) это ты изучай справку . у тебя что 7.7 ?
|
|||
7
varyag
21.04.15
✎
07:01
|
(5) У меня немного объектов, выбран оптимальный способ.
Выгружать затем что возможно раньше документ был проведен и выгружен в приемник. А потом решили что он не нужен, отменили проведение, тогда надо выгрузить, а при загрузке проверить: Если есть в приемнике - то отменить проведение, если нет - то не загружать |
|||
8
varyag
21.04.15
✎
07:02
|
(6) У меня 8. Но именно для 8 это событие и отрабатывает. Открой КД и проверь
|
|||
9
1С_Fitness
21.04.15
✎
07:03
|
(5) нафиг ты их грузишь ? ты не грузи их !
|
|||
10
1С_Fitness
21.04.15
✎
07:04
|
(3) Событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу.
То что надо ! нет документов , нет проблемы |
|||
11
varyag
21.04.15
✎
07:06
|
(9) (10) Ты прикалываешься? или троллишь?
|
|||
12
1С_Fitness
21.04.15
✎
07:07
|
(11) что не так ?
|
|||
13
Dilgorp
21.04.15
✎
07:08
|
(7) тогда не совсем понятно что это за кусок
// Если основание "Реализация товаров": ИначеЕсли ТипЗнч(Источник.ДокументОснование)=Тип("ДокументСсылка.РеализацияТоваров") Тогда Значение = Источник.ДокументОснование; ИмяПКО = "РеализацияТоваровУслуг"; Такие документы почему-то все равно загружаются в приемник, но заполнен только контрагент.. Не могу вычислить почему выгружаются, может кто подсказать? Отладчик то что говорит? |
|||
14
varyag
21.04.15
✎
07:10
|
(12) я же написал, это из ПСК ДокументОснование ПКО СчетФактура Выданный. Т.е. это из сч-фактуры программно прописано какое ПКО использовать для выгрузки оснований.
|
|||
15
varyag
21.04.15
✎
07:11
|
(14) ПСК=ПКС
|
|||
16
Dilgorp
21.04.15
✎
07:14
|
(14) Если я тебя правильно понял, такие документы выгружаются по ссылке и тебя удивляет почему они выгружаются?
|
|||
17
varyag
21.04.15
✎
07:20
|
(16) Не то чтобы удивляет. Просто хочу понять почему для них не отрабатывает Отказ=Истина в "ПослеЗагрузки"... Т.е. они либо до этого уже в базу записаны(но ОбъектНайден говорит что нет такого объекта), либо уже после, или как то записывается в режиме обмена данными.. не поймц я этого момента
|
|||
18
1С_Fitness
21.04.15
✎
07:21
|
Ты перед выгрузкой условие напиши, что непроведенные документы не выгружать , запросом получи ТЗ и через коллекцию свойств выполни выгрузку , это в ПКО
|
|||
19
1С_Fitness
21.04.15
✎
07:21
|
(17) потому что перед загрузкой надо
|
|||
20
SleepyHead
гуру
21.04.15
✎
07:21
|
РежимЗаписи = "Запись";
В обработчике "ПКО" преред обработкой отменили что ли? |
|||
21
Dilgorp
21.04.15
✎
07:22
|
(17) наверно для того чтобы сохранить ссылочную целостность
|
|||
22
Dilgorp
21.04.15
✎
07:23
|
(17) а чтобы не гадать пройдись отладчиком
|
|||
23
1С_Fitness
21.04.15
✎
07:26
|
(20) ТС уже сто раз говорили , а он справку отправляет читать (3)
|
|||
24
varyag
21.04.15
✎
07:27
|
(19) А для других всех не надо в "ПередЗагрузкой"?
(18) Не выгружать непроведенные не выход, говорю же надо проверить их в приемнике |
|||
25
1С_Fitness
21.04.15
✎
07:28
|
(24) Базы в одной сети ? можно комом проийтись запросом
|
|||
26
varyag
21.04.15
✎
07:30
|
(25) в одной. Не хочу лишние подключения к базе делать. Хотя возможно так и правильней будет, сначала проверить в приемнике наличие документов. Но это лишнее звено в обмене. Костыль какой то
|
|||
27
varyag
21.04.15
✎
07:32
|
(20) (23) РежимЗаписи здесь причем?
|
|||
28
varyag
21.04.15
✎
07:39
|
(25) Ответь пожалуйста на (24) А для других всех не надо в "ПередЗагрузкой"?
|
|||
29
Мимохожий Однако
21.04.15
✎
08:19
|
(7)Если документ не нужен, то его надо удалять. Признак проведения не для этого. ИМХО, думать надо ДО и не ПОСЛЕ. Поэтому не надо грузить лишнее, чтобы потом не удалять.
|
|||
30
varyag
21.04.15
✎
08:29
|
(29) А если документ не нужен и его еще нет в базе приемнике? То он загрузится помеченный на удаление - этого не нужно.
Или если он был нужен, выгрузился, а потом стал не нужен, его пометили на удаление - то его нужно выгружать повторно, чтобы в приемнике тоже пометить его. Поэтому на этапе выгрузки и проблемно определить выгружать или нет. А вот при загрузке уже проверки нормально отрабатывают. Но только не для выгружаемых программно: Если ТипЗнч(Источник.ДокументОснование)=Тип("ДокументСсылка.РеализацияТоваров") Тогда Значение = Источник.ДокументОснование; ИмяПКО = "РеализацияТоваровУслуг"; |
|||
31
Мимохожий Однако
21.04.15
✎
08:32
|
(30)Если документ помечен на удаление, то его не надо выгружать. А еще лучше - удалить окончательно. Сами себе геморрой делаете, а потом пытаетесь лечить через гланды.
|
|||
32
varyag
21.04.15
✎
09:06
|
(31) Я еще раз говорю, он мог раньше не быть помечен и был выгружен. Да, так у нас тут все работает, через опу. Старые документы могут отменить, распровести, изменить, хоть что сделать.
|
|||
33
varyag
21.04.15
✎
09:11
|
У меня и было раньше так что помеченные или непроведенные не загружались в приемник, если их там нет. Но вот недавно возникла необходимость чтобы ранее выгруженные документы пометить на удаление, для всех документов, кроме выгружаемых программно, я это легко делаю, а с этими проблема.
|
|||
34
Новиков
21.04.15
✎
09:38
|
||||
35
varyag
21.04.15
✎
10:54
|
(34) Как победили?
|
|||
36
varyag
21.04.15
✎
10:54
|
или никак?
|
|||
37
Новиков
21.04.15
✎
10:58
|
(36) это бага, причем на последнем релизе, как я уже и писал, воспроизводится на 100%. Более того, в той же ветке я представил простой демо пример, который каждый, при желании может проверить. Кто бы что ни говорил, но это - 100% бага. В той же ветке, если используется механизм онлайн-обмена, есть пруф на то, как можно полечить. Если это не твой случай, а у меня так и было, то да - в ПКО после загрузке, к величайшей засаде, это сделать не получиться. Нужно пересмотреть логику, и попытаться отказаться от этого действа в другом месте.
|
|||
38
Новиков
21.04.15
✎
11:00
|
Или как вариант, просто поправить УОД :) Но на сие можно убить большое количество времени. Исправленный УОД кем-то я пока не нашел.
|
|||
39
varyag
21.04.15
✎
11:00
|
(37) Спасибо, хот ты адекватно ответил. Ссылку на демо видел, но она не работает у меня
|
|||
40
varyag
21.04.15
✎
11:02
|
это она ? http://fihost.ru/file/259" target="_blank" rel="nofollow" class="extralink">http://fihost.ru/file/259
|
|||
41
varyag
21.04.15
✎
11:03
|
Похоже в твоей ветке она просто криво отображалась))
|
|||
42
Новиков
21.04.15
✎
11:07
|
(41) да эта ссылка. Скачай, сам погляди. Я использовал УОД последний. Я читал партнерку, и там тоже были вбросы, что где-то еще в ранних релизах УОДа, вроде такая ошибка была, потом где-то в середине, ее пофиксили. Я проверял с 2.1.7.1 - бага с этого релиза и далее стабильно воспроизводится. И видимо, коллеги, которые в моей ветке описывались, что бага по фиксина, помнили, что да - где-то в при Брежневе ее правда пофиксили. Но сейчас, она снова с нами! :)
|
|||
43
varyag
21.04.15
✎
11:12
|
(42) Прикольно)
|
|||
44
Новиков
21.04.15
✎
11:12
|
Тоже в Брежневских времен был костыль, как писали, что можно было подюзать переменные самого УОДа, не описанные в хелпе:
НужноЗаписатьОбъект = Ложь; или НужноБылоЗаписатьОбъект = Ложь; И когда то это правда работало, потому на партнерке гений 1С, когда то писал что он это подюзывал. Правда вроде в глобальном обработчике самой конвертации. В ПКО после загрузке вся это костыльщина уже не работает, поэтому как бы обложили со всех сторон. Ты проведи сам эксперимент, убедись что это бага, и уже с чистой совестью, думай где до после_загрузки ты можешь отказаться от этой долбанной загрузки. |
|||
45
varyag
21.04.15
✎
11:21
|
(44) я ради эксперимента пробовал В "ПриЗагрузке" писать отказ = истина, толку мало. Хочу файл выгрузить и сравнить как выгружается сч-фактура, и как выгружается реализация, т.к. с первой таких проблем не возникает. Возможно что-то прояснится. Но это уже не сегодня)
|
|||
46
Новиков
21.04.15
✎
11:27
|
(45) >>В "ПриЗагрузке" писать отказ = истина, толку мало
И вот, ты нашел вторую багу, которая плавно вытекает из первой. Да, и это, к великому прискорбию, тоже так. Бага проявляется, как ты уже понял, когда выгрузка идет из ПКС. |
|||
47
Cyberhawk
21.04.15
✎
12:16
|
(46) дай ссылку на партнерку
|
|||
48
Cyberhawk
21.04.15
✎
12:16
|
+(47) в смысле на тему из (42)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |