Помогите с К.Д. перенос Номенклатуры Здравствуйте. Имеются две БП 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] т.е. создается в корне нужная мне папка, Туда переносится моя папка "Товары КОНСТАНТА", но она же является папкой в приемнике Просто "Товары", т.е. папки "Товары", которая была в приемнике в корне не стало, она как бы заменилась моей папкой и все товары там перемешались. А нужно сделать, чтобы иерархия в приемнике осталась как есть, а новая номенклатура добавилась со своей иерархией в папку "ВХОДЯЩАЯ НОМЕНКЛАТУРА". Подскажите, что не так сделано? спасибо |
картинки не понял. попробуй так сделай руками группу в приемнике с кодом "001", потом напиши после загрузки элемента. если родитель пустой то найти по коду 001. и перенос по гуидам. так как гуиды в базах не совпадают, то номенклатура создастся новая, а у номенклатуры верхнего уровня ты руками прставишь группу после загрузки. |
Достаточно указать, что Родитель сохраняется (переносится). |
(1) а можно подробнее? я так понял, нужно для ПКО "Номенклатура" установить флаг "искать объект по внутр. идентификатору" - этот флаг установлен. затем в ПКО Номенклатура в событии "После загрузки" нужно прописать: Если Объект.Родитель.Пустая() Тогда как тут найти по коду? (2) Родитель переносится, флаг поиска установлен. |
(3) как обычно ищут по коду? |
Разобрался. В ПКС "Номенклатура" в событии ПослеЗагрузки прописал: Если Объект.Родитель.Пустая() Тогда Объект.Родитель = Справочники.Номенклатура.НайтиПоНаименованию("ВХОДЯЩАЯ НОМЕНКЛАТУРА"); КонецЕсли; но тоже не работало. Оказалось: Папка в исходящей базе "Товары КОНСТАНТА" имеет такой же УИД как и в приемнике папка "Товары", т.к. эти папки создаются автоматически при первом запуске программы. Соответственно поиск осуществлялся по уникальному идентификатору и иерархия в приемнике слетала. Пришлось в приемнике сначала создать новые папки и перебросить номенклатуру, а старые удалить. и все заработало. |
(5) не, уид должен был быть всё равно разный. скорее всего вы когда-то базу копированием создавали |
а вот это да ))) т.е. при установе завели одну базу чистую , потом расплодили и начали вести разные учеты ))) |
Текущее время: 19:56. Часовой пояс GMT +3. |