К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Помогите с К.Д. перенос Номенклатуры

Гость
0 - 11.11.2014 - 11:26
Здравствуйте. Имеются две БП 2.0 одинакового релиза. в обеих базах ведется учет и уже создана номенклатура. Вот скрин как выглядят справочники исходной (слева) и приемной (справа):
http://screenshot.ru/2e6148eff7046e2af01033a8b262c2f0
Нужно из источника номенклатуру перенести в приемник в определенную папку "ВХОДЯЩАЯ НОМЕНКЛАТУРА" с сохранением иерархии. Я попытался реализовать перенос по примеру из книги Бояркина.
Создал ПКО "Номенклатура":
http://screenshot.ru/c27db5bb9d902922428ec3c3a638eb41
Для ПКС "Родитель" прописал событие:
http://screenshot.ru/c677f0bfbe2c97192b13a5bc3307728f
Так же создал ПКО "ГруппаНоменклатуры" где прописал события: http://screenshot.ru/43f942a6dd9522e4823f9ec893af2940
Но после переноса получается вот что:
http://screenshot.ru/c85dddbec2dec55b76fdeeedd9b93feb
т.е. создается в корне нужная мне папка, Туда переносится моя папка "Товары КОНСТАНТА", но она же является папкой в приемнике Просто "Товары", т.е. папки "Товары", которая была в приемнике в корне не стало, она как бы заменилась моей папкой и все товары там перемешались.
А нужно сделать, чтобы иерархия в приемнике осталась как есть, а новая номенклатура добавилась со своей иерархией в папку "ВХОДЯЩАЯ НОМЕНКЛАТУРА".
Подскажите, что не так сделано?
спасибо



Гость
1 - 11.11.2014 - 12:04
картинки не понял. попробуй так сделай руками группу в приемнике с кодом "001", потом напиши после загрузки элемента. если родитель пустой то найти по коду 001.

и перенос по гуидам.

так как гуиды в базах не совпадают, то номенклатура создастся новая, а у номенклатуры верхнего уровня ты руками прставишь группу после загрузки.
Гость
2 - 11.11.2014 - 12:25
Достаточно указать, что Родитель сохраняется (переносится).
Гость
3 - 11.11.2014 - 15:33
(1) а можно подробнее? я так понял, нужно для ПКО "Номенклатура" установить флаг "искать объект по внутр. идентификатору" - этот флаг установлен.
затем в ПКО Номенклатура в событии "После загрузки" нужно прописать:
Если Объект.Родитель.Пустая() Тогда
как тут найти по коду?

(2) Родитель переносится, флаг поиска установлен.
Гость
4 - 11.11.2014 - 21:30
(3) как обычно ищут по коду?
Гость
5 - 12.11.2014 - 12:16
Разобрался. В ПКС "Номенклатура" в событии ПослеЗагрузки прописал:
Если Объект.Родитель.Пустая() Тогда
Объект.Родитель = Справочники.Номенклатура.НайтиПоНаименованию("ВХОД ЯЩАЯ НОМЕНКЛАТУРА");
КонецЕсли;
но тоже не работало. Оказалось: Папка в исходящей базе "Товары КОНСТАНТА" имеет такой же УИД как и в приемнике папка "Товары", т.к. эти папки создаются автоматически при первом запуске программы. Соответственно поиск осуществлялся по уникальному идентификатору и иерархия в приемнике слетала.
Пришлось в приемнике сначала создать новые папки и перебросить номенклатуру, а старые удалить. и все заработало.
Гость
6 - 12.11.2014 - 13:00
(5) не, уид должен был быть всё равно разный. скорее всего вы когда-то базу копированием создавали
Гость
7 - 12.11.2014 - 15:29
а вот это да ))) т.е. при установе завели одну базу чистую , потом расплодили и начали вести разные учеты )))


К списку вопросов






Copyright ©, Все права защищены