![]() |
![]() |
Очкарик 21.09.2004 - 10:41 |
Доброго времени суток. Вопрос в следующем: Из справочника - владельца интерактивно открываю подчиненный.(форму списка) На форме есть кнопка с процедурой, для автоматического создания записей в этом подчиненном справочнике. Получаю: Не выбран элемент справочника-хозяина! Элемент не может быть записан! Не видит владельца... Замучился уже,... Процедура ЗагрузитьТовары() СпрЦены = СоздатьОбъект("Справочник.ПрайсКлиента"); Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(1); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ПометкаУдаления() = 1 Тогда Продолжить; КонецЕсли; Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; Если Спр.Снят_с_производства = 1 Тогда Продолжить; КонецЕсли; СпрЦены.Новый(); // СпрЦены.ИспользоватьВладельца(СпрЦены.Владелец); СпрЦены.Товар = Спр.ТекущийЭлемент(); СпрЦены.Валюта = Константа.БазоваяВалюта; СпрЦены.Цена = Спр.РозничнаяЦена.Получить(ТекущаяДата()); СпрЦены.Записать(); КонецЦикла; КонецПроцедуры Что не так? |
gnus 1 - 21.09.2004 - 10:45 |
похоже вот это: СпрЦены.Новый(); // СпрЦены.ИспользоватьВладельца(СпрЦены.Владелец); новый элемент создан и еще не записан, и владельца у него просто нет |
Добрый 2 - 21.09.2004 - 10:45 |
СпрЦены.ИспользоватьВладельца(СпрЦены.Владелец); а ужо потом СпрЦены.Новый(); |
Fram 3 - 21.09.2004 - 10:45 |
ошибка здесь: СпрЦены.ИспользоватьВладельца(СпрЦены.Владелец); как исправить попробуй догадайся сам |
MetaEditor 4 - 21.09.2004 - 10:47 | СпрЦены.ИспользоватьВладельца(ТекущийЭлемент().Владелец); |
Очкарик 5 - 21.09.2004 - 10:49 |
1, это да, собственно на форму кинул текст с формулой Владелец, пока итерактивно не создаш хоть одну запись, не работает. 2, не прокатывает..., таже фигня.. |
defender 6 - 21.09.2004 - 10:49 | чего мудрите СпрЦены.ИспользоватьВладельца(Спр.ТекущийЭлемент()); |
defender 7 - 21.09.2004 - 10:52 | упс... а кто чей владелец то? |
Очкарик 8 - 21.09.2004 - 10:52 |
4, не работает. 6, нужно подчинение спр.котрагентам. 3, перепробовал много комбинаций, пока результат = 0 :( |
defender 9 - 21.09.2004 - 10:55 | ну так делай тогда какой нить СпрЦены.ИспользоватьВладельца(ВыбранныйКонтрагент); |
Очкарик 10 - 21.09.2004 - 10:56 |
Я так понимаю, что основная проблема состоит в том, что бы получить владельца при открытой форме списка подчиненного справочника, еще до того, как первый элемент будет в ней создан. На заголовке формы этот клиент указан, а на самой форме его получить не удается. Только после того, как будет создан первый элемент в форме списка, на форме в тексте с формулой"Владелец" появляеттся соответствующий клиент. |
Очкарик 11 - 21.09.2004 - 10:58 | 9, да, вот его и надо узнать, этого "ВыбранныйКонтрагент"а. |
defender 12 - 21.09.2004 - 10:59 |
вообще вот так наверное надо... СпрЦены.Новый(); СпрЦены.Владелец=<Какой то Контрагент>; СпрЦены.Товар = Спр.ТекущийЭлемент(); СпрЦены.Валюта = Константа.БазоваяВалюта; СпрЦены.Цена = Спр.РозничнаяЦена.Получить(ТекущаяДата()); СпрЦены.Записать(); |
Муму после всплытия 13 - 21.09.2004 - 11:00 |
(10) ИспользоватьВладельца().................... |
ПРосто Гений 14 - 21.09.2004 - 11:04 | СпрЦены.ИспользоватьВладельца(Форма.Параметр); |
Очкарик 15 - 21.09.2004 - 11:05 |
12, как узнать этого клиента, если форма списка открыта из справочника-владельца? (при условии что в ней нет ни одной строки...) Придется через кнопку на владельце+Форма.Параметр? , хочется штатно... |
defender 16 - 21.09.2004 - 11:06 | (15) а что Форма.Параметр это уже не штатно? :-)) |
Очкарик 17 - 21.09.2004 - 11:10 |
16, когда открыты оба справочника (владелец и подчиненный) и оба видны на экране, то бегая во владельце по клиетам, попутно отображаются соответствующие наборы записей в подчиненном. А я так понимаю, чтоб в подчиненном использовать форма.параметр, надо на владельце создать кнопку, с программным открытием, и втюхованием в параметр параметров. |
Arey 18 - 21.09.2004 - 11:10 | Только через Форма.Параметр |
Муму после всплытия 19 - 21.09.2004 - 11:14 |
(17) повторяю, блин..................... в подчиненном справочнике ПриОткрыти() Сообщить(ИспользоватьВладельца()) |
Gloom 20 - 21.09.2004 - 11:14 |
Ну вы, блин даёте... Процедура ПриОткрытии() Сообщить("Владелец " + ИспользоватьВладельца()); КонецПроцедуры |
MetaEditor 21 - 21.09.2004 - 11:18 |
так, всем молчать, вот это работает, незнаю как у вас (форма списка банковских счетов, подч-ого фирмам) СпрФ=СоздатьОбъект("Справочник.Фирмы"); СпрФ.НайтиЭлемент(ТекущийЭлемент().Владелец); СпрСч=СоздатьОбъект("Справочник.БанковскиеСчета"); СпрСч.ИСпользоватьВладельца(СпрФ.ТекущийЭлемент()); СпрСч.Новый(); СпрСч.Наименование="Проба"; СпрСч.Записать(); |
Очкарик 22 - 21.09.2004 - 11:23 |
19, 20 , YESSS!!! Спасибо всем, вопрос снят. Не обязательно, в процедуре приОткрытии. Вот рабочия кусок: Процедура ЗагрузитьТовары() СпрЦены = СоздатьОбъект("Справочник.ПрайсКлиента"); Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(1); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ПометкаУдаления() = 1 Тогда Продолжить; КонецЕсли; Если Спр.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; Если Спр.Снят_с_производства = 1 Тогда Продолжить; КонецЕсли; Влад = ИспользоватьВладельца(); СпрЦены.ИспользоватьВладельца(Влад); СпрЦены.Новый(); СпрЦены.Товар = Спр.ТекущийЭлемент(); СпрЦены.Валюта = Константа.БазоваяВалюта; СпрЦены.Цена = Спр.РозничнаяЦена.Получить(ТекущаяДата()); СпрЦены.Записать(); КонецЦикла; КонецПроцедуры ________________________________________________________________________ Еще раз всем спасибо. Удачи... |