Имя: Пароль:
1C
1С v8
Конвертация - снова про порядок загрузки
,
0 Maximysis
 
20.05.17
04:00
Всем доброго времени суток,
наступил на те же грабли, что и v8: Простой вопрос КД Порядок выполнения, один в один.
Требуется проставить счета учета номенклатуры в ТЧ "Товары" документа "ПоступлениеТоваров", проблема с новой номенклатурой.
В обработчике "После загрузки" документа "ПоступлениеТоваров" перед циклом по ТЧ Товары прописано ПровестиЗаписьНезаписанныхОбъектов().
Номенклатура записывается, но ее реквизиты еще не заполнены! Заполнен только Код, определенный как поле поиска в правилах. А для правильного определения счета учета требуется еще Родитель, как минимум.
ок, в ПКО Номенклатуры поставил галку "Поиск" на Родителе и проблему закрыл, но остался очень неприятный осадок - вполне возможно, потребуется и другие реквизиты иметь заполненными.
И в ПВД, и в ПКО справочники вообще и Номенклатура в частности стоят выше документов в дереве и имеют меньший порядковый номер. Нифига это не работает, для проверки воткнул Сообщить(Объект.Метаданные().Имя) в глобальный обработчик "После загрузки", выдает следующий порядок:
ЕдиницыИзмерения
ПоступлениеТоваров
ЕдиницыИзмерения
ЕдиницыИзмерения
Номенклатура

Полностью все реквизиты новой номенклатуры заполняются только перед вторым (условно назову его системным) вызовом записи объектов.
В чем грабли-фишки? Как победить?
1 Mikhail Volkov
 
20.05.17
19:14
В каком порядке выгрузится, в том порядке и загрузится. При обмене некогда справочники и прочие не выгружаю, только документы. При выгрузке документа сперва выгружается то, на что есть ссылки в документе, после сам документ. Как такой вопрос мог возникнуть?
2 Maximysis
 
21.05.17
14:12
"Как такой вопрос мог возникнуть?"
О темпора, о морес! (Катон (предп.))
-- "Она схватила  ему за руку и неоднократно спросила: где
ты девал папку?" (А. и Б. Стругацкие, "Град обреченный")
Не обижайтесь, Михаил, фраза слишком уж пафосно звучит, ответная шутка на языке так и вертится..
Не знаю, как, сообщения о загружаемых объектах перед Вами.

Забыл уточнить, что это онлайн-обмен по плану обмена.
Вот еще накопал: http://forum.infostart.ru/forum76/topic65572/
та же проблема.
По совету в одном из комментов там же воткнул в ПКО номенклатуры "Перед выгрузкой" - ТолькоПолучитьУзелСсылки = Ложь;
Действительно, сработало. Единственное - приводит к многократной загрузке номенклатуры и, как следствие, к увеличению времени работы обмена, теперь загрузка выглядит так (одна новая номенклатура, один документ с ней же):
Загружен Номенклатура
Загружен Номенклатура
Загружен Номенклатура
Загружен ЕдиницыИзмерения
Загружен ЕдиницыИзмерения
Загружен ЕдиницыИзмерения
Загружен Номенклатура
Загружен ЕдиницыИзмерения
Загружен ПоступлениеТоваровУслуг
3 milan
 
21.05.17
14:18
Может выгрузить номенклатуру принудительно, вообще должно выгружаться в порядке ПВД.
4 Maximysis
 
21.05.17
14:23
Также интересно, что ПровестиЗаписьНезаписанныхОбъектов() больше не требуется, и так работает. х.з....
5 Shrek_yar
 
21.05.17
17:21
(4)при он лайн обмене все само проводиться,если документ выгружен с признаком проведен. В вот насчет порядка - у меня тоже как то странно работает.
Если использовать ТолькоПолучитьУзелСсылки = Ложь; и хранить в параметре уже обработанную номенклатуру, чтобы не было повторов.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший