0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
1 | |
Вопрос: О копировании элемента справочника22.08.2008, 21:05. Показов 50282. Ответов 22
Метки нет (Все метки)
Есть необходимость, чтобы при копировании элемента справочника "Номенклатура" (конфа ТиС), копировались свойства товара.
На закладке "свойства" есть таблица значений "СписокСвойств". Собственно сам вопрос: как получить таблицу значений "СписокСвойств" из элемента, с которого был скопирован новый элемент?
0
|
22.08.2008, 21:05 | |
Ответы с готовыми решениями:
22
При копировании элемента справочника Обновление ссылки на документ в реквизите справочника и заполнение реквизитов элемента справочника по новой ссылке Запись элемента справочника из модуля объекта другого справочника Вопрос по форме справочника |
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
|
|
24.08.2008, 05:35 | 2 |
Надо смотреть справочник СвойстваНоменклатуры
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 08:55 | 3 |
это понятно. в таблице значений хранятся ссылки на справочник "свойства номеклатура", вот вся проблема получить эти ссылки
0
|
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
|
|
24.08.2008, 09:07 | 4 |
Спр1 - элемент с которого копируем
Спр2 - в который СпрСН1 - свойства ном СпрСН2 СпрСН1.ИспользоватьВладельца(Спр1); СпрСН2.ИспользоватьВладельца(Спр2); СпрСН1.ВыбратьЭлементы(); Пока СпрСН1.ПолучитьЭлемент()=1 Цикл СпрСН2.Новый(); СпрСН2.ВидСвойства = СпрСН1.ВидСвойства; СпрСН2.ЗначениеСвойства = СпрСН1.ЗначениеСвойства; СпрСН2.Записать(); КонецЦикла;
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 09:10 | 5 |
с этим тоже более или менее понятно. спасибо. но мне нужно чтобы свойства копировались автоматически при обычном копировании элемента справочника номенклатура
0
|
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
|
|
24.08.2008, 09:34 | 6 |
ВводНового(ПризнакКоприрования,ОбъектКопирования)
и прописывай
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 09:36 | 7 |
понял, спасибо. все было так просто, а я заптормозился на поиске элемента, с которого происходило копирование
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 12:49 | 8 |
Не все так гладко.
Код
Процедура ВводНового(Признак,Родитель) Если Признак=1 Тогда СпрРодитель=СоздатьОбъект("Справочник.СвойстваНоменклатуры"); СпрКопирование=СоздатьОбъект("Справочник.СвойстваНоменклатуры"); СпрРодитель.ИспользоватьВладельца(Родитель); СпрКопирование.ИспользоватьВладельца(ТекущийЭлемент()); СпрРодитель.ВыбратьЭлементы(); Пока СпрРодитель.ПолучитьЭлемент()=1 Цикл СпрКопирование.Новый(); СпрКопирование.ВидСвойства=СпрРодитель.ВидСвойства; СпрКопирование.ЗначениеСвойства=СпрРодитель.ЗначениеСвойства; СпрКопирование.Записать(); КонецЦикла; КонецЕсли; Конец Процедуры
0
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
24.08.2008, 12:59 | 9 |
Попробуй
СпрКопирование.Владелец = ТекущийЭлемент(); написать после СпрКопирование.Новый();
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 13:02 | 10 |
Сообщение от Hryv
чуть ниже в цикле есть СпрКопирование.Новый(); проблема в том, что ТекущийЭлемент() возвращает пустое значение
0
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
24.08.2008, 13:19 | 11 |
Можно его предварительно записать, но тут возникает туча нюансов
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 13:21 | 12 |
Сообщение от Hryv
0
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
24.08.2008, 13:31 | 13 |
А таблица значений на форме заполняется непосредственно элементами подчиненного справочника?
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 13:54 | 14 |
Сообщение от Hryv
Все проблема решена Вот решение Код
Перем Родит Процедура ВводНового(Признак,Родитель) Если Признак=1 Тогда Родит=Родитель; КонецЕсли; КонецПроцедуры Процедура ПриЗакрытии() Если ПустоеЗначение(Родит)=0 Тогда СпрЭлемент=СоздатьОбъект("Справочник.Номенклатура"); СпрЭлемент=ТекущийЭлемент(); СпрРодитель=СоздатьОбъект("Справочник.СвойстваНоменклатуры"); СпрКопирование=СоздатьОбъект("Справочник.СвойстваНоменклатуры"); СпрРодитель.ИспользоватьВладельца(Родит); СпрКопирование.ИспользоватьВладельца(СпрЭлемент); СпрРодитель.ВыбратьЭлементы(); Пока СпрРодитель.ПолучитьЭлемент()=1 Цикл СпрКопирование.Новый(); СпрКопирование.ВидСвойства=СпрРодитель.ВидСвойства; СпрКопирование.ЗначениеСвойства=СпрРодитель.ЗначениеСвойства; СпрКопирование.Записать(); КонецЦикла; КонецЕсли; КонецПроцедуры Один нюанс, свойства записываются при первом закрытии скопированного элемента
0
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
24.08.2008, 15:06 | 15 |
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 15:08 | 16 |
Сообщение от Hryv
А при провторном открытии теряется связь с элементом, с которого копировали.
0
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
24.08.2008, 15:16 | 17 |
Понял, фишка в том, что ПриЗакрытии() вызывается после ПриЗаписи() и запись остается на совести юзера
0
|
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
|
|
24.08.2008, 15:35 | 18 |
так если юзер не запишет новый элемент, то он не сохранится вообще. так что защита от дураков включена
еще вопрос. пытаюсь таким же образом скопировать список цен, и мне выдает следующее Код
СпрРодительЦена=СоздатьОбъект("Справочник.Цены"); СпрКопированиеЦена=СоздатьОбъект("Справочник.Цены"); СпрРодительЦена.ИспользоватьДату(РабочаяДата()); СпрРодительЦена.ИспользоватьВладельца(Родит); СпрКопированиеЦена=ИспользоватьВладельца(ТекущийЭлемент()); СпрРодительЦена.ВыбратьЭлементы(); Пока СпрРодительЦена.ПолучитьЭлемент()=1 Цикл СпрКопированиеЦена.Новый(); СпрКопированиеЦена.Наименование=СпрРодительЦена.Наименование; СпрКопированиеЦена.Записать(); КонецЦикла;
0
|
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
|
|
24.08.2008, 15:39 | 19 |
НовыйЭлемент() ?
Мда -что от не то...
0
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
24.08.2008, 15:40 | 20 |
0
|
24.08.2008, 15:40 | |
24.08.2008, 15:40 | |
Помогаю со студенческими работами здесь
20
Запись элемента справочника 7.7 Изменение Элемента Справочника КА 8,Не уникальный порядок элемента справочника Запись элемента справочника в MySQL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |