v7: НазначитьТип для реквизита в таб. части документа #607415


#0 by Zhuravlik
Здравствуйте. Пишу документ "ВводОстатков", - в виде тренировки. На форме - выпадающий список, с значениями - идентификаторами всех регистров в системе. Его я получаю так: В самом документа - два реквизита (измерения регистра), предполагаю что их везде два. ОсновноеИзмерение - в диалоге формы (например для мест хранения - склад), ДополнительноеИзмерение - в таб. части (напр. номенклатура). Оба реквизита - неопределенного типа. Суть задачи: при выборе вида регистра из списка им назначается соотв. тип и вид. Пробовал делать так: Но почему-то при выборе регистра из списка тип назначается только диалоговому реквизиту. Я подумал, что для таб. части надо назначать тип при вводе новой строки, прописал в процедуру ПриВводеСтроки - но все-равно не получается. Как это сделать? Конфа - тестовая, четыре вида регистра, измерения по номерам совпадают, Сообщить(тип + "." +вид) - все как надо возвращается...
#1 by zak555
#2 by Zhuravlik
Хочу понять, это все для себя делается.
#3 by Zhuravlik
Я смотрел в типовой конфе, в тисе, но там не нашел такого. А где-то было, при вводе строки спрашивается вид номенклатуры, и назначается вид справочника... Пробовал назначать ДополнительномуРеквизиту тип - справочник, и НазначитьВид - тоже не прокатывает. Уже моск себе проел...
#4 by andrewks
#5 by Zhuravlik
Класс) Спасибо, сейчас буду копать.
#6 by Torquader
Только нужно не забывать, что тип нужно выбирать для каждой строки отдельно.
#7 by Zhuravlik
Интересный документ, но на свой вопрос не могу найти ответа...
#8 by Torquader
Перехватывай ПриВыбореЗначения с идентификатором твоего реквизита - тогда можно одновременно выбрать и тип и значение.
#9 by Zhuravlik
У Вас заполняется таблицаЗначений, а при записи просто переносится в табличную часть? А именно в табличной части если реквизит неопределенного вида, его нельзя определять? Тогда почему есть возможность назначать неопределнный в тч? Именно ПриВыборе? Я пробовал так делать приНачалеВыбораЗначения, привыборе - надо ведь сначала выбрать... А как выбирать, если тип неопределен? Сейчас попробую конечно...
#10 by Torquader
Если стандартно, то система предлагает выбрать сначала тип - потом значение. Если внучную, то отключаешь стандартный выбор и выбираешь списком, что хочешь - причём - можно даже все типы и значения в одном списке собрать.
#11 by andrewks
"У Вас заполняется таблицаЗначений, а при записи просто переносится в табличную часть?" да "А именно в табличной части если реквизит неопределенного вида, его нельзя определять?"  можно
#12 by Zhuravlik
А нельзя назначить программно и тип и вид, чтобы пользователь уже выбирал сразу непосредственно значение? Вот, изменил для ДополнительныйРеквизит тип с неопределенного на справочник. Прописал: При вводе новой строки выскакивает список с типами справочников для выбора. Т.е. не але( Если назначаю неопределенный, и делаю то же самое, то вообще ничего не вцыбирается. а как?) Я это и хочу узнать...
#13 by Zhuravlik
не то же самое а НазначитьТип
#14 by andrewks
ты забываешь изменять ФСО
#15 by Torquader
Так он и не должен его менять - он назначает тип, и система сама обрабатывает ввод значения - ему сам ввод отключать не надо.
#16 by Zhuravlik
Если его отключать, то надо писать свой подбор, а не стандартно как это происходит при выборе... Но что с отключенный, что с включенным ФСО вот это //====================================================================== Сообщает нужный вид справочника, а все равно при выборе выходит список.
#17 by andrewks
НазначитьВид не предназначен для типа Неопределенный. только НазначитьТип
#18 by Zhuravlik
+ это если доп.реквизит - не неопределнный, а справочник.
#19 by Zhuravlik
ну да, я просто и так и так пробую.
#20 by Torquader
НазначитьТип(ИмяРеквизита,"Регистр."+ИдентификаторРегистра)
#21 by Zhuravlik
Процедура ПриНАчалеВыбора не работает, если реквизит - неопределенный, у реквизита просто нет "педальки" для выбора. У меня реквизит заранее известно, что справочник. Это не регистр ни разу...
#22 by Zhuravlik
+ получается, что надо обходиться предопределенными ПриВводеСтроки, ПриНачалеРедактирования - но это ничего не дает...
#23 by Torquader
Тогда какого хрена ты пишешь: Пиши, что справочник и указывай вид справочника, если это нужно.
#24 by Torquader
Так можно и ПриНачалеРедактированияСтроки - получить момент, когда у нас вводится наше поле Через АктивныйЭлемент и дальше обработать ввод. Если же нужно установить какой-то справочник заранее, то ПриВводеНовойСтроки выставляем Тип и оставляем автовыбор.
#25 by Zhuravlik
ну - Метаданные.Регистр(текРегистр).*ИЗМЕРЕНИЕ*.Вид - вид измерения регистра. Они все - справочник) Суть задачи, как  определить этот тип для реквизита табличной части, если он неопределен. Просто я потом уже начал пробовать с указанием типа Справочник, но так тоже не выходит.
#26 by Torquader
"Справочник."+Метаданные.Регистр(текРегистр).Измерение.Вид - не помогает ?
#27 by Zhuravlik
я пробовал, ничего не выходит. Если вид реквизита - справочник: Процедура ПриВводеСтроки При выборе выпадает список всех справочников. Если вид реквизита - неопределнный: //====================================================================== И вообще отсутствует выбор...
#28 by Zhuravlik
Сообщить(ТипОсн + "." + ВидОсн) - Возвращает нормально справочник.Такой-то
#29 by Zhuravlik
А можно программно назначить, чтобы у реквизита была "педалька"?
#30 by Torquader
Так в табличной части педалька предполагается автоматом, то есть она должна работать.
#31 by andrewks
Неопределенный у тебя редактироваться не будет, пока не назначишь тип
#32 by Torquader
Только педалька начинает работать тогда, когда выбираешь именно этот реквизит (а он у тебя явно не первый). Попробуй вставить данный код в ПриРедактированииНовойСтроки
#33 by Zhuravlik
нету. Для неопределенного... ну вот, назначаю - а ее все равно нету. Вроде все так, я понять не могу что неправильно?
#34 by Zhuravlik
Пробовал. Он идет после номера строки, получается, что первый в тч?
#35 by andrewks
у меня всё работает. что-то ты там перемудрил назначай тип в ПриРедактированииНовойСтроки и ПриНачалеРедактированияСтроки
#36 by Torquader
Ну, если уж совсем не получается, то делай выбор вручную. If Спр.Choose=1 Then МойРекв=Спр.CurrentItem;EndIf;
#37 by andrewks
но вообще, ТЗ побогаче смотрится. а ТП ещё лучше
#38 by Zhuravlik
странное дело, тип назначается для ПРЕДИДУЩЕЙ строки! Т.е. ввожу вторую строку - могу сделать выбор в первой, вторую - в третьей и т.д.
#39 by Zhuravlik
Вот так заработало - т.е. для всех трех процедур... странно как-то.
#40 by Zhuravlik
а что такое ТП?
#41 by Torquader
ПриВводеНовойСтроки вызывается, насколько я помню, после того, как строка будет уже введена, то есть очень похоже, что у тебя именно это и есть.
#42 by andrewks
у меня всё работает при назначении типа только в указанных мной двух предопределённых процедурах
#43 by andrewks
ТабличноеПоле 1с++
#44 by Zhuravlik
Но спозиционирована текущая строка? Значит В этой процедуре обрабатываются переменные в ней...
#45 by Torquader
У меня число методологический вопрос - почему нельзя задать измерение сразу, если вы положили в коде, что Тип это Справочник, то задать всевозможные справочники.
#46 by Zhuravlik
да, у меня тоже, поспешил...
#47 by Zhuravlik
В регистрах - измерения - справочники определенного вида. Я хотел для тч понять как именно для неопределенного реквизита задать и тип и вид, потому что возможно позже столкнусь с тем, что в регистрах будут измерения - перечисления.
#48 by Zhuravlik
все-равно непонятно. Если я при начале редактирования задаю тип и вид, зачем мне это делать еще и ПРИ редактировании? Это же просто случайно пальцем в небо ткнул, и догадался, а технически - я не понимаю почему так?
#49 by andrewks
когда вводишь новую строку, ПриНачалеРедактированияСтроки не вызывается. если тип уже проставлен, то потом в ней его указывать уже необязательно
#50 by Zhuravlik
это понятно. Я о другом. Вот я тыкнул два раза в диалог, вызывалось ПриНачалеРедактированияСтроки, я так рассуждал - здесь указываю тип и вид переменной, и ПриРедактировании - когда я ввожу данные система уже понимает, что там за тип и вид. А получается, что не так?
#51 by Zhuravlik
Видимо с этим вопросом я один на один)))) Спасибо всем за помощь.
#52 by Torquader
Если всё сделано правильно, то повторно задавать не надо, если, конечно, вид не поменялся.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям