![]() |
|
v7: Как ограничить кол-во элементов в транзакции в обмене через УниверсальныйОбменДаннымиXML? | ☑ | ||
---|---|---|---|---|
0
DenYuliya
28.11.17
✎
10:47
|
Валится с ошибкой "Недостаточно памяти", все советуют "Выгружай по частям", а я что-то не могу понять, где это настраивается, и настраивается ли вообще, или надо обработину править?
Где в выгрузки из УТ 10 в УТ 11 - знаю, там прямо галочка есть, "выгружать в транзакциях". Гружу с ТиС в УТ 11, через УниверсальныйОбменДаннымиXML, правила типовые для обмена ТиС - УТ 11, но дописанные. |
|||
66
Ёпрст
гуру
29.11.17
✎
16:16
|
ну и еще нужна проверка, что найденный справочник по коду - это группа
|
|||
67
Ёпрст
гуру
29.11.17
✎
16:17
|
и проще, ничего не искать по-коду, а передавать параметром ссылку на группу. Усё
|
|||
68
DenYuliya
29.11.17
✎
16:22
|
(66) Спр = СоздатьОбъект("Справочник.Контрагенты");
Если Спр.НайтиПоКоду("00000001")=1 И Спр.ЭтоГруппа() = 1 Тогда Отказ = 1-Объект.ПринадлежитГруппе(Спр.ТекущийЭлемент()); КонецЕсли; Про ТекЭлемент - поняла, логично. Ищу по коду я в общем списке значений, а потом с ТекЭлементом работаю. |
|||
69
Ёпрст
гуру
29.11.17
✎
16:24
|
(68) скобок не хватает в условии
|
|||
70
DenYuliya
29.11.17
✎
16:25
|
(67) согласна, примерно так и хотела -сначала понять, что такой метод вообще работает, а потом разбираться, как это в параметр запихнуть.
Единственное, я думала в качестве параметра сделать "Код" или "Наименование", и поставить галку "Редактируется в списке", или как-то так. Почему лучше ссылка, точнее и без проверки на ЭтоГруппа()? |
|||
71
DenYuliya
29.11.17
✎
16:26
|
(69) Если (Спр.НайтиПоКоду("00000001")=1) И (Спр.ЭтоГруппа() = 1) Тогда
Отказ = 1; КонецЕсли; Неужели эти скобки так важны? Вроде бы в 8.2 и без них отрабатывает. |
|||
72
Ёпрст
гуру
29.11.17
✎
16:37
|
(70) Потому, что ссылка однозначно определяет элемент, а код - может быть
а)не уникален б)отсутствовать г)изменён д)принадлежать элементу а не группе |
|||
73
DenYuliya
29.11.17
✎
16:41
|
мТаблицаПравилВыгрузки.УстановитьЗначение(мТаблицаПравилВыгрузки.ТекущаяСтрока(), Имя, Значение);
{C:\USERS\Users\DESKTOP\ОБМЕН ТИС - КА\ПРАВИЛА\77.ERT(50063)}: Неверный идентификатор колонки! Я же правильно делаю? В обработчике ПВД стандартного "ПередВыгрузкой". Суть сообщения примерно понимаю, но о какой колонке речь - не понятно... |
|||
74
DenYuliya
29.11.17
✎
16:49
|
Отказ =
1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент()); Может дело в этом самом "1 - "? Никаких колонок я не добавляла (явно во всяком случае), ТЗ не создавала... |
|||
75
Ёпрст
гуру
29.11.17
✎
16:51
|
(74) нет
|
|||
76
DenYuliya
29.11.17
✎
17:04
|
//Если Объект.ЭтоГруппа() = 1 Тогда
// Отказ = 1; //КонецЕсли; СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); Если (СпрКонтр.НайтиПоКоду("00000001")=1) И (СпрКонтр.ЭтоГруппа() = 0) Тогда Отказ = 1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент()); КонецЕсли; //Отказ = Объект.ПометкаУдаления(); Если Объект.ПометкаУдаления() = 1 Тогда Отказ = 1; КонецЕсли; Все, что сделала - это закоментировала 1 условие, и добавила второе. И все, куча ошибок валится(((. Это ПВД, "ПередВыгрузкой" |
|||
77
Ёпрст
гуру
29.11.17
✎
17:07
|
(76)
И (СпрКонтр.ЭтоГруппа() = 1) |
|||
78
DenYuliya
29.11.17
✎
17:10
|
Да, это у меня нормально стоит, я поправила уже.
Все равно с ошибкой валится. |
|||
79
DenYuliya
29.11.17
✎
17:11
|
Вот так на самом деле:
//Если Объект.ЭтоГруппа() = 1 Тогда // Отказ = 1; //КонецЕсли; СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); Если (СпрКонтр.НайтиПоКоду("00000001")=1) И (СпрКонтр.ЭтоГруппа() = 1) Тогда Отказ = 1 - Объект.ПринадлежитГруппе(СпрКонтр.ТекущийЭлемент()); КонецЕсли; Если Объект.ПометкаУдаления() = 1 Тогда Отказ = 1; КонецЕсли; |
|||
80
Ёпрст
гуру
29.11.17
✎
17:14
|
(79) если весь код оттуда выкидываешь, ошибка остаётся?
так ? :) |
|||
81
DenYuliya
29.11.17
✎
17:15
|
Весь добавленный? Сейчас попробую.
|
|||
82
DenYuliya
29.11.17
✎
17:21
|
(80) да...код закоментила - ошибка осталась. а в чем прикод *где тут смайл с квадратными глазами*?
|
|||
83
DenYuliya
29.11.17
✎
17:23
|
*прикол
Есть у меня одно подозрение.Сейчас проверю. |
|||
84
DenYuliya
29.11.17
✎
17:49
|
(79) ну...эта ошибка ушла. Видимо дело было в следующем: я запускала обработку "Групповое создание свойств и значений", по одному из советов "для оптимизации выгрузки" на каком-то из ресурсов.
Видимо что-то лишнее создалось. Зато появилась другая, уже при загрузке ((: Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1008)}: Ошибка при вызове метода контекста (Прочитать): Ошибка разбора XML: - [3058,59184] Фатальная ошибка: PCDATA invalid Char value 2 SystemId: file://C:/Users/USR1CV8.S1C.000/AppData/Local/Temp/v8_5D2F_1780.xml Данные все-таки перенеслись, но не те)))Перенеслись только группы без элементов в них, в том числе группа по коду 00000001 |
|||
85
Franchiser
гуру
29.11.17
✎
17:55
|
(84) есть какой-то непечатываемый символ, который в XML нельзя помещать. Нужно его найти)
|
|||
86
Franchiser
гуру
29.11.17
✎
18:04
|
найди в файле символ ALT + 2 (цифра набирается на цифровой клавиатуре), должен получится символ черный смайлик.
|
|||
87
DenYuliya
29.11.17
✎
18:11
|
И что мне с ним сделать?
Открыла файл правил в txt, вызвала смайлик... но вызывается где угодно, куда мышь наведешь. |
|||
88
Franchiser
гуру
29.11.17
✎
18:14
|
(87) зачем файл правил? нужно найти его в файле выгрузки и определить причину возникновения, скорее всего данные в 7-ке править нужно.
|
|||
89
Franchiser
гуру
29.11.17
✎
18:15
|
(87) ты хочешь сказать у тебя весь файл правил в смайликах?
|
|||
90
DenYuliya
29.11.17
✎
18:26
|
Нет, я ставлю мышь в первую строку, нажимаю ALT + 2, на этом месте высвечивается смайлик. В файле с данными то же самое.
|
|||
91
DenYuliya
29.11.17
✎
18:35
|
(88) загрузила правилами, которые пару дней назад без проблем работали - та же ошибка. Странно...
|
|||
92
Franchiser
гуру
29.11.17
✎
18:41
|
(90)все верно, копируй смайлик, потом ищи через Ctrl+f где он ест ещё.
|
|||
93
DenYuliya
29.11.17
✎
18:50
|
Кстати, насчет (52)
Сейчас в процессах памяти для 1С 77 56,2 кб. Это я ТИИ запустила сдуру еще утром... |
|||
94
Franchiser
гуру
29.11.17
✎
18:55
|
Память имеет смысл смотреть когда выгружаешь данные в xml
|
|||
95
DenYuliya
30.11.17
✎
09:54
|
(90) смайликов больше не нашла, зато помогло "Тестирование и исправление", и правда запись в Источнике некорректная была.
|
|||
96
DenYuliya
30.11.17
✎
10:51
|
(94) дошел до 3,79 Гб и отвалился ((
|
|||
97
DenYuliya
30.11.17
✎
11:48
|
Попытка отфильтровать по папке контрагента, похоже, оказалась провальной.
Выгружается как попало, полагаю из-за того, что в ТиС эта странная схема "Контрагенты- Стронние юр.лица", и написать ограничения только в ПВД "Контрагенты-Партнеры" недостаточно. Подозреваю, что надо делать какую-то связь между остальными связанными правилами (Физ.лица, Сторонние юр.лица, КонтрагентыВпартнера и т.д). Вопрос: возможно ли как-то наложить ограничения на весь процесс выгрузки? Некий "общий модуль". Если я наложу фильтры только на 1 ПВД - результат выходит некорректный. |
|||
98
Franchiser
гуру
30.11.17
✎
15:56
|
Ты выружаешь целиком справочники? Или остатки?
|
|||
99
Franchiser
гуру
30.11.17
✎
15:58
|
(96) у тебя большая утечка памяти, нужно разбираться в причинах. Может быть какое то зацикливание
|
|||
100
vicof
30.11.17
✎
16:01
|
(100) Сотка
|
|||
101
DenYuliya
30.11.17
✎
17:07
|
(98) справочник Контрагенты и связанные с ним (ФизЛица, Собственные ЮрЛица, Сторонние ЮрЛица). Даже без Номенклатуры.
Попробовала выгрузить совсем типовыми, из комплекта поставки. Доходит до 4 ГБ (3,9) и вываливается. Там и так зацикливанию не откуда взяться, а уж в Типовыт тем более вряд ли. Меня смущает, это то, что при запуске "проверки корректности данных" валится куча ошибок - например, собств юр.лица без сопоставленных контрагентов, некорректные ИНН и ОГРН, и т.д. Это ведь вряд ли влияет глобально? потому что данную проверку можно проигнорить. |
|||
102
Franchiser
гуру
30.11.17
✎
17:21
|
Для начала посчитай сколько у тебя элементов в каждом справочнике, может имеет смысл перенести всё на верхний уровень - убрать иерархию. Потом переносить каждый справочник отдельно порциями например по диапазону кодов. Справочник контрагенты у тебя будет переноситься по ссылкам при переносе других справочников, поэтому нужно подумать а нужно ли его отдельно переносить.
|
|||
103
DenYuliya
30.11.17
✎
17:39
|
(102) разве не другие справочники переносятся по ссылкам из "Контрагенты"?
"Потом переносить каждый справочник отдельно порциями например по диапазону кодов" - я не знаю (очень хочу, но не могу понять от слова совсем, и где посмотреть на примере - найти не могу), как это сделать. А то давно бы уже сделала. Как альтернативу, думаю такой вариант: в каждом ПКО и ПВД поставить условие: Если Источник.ПометкаУдаления = 1; Тогда Отказ = 1; КонецЕсли; И поиграться с галкой "не запоминать выгруженные объекты" в ПКО. Потом по очереди ставить/снимать пометку удаления с групп Контрагентов в Источнике, и выгружать их. Но не уверена, что идея будет работать. |
|||
104
DenYuliya
30.11.17
✎
17:59
|
(102)
в спр. Контрагенты 45 000 объектов в спр. Стор Ю.Л 45 000 объектов в спр. Физ Лица 4 600 объектов |
|||
105
Franchiser
гуру
01.12.17
✎
00:06
|
(103) добавляешь на форму обработки выгрузки 2 числовых реквизита: КодС и КодПо.
Далее анализирушь код конкретного справочника в ПКО в обработчике ПередВыгрузкой. При необходимости строковый код приводишь к числовому. Если код не входит в диапазон пишешь Отказ =1. |
|||
106
Franchiser
гуру
01.12.17
✎
00:08
|
(104) вообще объектов не так много, очень странно что не выгружается.
|
|||
107
Franchiser
гуру
01.12.17
✎
00:11
|
Если в контрагентах стоит ссылка на сторонние юл, то конечно выгружай контрагентов по диапазону кодов, юл перенесется по ссылкам
|
|||
108
Franchiser
гуру
01.12.17
✎
00:12
|
Физ лица вообще не понятно как связаны с контрагентами, и можно перенести отдельно
|
|||
109
DenYuliya
01.12.17
✎
00:14
|
Ребят, ну подскажите пожалуйста пример, как делать этот чертов отбор по количеству выгружаемых элементов?
Я правда честно-честно не знаю, куда копать :(. Создала параметры КолВоВыгружаемыхЭлементовНачало и КолВоВыгружаемыхЭлементовНачалоКонец, тип Число, с пометкой "редактировать в диалоге". Потом надо создать алгоритм, запихнуть в него эти параметры... Что-то из серии СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); СпрКонтр.ВыбратьЭлементы(0); Пока СпрКонтр.ПолучитьЭлемент() >= КолВоВыгружаемыхЭлементовНачало И < КолВоВыгружаемыхЭлементовКонец Цикл ///Что то тут надо делать Если СпрКонтр.ПолучитьЭлемент()= КолВоВыгружаемыхЭлементовКонец Тогда Прервать; КонецЕсли: КонецЦикла; Но это ерунда и неправильно, конечнно((. Может есть типовой пример, или статья какая-нибудь, где описывается, как это сделать? |
|||
110
Franchiser
гуру
01.12.17
✎
00:14
|
Проверь ещё что в справочнике контрагентов нет косяков: например есть ссылка самого на себя, может быть есть группы у которых родителями являются они же.
|
|||
111
DenYuliya
01.12.17
✎
00:15
|
(103) не увидела ваши сообщения. Сейчас, прочитаю...
|
|||
112
DenYuliya
01.12.17
✎
00:17
|
(110) оке, завтра проверю. У меня удаленки нет, к сожалению.
(107) да, стоит. Но я в отборах (на форме обработки) выбирала только Контрагенты_Партнеры - та же ошибка. ФЛ и СвоиЮрЛица нормально выгружаются. Но там по 5 000 - 8 000 объектов, а не по 45 000 |
|||
113
Franchiser
гуру
01.12.17
✎
00:18
|
В ПКО контрагенты в ПередВыгрузкой:
Если (Число(Источник.Код)) < кодС или (число(источник.код)>КодПо) Тогда Отказ =1; КонецЕсли; |
|||
114
Franchiser
гуру
01.12.17
✎
00:20
|
Можно делать не по коду а по первой букве наименование контрагента, все аналогично
|
|||
115
DenYuliya
01.12.17
✎
00:20
|
(107) - вот в этом и весь затык. Я не понимаю, как реализовать вот это самое "выгружай контрагентов по диапазону кодов".
В (109) примерно как я это себе представляю. Но...И в типовых правилах ТиС -УТ все Алгоритмы пересмотрела, нигде примера выгрузки по счетчику нет. |
|||
116
DenYuliya
01.12.17
✎
00:22
|
(114) вы даже не представляете, какое огроменное спасибо за пример! Попробую так, хоть "вектор мысли" есть теперь
|
|||
117
Franchiser
гуру
01.12.17
✎
00:27
|
Если (лев(нрег(источник.наименование,1)) <"а") или (лев(нрег(источник.наименование,1)) >"ж") тогда
Отказ=1: КонецЕсли; |
|||
118
Franchiser
гуру
01.12.17
✎
00:31
|
И ещё нужно создавать не параметры КД, а кинуть на форму 7-ной обработки 2 реквизита типа число и их идентификаторы использовать в коде. Добавленные параметры удали.
|
|||
119
DenYuliya
01.12.17
✎
12:27
|
Я тут данные проверить пытаюсь, тоже склоняюсь к тому, что где-то в данных ошибка.
Никто случайно не в курсе, если игнорировать проверку в типовом механизме перехода (например, чтобы на одного ЮЛ не ссылалось несколько контрагентов, и чтобы все ЮЛ были привязаны к контрагентам; заполненность ОГРН, ИНН и т.д) - это может вызвать проблемы с выгрузкой, или это только к некорректной инфе в новой базе может привести? |
|||
120
DenYuliya
01.12.17
✎
12:30
|
Дублей всяко-разных с одинаковыми ИНН + КПП + Наименованиями фигова гора....
Удалить - не дают. |
|||
121
Йохохо
01.12.17
✎
12:33
|
(120) галка "загружать данные в режиме ОбменДанными.Загрузка = Истина"
|
|||
122
Franchiser
гуру
01.12.17
✎
12:36
|
ты можешь вывести в сообщить или во внешний лог инфу что выгружается? посмотри что выгружалось последнее когда отваливалась база. М.б. там все время зацикливание идет на 1-м элементе.
|
|||
123
Franchiser
гуру
01.12.17
✎
12:38
|
не можеть быть что 4 гб оперативки не достаточно для выгрузки 45000 контрагентов!
|
|||
124
Йохохо
01.12.17
✎
12:40
|
(122) галка "комментировать выгрузку объектов" )
|
|||
125
DenYuliya
01.12.17
✎
12:41
|
(121) И тогда всё это г...этот мусор без проверок перенесется? Как вариант, да.
Где-то я эту проверку даже встречала. Хотя не нравится мне это, эска криком кричит "поправьте данные"... |
|||
126
DenYuliya
01.12.17
✎
12:42
|
(124) она у меня стоит. Но что-то я в ней смотрела только на выделенное красным, а не на строку, когда обрубается.
|
|||
127
Franchiser
гуру
01.12.17
✎
13:20
|
(124) там слишком много информации выводится. ну можно и с ней
|
|||
128
Franchiser
гуру
01.12.17
✎
13:25
|
(126) нужно знать какие последние 20-30 объектов выгружаются
|
|||
129
DenYuliya
01.12.17
✎
13:32
|
Обмен падает на первом же контрагенте. Либо сообщения не выдаются корректно, что вряд ли (ровно те же обработки - типовая и моя переписанная, на моей тестовой базе с теми же МД, но другими данными, нормально отрабатывают и выгружают)
|
|||
130
DenYuliya
01.12.17
✎
13:37
|
http://dropmefiles.com/ZGD6Q
Посмотрела - ничего в этом объекте такого страшного нет, либо я не понимаю, куда смотреть. Идет счетчик строк запроса, а счетчик контрагентов - не меняется. Память доходит до 3,98 Гб и падает. |
|||
131
Ёпрст
гуру
01.12.17
✎
14:00
|
(130) а чего ты не пользуешься универсальноый выгрузкой в xml ?!
|
|||
132
Ёпрст
гуру
01.12.17
✎
14:01
|
там и фильтры есть и параметры. и галки по отдельным пвд
|
|||
133
DenYuliya
01.12.17
✎
14:09
|
(132) я им до сих пор пользовалась, эффект тот же. Потом решила проверить - вдруг стандартной обработкой выгрузится. Неа, та же ерунда.Кстати, в ней тоже по ПВД есть отборы, если использовать режим "Расширенный", а не "Стандартный".
Того контрагента, на котором все зависало, переименовала, чтобы он "уполз" в другое место списка. Теперь зависает на другом, но так же первом в списке. |
|||
134
Franchiser
гуру
01.12.17
✎
14:37
|
Может быть у тебя очень большой результат запроса который складывается в dbf. Проверь в темповой папке какой размер файла в момент формирования выборки запроса.
|
|||
135
Franchiser
гуру
01.12.17
✎
14:38
|
Что у тебя за ПВД, почему не сделать стандартную выборку?
|
|||
136
Йохохо
01.12.17
✎
14:46
|
(133) словила бесконечный цикл , проверяй циклы по родитель, владелец, измерение рс
|
|||
137
DenYuliya
01.12.17
✎
14:57
|
(136) Как это проверять, в КД прописывать проверки, или отладчиком в базе при выгрузке смотреть?
Меня смущает то, что и типовые не отрабатывают на рабочей базе. Следовательно, дело не том, что мои дописки - криворукие. |
|||
138
DenYuliya
01.12.17
✎
15:05
|
(135) на скрине запущена обычная, типовая выгрузка (правила перехода) с ИТС. Для выгрузки указаны ПВД "Контрагенты" и "Сторонние юр.лица" + стоит галка "Независимо вести партнеров и контрагентов".
Почему типовые ПВД реализованы именно так, а не иначе - не знаю, не задавалась этим вопросом. Мои доработки касались в основном переноса добавленных в ТиС реквизитов Контрагентов, сам же типовой механизм в целом устраивает. Но в данный момент я тестирую хотя бы на типовых - по ним тоже не проходит выгрузка. В тестовой - норм и типовые, и мои дописанные. |
|||
139
Йохохо
01.12.17
✎
15:09
|
(137) проверить что при выгрузке второй раз у контрагента не будет стоять выгружать реквизиты объекта чтоли. Т.е. контрагент(контактная(контрагент - тут должен полететь только узел ссылки, без объектов реквизитов))
|
|||
140
DenYuliya
01.12.17
✎
15:24
|
Это типовая галка какая-то, или дописать? Там помнится есть "Не выгружать объекты свойст источника"
|
|||
141
Йохохо
01.12.17
✎
15:27
|
(140) она, если использовать одно ПКО надо ее как то взводить второй раз
|
|||
142
DenYuliya
01.12.17
✎
15:33
|
Туплю...если использовать одно ПКО - в каком случае? Не уверена, что правильно поняла идею.
Может ее просто сразу поставить на ПКО, и все? |
|||
143
DenYuliya
01.12.17
✎
15:39
|
(121)
8. Загружать данные в режиме обмена Позволяет отказать от излишних проверок на этапе загрузки данных. Так у меня этап выгрузки не работает...Чем мне поможет загрузка :(. Кстати, в обработке для 7.7 этой галки я не обнаружила. |
|||
144
Franchiser
гуру
01.12.17
✎
16:21
|
Приведи сюда код из ПВД выгрзки справочника Контрагенты
|
|||
145
Йохохо
01.12.17
✎
16:35
|
(142) первый раз ПКО Контрагенты вызывается из ПВД, например, второй раз при выгрузке контактной информации как владелец. Если выгружать реквизиты как объекты получим подвид рекурсии класса бесконечная обыкновенная
(143) все просто - сейчас не нужно, потом нужно |
|||
146
DenYuliya
01.12.17
✎
16:49
|
(144) Основное "Контрагенты_Партнеры"
//Денисенко Если Объект.ЭтоГруппа() = 1 Тогда Отказ = 1; КонецЕсли; Если Объект.ПометкаУдаления() = 1 Тогда Отказ = 1; КонецЕсли; // Если Параметры.НезависимоВестиПартнеровИКонтрагентов = 0 Тогда ОсновнойКонтрагентДляЮрлица = 0; СформироватьСоответствиеКонтрагентовИЮрЛиц(); НомерНайденнойСтроки = 0; СоответствиеКонтрагентыЮрЛицо = Параметры.СоответствиеКонтрагентыЮрЛицо; Если СоответствиеКонтрагентыЮрЛицо.НайтиЗначение(Объект.ЮрФизЛицо, НомерНайденнойСтроки, "ЮрФизЛицо") = 1 Тогда ОсновнойКонтрагентДляЮрлица = СоответствиеКонтрагентыЮрЛицо.ПолучитьЗначение(НомерНайденнойСтроки, "Контрагент"); КонецЕсли; Если ОсновнойКонтрагентДляЮрлица <> Объект.ТекущийЭлемент() Тогда Отказ = 1; КонецЕсли; КонецЕсли; Стандартная выборка. Еще есть много промежуточных ПВД, например "СторонниеЮрЛица_Контрагенты" |
|||
147
DenYuliya
01.12.17
✎
16:52
|
(145) В приведенном примере речь о вызове в рамках одного ПКО?
|
|||
148
DenYuliya
01.12.17
✎
16:53
|
(145) отключить выгрузку КИ и посмотреть, что будет?
|
|||
149
Franchiser
гуру
01.12.17
✎
17:16
|
(146) Это точно ПВД?
Если так, то процедура СформироватьСоответствиеКонтрагентовИЮрЛиц() у тебя выполняется в цикле. |
|||
150
Franchiser
гуру
01.12.17
✎
17:22
|
(145) контактная информация по должна выгружаться позже чем контрагенты, с учетом того что стоит галка запоминать выгруженные рекурсии быть не должно.
|
|||
151
DenYuliya
01.12.17
✎
17:25
|
(149) да, абсолютно точно ПВД.
мои доработки - только условие на пометку удаления, которые не работают. Остальное - типовее некуда. |
|||
152
DenYuliya
01.12.17
✎
17:27
|
А почему - в цикле, я там напрямую цикла не вижу.
Разве что в этой части "ПолучитьЗначение(НомерНайденнойСтроки, "Контрагент")";что-то не так может быть |
|||
153
Franchiser
гуру
01.12.17
✎
17:28
|
(151) да я тебе верю. Понавставляй сообщить в ПВД и в ПКО Контрагенты, или запусти замер производительности. Нужно опеределить за счет чего получается рекурсия.
|
|||
154
Franchiser
гуру
01.12.17
✎
17:29
|
(152) потому что когда идет стандартная выборка этот код выполняется столько раз сколько у тебя есть контрагентов
|
|||
155
DenYuliya
01.12.17
✎
17:31
|
(154) ну да, я примерно так и подумала. Меня смущает то, что по-идее согласно "политики партии" ТиС, если я верно понимаю, кол-во СторонннихЮрЛиц = кол-во Контрагентов, верно?
|
|||
156
Franchiser
гуру
01.12.17
✎
17:33
|
(155) я не знаю что у тебя в СформироватьСоответствиеКонтрагентовИЮрЛиц(). Может быть там проверяется параметр СоответствиеКонтрагентыЮрЛицо и если он только пустой, то в этом случае происходит запонения соответствия, иначе возврат.
|
|||
157
Franchiser
гуру
01.12.17
✎
17:35
|
К тебя рекурсия происходит на первом же элементе, так что по идее она сразу должна быть видна
|
|||
158
Franchiser
гуру
01.12.17
✎
17:36
|
Ищи причину в ПКО, в ПВД ничего особенного пока не вижу
|
|||
159
DenYuliya
01.12.17
✎
17:50
|
сли ТипЗначенияСтр(Источник) = "Строка" Тогда
Возврат 1; КонецЕсли; Если Источник.ЭтоГруппа() = 1 Тогда Возврат 1; КонецЕсли; Если Источник.ПометкаУдаления() = 1 Тогда Возврат 1; КонецЕсли; Если ТипЗначенияСтр(ВходящиеДанные) <> "СписокЗначений" Тогда ВходящиеДанные = СоздатьОбъект("СписокЗначений"); КонецЕсли; ВходящиеДанные.Установить("Клиент", 0); ВходящиеДанные.Установить("Поставщик", 0); ВходящиеДанные.Установить("ПрочиеОтношения", 0); Если Параметры.СтатистикаПоДоговорам_СортКонтрагент = -1 Тогда СформироватьСтатистикуПоДоговорам(); КонецЕсли; СтатистикаПоДоговорам = Параметры.СтатистикаПоДоговорам_СортКонтрагент; НомерНайденнойСтроки = 0; Если СтатистикаПоДоговорам.НайтиЗначение(Источник, НомерНайденнойСтроки, "Контрагент") = 1 Тогда Для НомерСтроки = НомерНайденнойСтроки По СтатистикаПоДоговорам.КоличествоСтрок() Цикл СтатистикаПоДоговорам.ПолучитьСтрокуПоНомеру(НомерСтроки); Если СтатистикаПоДоговорам.Контрагент <> Источник Тогда Прервать; КонецЕсли; Если (СтатистикаПоДоговорам.ХозяйственнаяОперация = "РеализацияКлиенту") ИЛИ (СтатистикаПоДоговорам.ХозяйственнаяОперация = "ПередачаНаКомиссию") Тогда ВходящиеДанные.Установить("Клиент", 1); ИначеЕсли (СтатистикаПоДоговорам.ХозяйственнаяОперация = "ЗакупкаУПоставщика") ИЛИ (СтатистикаПоДоговорам.ХозяйственнаяОперация = "ПриемНаКомиссию") Тогда ВходящиеДанные.Установить("Поставщик", 1); КонецЕсли; КонецЦикла; КонецЕсли; Если (ВходящиеДанные.Получить("Клиент") = 0) И (ВходящиеДанные.Получить("Поставщик") = 0) Тогда ВходящиеДанные.Установить("ПрочиеОтношения", 1); КонецЕсли; Это ПКО. Тоже наитиповейший (( |
|||
160
DenYuliya
01.12.17
✎
17:51
|
(153) счас попробую...
|
|||
161
Franchiser
гуру
01.12.17
✎
17:56
|
В контрагентах есть ссылка на ЮрЛица или другие объекты, где может стоять ссылка на контрагентов?
|
|||
162
DenYuliya
01.12.17
✎
18:24
|
В ПКС для ПКО "Контрагенты_Партнеры" вроде бы нету. Код непосредственно в ПКО посмотрю, идею поняла.
Но вообще ссылок на спр. Контрагенты в обмене целая куча. |
|||
163
Franchiser
гуру
01.12.17
✎
23:58
|
У тебя и ПВД и ПКО называется одинаково Контрагенты_Партнеры?
|
|||
164
DenYuliya
02.12.17
✎
16:35
|
(163) неа, по-разному.
|
|||
165
DenYuliya
04.12.17
✎
12:03
|
В общем, условно нашла, в чем дело.
Помогло (153) и (158), огромное спасибо! Ошибка оказалась в этой части ПКО "Контр_партнеры": (перед выгрузкой) Если Параметры.СтатистикаПоДоговорам_СортКонтрагент = -1 Тогда Сообщить("тыц договор"); СформироватьСтатистикуПоДоговорам(); КонецЕсли; Я не вникала глубоко, что это за параметр, он прописан жестко на вкладке Основная -"Перед выгрузкой данных" и потом где-то присваивается. Я просто поменяла Параметры.СтатистикаПоДоговорам_СортКонтрагент = -1; на Параметры.СтатистикаПоДоговорам_СортКонтрагент = 0; Понимаю, что это неправильно, но с таким костылем хотя бы идет выгрузка. правда с ошибкой, но на выгружаемых контр. вроде бы не влияет. Ошибка исполнения обработчика: ПКО_ПередВыгрузкой_Контрагенты_Партнеры - Значение не представляет агрегатный объект (НайтиЗначение) Попробую сейчас какой-нибудь костыль сделать, Типа "попытка-исключение", или проверять на что-нибудь... В общем, чтобы этот кусрк не ошибку выдавал, а просто не попадал в условие. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |