Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Помогите с К.Д. перенос Номенклатуры (http://forums.kuban.ru/f1040/pomogite_s_k_d_perenos_nomenklatury-6259749.html)

Antidot 11.11.2014 11:26

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

angro 11.11.2014 12:04

картинки не понял. попробуй так сделай руками группу в приемнике с кодом "001", потом напиши после загрузки элемента. если родитель пустой то найти по коду 001.

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

так как гуиды в базах не совпадают, то номенклатура создастся новая, а у номенклатуры верхнего уровня ты руками прставишь группу после загрузки.

VZ 11.11.2014 12:25

Достаточно указать, что Родитель сохраняется (переносится).

Antidot 11.11.2014 15:33

(1) а можно подробнее? я так понял, нужно для ПКО "Номенклатура" установить флаг "искать объект по внутр. идентификатору" - этот флаг установлен.
затем в ПКО Номенклатура в событии "После загрузки" нужно прописать:
Если Объект.Родитель.Пустая() Тогда
как тут найти по коду?

(2) Родитель переносится, флаг поиска установлен.

angro 11.11.2014 21:30

(3) как обычно ищут по коду?

Antidot 12.11.2014 12:16

Разобрался. В ПКС "Номенклатура" в событии ПослеЗагрузки прописал:
Если Объект.Родитель.Пустая() Тогда
Объект.Родитель = Справочники.Номенклатура.НайтиПоНаименованию("ВХОДЯЩАЯ НОМЕНКЛАТУРА");
КонецЕсли;
но тоже не работало. Оказалось: Папка в исходящей базе "Товары КОНСТАНТА" имеет такой же УИД как и в приемнике папка "Товары", т.к. эти папки создаются автоматически при первом запуске программы. Соответственно поиск осуществлялся по уникальному идентификатору и иерархия в приемнике слетала.
Пришлось в приемнике сначала создать новые папки и перебросить номенклатуру, а старые удалить. и все заработало.

angro 12.11.2014 13:00

(5) не, уид должен был быть всё равно разный. скорее всего вы когда-то базу копированием создавали

Antidot 12.11.2014 15:29

а вот это да ))) т.е. при установе завели одну базу чистую , потом расплодили и начали вести разные учеты )))


Текущее время: 19:56. Часовой пояс GMT +3.