Как получить результат выбора справочника ? #291303


#0 by CyberNut
Такая проблемка: В документе есть поля, содержащие информацию о контрагенте ( наименование, контактное лицо, адрес и т.д.) Хочу чтобы при выборе одного из поля этого документа, вызывался "Справочник.Контрагенты" в котором можно было бы выбрать нужного контрагента и чтоб остальные поля заполнялись автоматически данными из выбранной записи справочника. Но не знаю как получить результат выбора, т.е. контекст той записи которую выбрал пользователь, чтоб заполнить все эти поля :( Подскажите пожалуйста как это реализовать..
#1 by ТелепатБот
#2 by Джинн
Если при выборе одного поля ему присвоена ссылка на элемент справочника, то остальные реквизиты рассчитывай по этому элементу.
#3 by CyberNut
Джинн, спасибо :) Чет совсем туплю :( Но часть проблемы все же осталась, теперь не получается заполнить то поля из которого был сделан выбор: Т.е. мне нужно чтоб поле ОтправительКонтактноеЛицо было заполнено правильно, а оно после присвоения ему  Спр.КонтактноеЛицо становится пустым, хотя в справочике это значения заполнено.
#4 by КонецЦикла
#5 by CyberNut
2КонецЦикла, в аналогичном состоянии :) испробовал ваш вариант... не попогло :(
#6 by ОбдолбанныйВася
ну и как? с утра полегче?
#7 by CyberNut
С утра конечно полегче, но как поле выбора заполнить я так и незнаю :(
#8 by Sedoy
тебе сюда надо добавить несколько строчек, позиционирующих твой Спр. Можно сделать это по любому имеющемуся к тебя реквизиту Контрагента или Наименованию. А без позиционирования ты получишь только пустые значения..
#9 by Zaval
Остальные реквизиты нормально выводятся? Тогда, походу, протупил в какой-то мелочи, проще внимательно переделать это поле сначала ... ЗЫ. А реквизит не периодический? Или отругалась бы?
#10 by CyberNut
Реквизиты не периодические, Справочник нормально отпозиционирован, в Отладчике смотрел все поля заполнены как положено, но после присвоения ОтправительКонтактноеЛицо = Спр.КонтактноеЛицо; ОтправительКонтактноеЛицо становится пустым, может потому что находимся в обработке ввода этого значения или какое-нить недопустимое преобразование типа от Справочника к Строке.
#11 by Дядя Васька
Чего это за бред?
#12 by Sedoy
после строчки "Спр = СоздатьОбъект("Справочник.Контрагенты");" "Спр" у тебя становится пустым объектом справочника "Контрагенты" с пустыми реквизитами...
#13 by Sedoy
+12 если ты это называешь "нормально отпозиционирован", тады я извиняюсь...
#14 by Sedoy
+13 а если у тебя "ОтправительКонтактноеЛицо" уже выбранный элемент справочника Контрагенты, тогда зачем "Спр = СоздатьОбъект("Справочник.Контрагенты");"
#15 by Дядя Васька
#16 by CyberNut
После этой строчки Спр = СоздатьОбъект("Справочник.Контрагенты"); конечно Спр становится пустым, но он позиционируется в этой строчке : Спр = ОтправительКонтактноеЛицо; Т.к. ОтправительКонтактноеЛицо это поле ввода с типом "Справочник.Контрагенты"
#17 by Zaval
Вместо = используй НайтиЭлемент. в СП!
#18 by Дядя Васька
А мне что-то telepat.dll подсказывает, что это поле ввода с типом "Справочник.Сотрудники" ))))
#19 by Sedoy
убери две строки: Спр = СоздатьОбъект("Справочник.Контрагенты"); и заработает (если других подобных перлов нет....
#20 by Sedoy
+19 а Спр естественно замени на "ОтправительКонтактноеЛицо"
#21 by Sedoy
может и так, а где ж у него тогда Контрагент выбирается. Может это "Контрагент" и есть
#22 by Дядя Васька
А ОтправительКонтактноеЛицо = Спр.КонтактноеЛицо; тогда как понимать?
#23 by Sedoy
рекурсия наверное..., наступает после второй бутылки...
#24 by Дядя Васька
+ Точнее так (для ТиС): а вообще смотри модуль формы списка для выбора в справочнике контрагенты, что там в ПриОткрытии и в ПриВыбореСтроки
#25 by CyberNut
Короче наверное просто нельзя присвоить полю с типом Справочник.Контрагенты значение строкового типа в обработчике ввода этого поля :( А можно как-нить обработать начало ввода в это поле ?
#26 by Sedoy
присвоить можно и это широко используется для обнуления элемента справочника...
#27 by Дядя Васька
+ Еще точнее так:
#28 by Дядя Васька
Просто делай как в , а в бред полный
#29 by Дядя Васька
+ Это сработает для ТиС, там в форме списка для выбора есть следующие строки:
#30 by Дядя Васька
Что у тебя в форме списка для выбора контрагента без понятия, подстраивайся под свое или сделай чтобы было так же..
#31 by CyberNut
В совсем не то что мне нужно, я же итак в обработчике после ввода поля ОтправительКонтактноеЛицо, т.е. ПриВыбореОтправительКонтактноеЛицо прописано в поле Формула у меня, а так как ты предлагаешь у меня второй раз будет открываться справочник для выбора
#32 by Дядя Васька
Пропиши не в формулу, а ПриНачалеВыбораЗначения а после того как все переприсвоишь СтатусВозврата;
#33 by Sedoy
ты можешь внятно сказать (проверив это в конфигурации), каким реквизитом у тебя выбирается в диалоге контрагент и какой тип имеет "ОтправительКонтактноеЛицо"     Без этого дальнейший разговор безсмысленен...
#34 by Дядя Васька
Если ОтправительКонтактноеЛицо у тебя правда "Справочник.Контрагенты" сработает так:
#35 by Дядя Васька
Только ведь странно это как-то, контактное лицо контрагент...
#36 by Дядя Васька
+ Спр.НайтиЭлемент(ОтправительКонтактноеЛицо.ТекущийЭлемент); = Спр.НайтиЭлемент(ОтправительКонтактноеЛицо.ТекущийЭлемент);
#37 by Дядя Васька
даже так а по можешь при выборе любого из полей выкинуть на выбор контрагента и все заполнить, одной и той же процедурой...
#38 by CyberNut
Взял убрал с формы и документа все эти реквизиты об отправителе, сделал один реквизит Отправитель, типа "Справочник.Контрагенты", пусть будет так..
#39 by Дядя Васька
Тяжелый случай...
#40 by CyberNut
Ну я поглядел в "Торговля и Склад" на всех документах так сделано, а то была у меня куча лишних реквизитов.. пс: и в 1С я всего третий день, так что много еще не знаю :)
#41 by Дядя Васька
Ну тады нормально...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С