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
| а вот это да ))) т.е. при установе завели одну базу чистую , потом расплодили и начали вести разные учеты ))) | |
| Интернет-форум Краснодарского края и Краснодара |