asdfr1
Участник
Offline
|
|
« : 16-01-2013 09:15 » |
|
в сформированном отчёте при двойном щелчке необходимо вывести форму справочника, неудаётся дотянутся до самой формы. Кодик=СписокИнф[2].Значение; Форма=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик);
Область.Параметры.ФормаИзделия= Форма.Открыть(); Где ФормаИзделия -ПараметрРасшифровки как-то так, подскажите пожалуйста
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #1 : 16-01-2013 09:54 » |
|
Кодик=СписокИнф[2].Значение; Найти=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик); Форма = Найти.ПолучитьФорму(); Откр= Форма.Открыть(); Область.Параметры.ФормаИзделия= Откр; Ошибка при вызове метода контекста (ПолучитьФорму) Форма = Найти.ПолучитьФорму(); по причине: Элемент не выбран!
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #2 : 16-01-2013 09:56 » |
|
И что не ясно? Стань отладчиком на строку "Форма = Найти.ПолучитьФорму();" и посмотри что у тебя в переменной Найти
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #3 : 16-01-2013 11:30 » |
|
И что не ясно? Стань отладчиком на строку "Форма = Найти.ПолучитьФорму();" и посмотри что у тебя в переменной Найти
Неясно как открыть форму из отчёта. Найти=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Код); Форма = Найти.ПолучитьФорму(); Откр= Форма.Открыть(); где Код код в справочнике. Форма = Найти.ПолучитьФорму(); по причине: Элемент не выбран! Область.Параметры.ФормаИзделия= Откр;
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #4 : 16-01-2013 13:47 » |
|
asdfr1, сделал что я писал выше? Встроенную справку по методу НайтиПоКоду прочитал? (Что он может возвращать?)
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #5 : 17-01-2013 04:35 » |
|
asdfr1, сделал что я писал выше? Встроенную справку по методу НайтиПоКоду прочитал? (Что он может возвращать?)
Вернёт СправочникСсылка.<Имя справочника>; по сслыке получаю форму и открываю.Ошибка: Элемент не выбран! Контр=Справочники.Контрагенты; НайденнаяСсылка =Контр.НайтиПоКоду(СписокИн
|
|
|
Записан
|
|
|
|
Radistka
|
|
« Ответ #6 : 17-01-2013 06:42 » |
|
Вам вероятно тонко намекают проверить на случай, если у вас в переменной находится Неопределено или ПустаяСсылкаНайтиПоКоду (FindByCode)
Возвращаемое значение: Тип: СправочникСсылка.<Имя справочника>, Неопределено. Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка. Если код не задан, то будет возвращено Неопределено.
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #7 : 17-01-2013 07:30 » |
|
Radistka, Ничего себе "тонко"!
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #8 : 17-01-2013 10:15 » |
|
Вам вероятно тонко намекают проверить на случай, если у вас в переменной находится Неопределено или ПустаяСсылкаНайтиПоКоду (FindByCode)
Возвращаемое значение: Тип: СправочникСсылка.<Имя справочника>, Неопределено. Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка. Если код не задан, то будет возвращено Неопределено. какой нить примерчик можно ? из книги Радченко и синтаксиспомошника воспроизвёл.Сравнение на Неопределено сделал.Возвращаяет ошибку "Обращение к процедуре объекта как к функции (Открыть)" Для Каждого Строка ИЗ ТЗ Цикл СправочникПоиск=Справочники.ИзделияВЭксплуатации.НайтиПоРеквизиту("ЗаводскойНомер", ЗавНомерМля);
Если Строка.ИзделиеВЭксплуатацииЗаводскойНомер=СправочникПоиск Тогда Сообщить(Строка.ИзделиеВЭксплуатацииЗаводскойНомер); ОбластьДетальныхЗаписей.Параметры.Расшифровка="Ёпта2";
Иначе ЗавНомерМля=ВыборкаДетальныеЗаписи.ИзделиеВЭксплуатацииЗаводскойНомер; Ёпта1=СправочникПоиск.ПолучитьФорму(); Ёпта2=Ёпта1.Открыть(); ОбластьДетальныхЗаписей.Параметры.Расшифровка=Ёпта1; КонецЕсли; КонецЦикла;
|
|
« Последнее редактирование: 17-01-2013 13:14 от Kivals »
|
Записан
|
|
|
|
Radistka
|
|
« Ответ #9 : 17-01-2013 10:38 » |
|
Цензуры на вас нету.. хотя, может щас прийдёт. Кодик=СписокИнф[2].Значение; НайденнаяСсылка=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик);
Если НайденнаяСсылка=Справочники.ИзделияВЭксплуатации.ПустаяСсылка() тогда Сообщить("Здесь пустая ссылка, в справочнике нет элемента с кодом "+Кодик);
иначеЕсли НайденнаяСсылка=Неопределено тогда Сообщить("Не задано значение кода");
Иначе Область.Параметры.ФормаИзделия= НайденнаяСсылка.ПолучитьФорму().Открыть();
КонецЕсли; научитесь пользоваться брейкпойнтами и определите в конце концов, что у вас находится в переменной "НайденнаяСсылка" и оборачивайте свой код в тэги, а то читать нереально, что вы пишите.
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #10 : 17-01-2013 11:31 » |
|
НайденнаяСсылка=Справочники.ИзделияВЭксплуатации.НайтиПоКоду(Кодик); Сообщить(НайденнаяСсылка); Если НайденнаяСсылка=Справочники.ИзделияВЭксплуатации.ПустаяСсылка() тогда Сообщить("Здесь пустая ссылка, в справочнике нет элемента с кодом "+Кодик); Здесь пустая ссылка, в справочнике нет элемента с кодом 1654 Аквадистилятор
|
|
|
Записан
|
|
|
|
Radistka
|
|
« Ответ #11 : 17-01-2013 12:21 » |
|
ну вот собственно и ага. форму пустой ссылки 1Ска не открывает.
|
|
« Последнее редактирование: 17-01-2013 12:27 от Radistka »
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #12 : 17-01-2013 12:47 » |
|
ну вот собственно и ага. форму пустой ссылки 1Ска не открывает.
Иначе Область.Параметры.ФормаИзделия= НайденнаяСсылка.ПолучитьФорму().Открыть(); Обращение к процедуре объекта как к функции (Открыть) Пытался как в примере: Форма = Вычислить(СтрокаФормы.ИмяМетаданных).ПолучитьФорму(СтрокаФормы.ИмяФормы); Форма.Открыть(); Значение параметра"нет" не задано ...
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #13 : 17-01-2013 13:13 » |
|
asdfr1, код - в теги [code=e1cv8][/code]! всегда (если больше 1ой строки)!!! В книге описано, что ожидается в переменных. Пройдись отладчиком по каждой строке и сравни с книгой. А вообще вот это: Обращение к процедуре объекта как к функции (Открыть) Ни о чем не говорит? Пробуй так: Форма = НайденнаяСсылка.ПолучитьФорму(); Область.Параметры.ФормаИзделия = Форма; // Если это вообще нужно Форма.Открыть(); Но скорее всего будет так же, как и в самом начале: ПолучитьФорму(): ... Возвращаемое значение: Тип: Форма. Описание: Получает форму элемента справочника, на который указывает ссылка. Доступность: Толстый клиент. Пример: Если Не ТоварСсылка.Пустая() Тогда ТоварСсылка.ПолучитьФорму().Открыть(); Возврат; КонецЕсли; По идее должно сработать: Форма = Справочники[НайденнаяСсылка.Метаданные().Имя].ПолучитьФормуНовогоЭлемента(); Форма.Открыть();
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #14 : 17-01-2013 16:03 » |
|
может это вообще не возможно? самописная, обычное приложение.
|
4.jpg (115.61 Кб - загружено 809 раз.)
|
|
Записан
|
|
|
|
Radistka
|
|
« Ответ #15 : 18-01-2013 02:49 » |
|
может это вообще не возможно? самописная, обычное приложение. Вы отладчиком научились пользоваться? вам чтото предлагают - вы даже не пробуете это или просто не говорите нам что у вас получилось, а что нет из предложенного? или есть подозрение что рано или поздно, но над нами возьмёт верх любопытство и мы натурально попробуем сами это сделать, а потом выложим результат? ) какая разница самописная она или нет, вы же явно делаете дополнительный отчёт, а метаданные они и в африке метаданные. разберитесь с отладчиком уже и сравните каждую переменную у вас в коде с тем, что в ней должно быть - тип данных и значение в каждый момент времени и на разных данных. тем более, что вы прямо во время отладки имеете возможность примерить различные варианты строки кода, если это касается вызова функции. я по крайней мере, если не могу понять как вызвать правильно функцию, то дохожу до нужного момента в отладчике и перебираю все варианты, как могла бы выглядеть строка вызова функции. и ещё такой вопрос: вы уверены что вам необходимо это реализовывать в отчёте? зачем вам в ячейке хранить значение отличное от расшифровки?
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #16 : 18-01-2013 04:41 » |
|
отладчиком учусь, а то что "над нами возьмёт верх любопытство и мы натурально попробуем сами это" так не было и не будет! И метаданные действительно такие же в Африке. Учусь и есть желание. Реализовать это в отчёте для удобства, используя меньше бумажных носителей. Спасибо за совет, всё таки делать большой упор на отладчик, по аналогии с вашим...
|
|
|
Записан
|
|
|
|
Radistka
|
|
« Ответ #17 : 18-01-2013 04:50 » |
|
Реализовать это в отчёте для удобства, используя меньше бумажных носителей.
при чём здесь бумажные носители? я имела ввиду уверены ли вы что вам нужен отчёт а не обработка. зачем вам в ячейке хранить значение отличное от расшифровки?
так всё таки зачем? или у вас они совпадают?
|
|
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #18 : 18-01-2013 05:24 » |
|
Реализовать это в отчёте для удобства, используя меньше бумажных носителей.
при чём здесь бумажные носители? я имела ввиду уверены ли вы что вам нужен отчёт а не обработка. зачем вам в ячейке хранить значение отличное от расшифровки?
так всё таки зачем? или у вас они совпадают? Туплю. Отчёт или обработка - без разницы. Нашёл отчёт в ЗиК СпискиРаботников там как раз по клику делает то что нужно. часть данных совпадает, часть вытягивается из другого справочника...извините, совпадают
|
|
|
Записан
|
|
|
|
Radistka
|
|
« Ответ #19 : 18-01-2013 05:56 » |
|
Мысль первая:если совпадают, то поставьте в качестве значения в ячейку ссылку т.е. не ОбластьМакета.Параметры.ЗначениеЯчейки = ЭлементСправочника.Наименование; а ОбластьМакета.Параметры.ЗначениеЯчейки = ЭлементСправочника; Мысль вторая, возможно не рабочая: а если попробовать в расшифровку пихать не открытие формы а например ссылку на тот элемент справочника, который вам нужно открывать?
|
|
« Последнее редактирование: 18-01-2013 07:10 от Radistka »
|
Записан
|
|
|
|
asdfr1
Участник
Offline
|
|
« Ответ #20 : 19-01-2013 09:57 » |
|
ОГРОМНОЕ спасибо всё получилось открывает по ссылке на элемент справочника рассшифровку
|
|
|
Записан
|
|
|
|
|