|
В модуле объекта вытаскиваю реквизиты формы и регистра сведений | ☑ | ||
---|---|---|---|---|
0
kamila0713
11.08.19
✎
23:18
|
Приведенный ниж код, разместил в модуле объекта Документа. А именно в обработке проведения. Вычисляю значение(Shift+F9) и Наименование и СостояниеТС значение: Ошибка чтения значения
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СостояниеТранспортногоСредства.Наименование КАК Наименование, | СостояниеТранспортногоСредства.СостояниеТС КАК СостояниеТС |ИЗ | РегистрСведений.СостояниеТранспортногоСредства КАК СостояниеТранспортногоСредства |ГДЕ | СостояниеТранспортногоСредства.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Наименование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДСостояниеТС = РезультатЗапроса.Выбрать(); |
|||
1
palsergeich
11.08.19
✎
23:39
|
Как минимум надо дописать
ВыборкаДСостояниеТС.Следующий(); И после исполнения этой строчки - сомтри отладчик |
|||
2
kamila0713
12.08.19
✎
12:41
|
(1) Я вычисляю значение ВыборкаДСостояниеТС. И там ошибка. Не понял, с чем это было связано. Я создал новый документ, выполнил те же действия и все работает. Было бы здорово разобраться в чем дело
|
|||
3
catena
12.08.19
✎
12:52
|
(2)В приведенном в (0) коде нет .Следующий(), без него такая ошибка очевидна.
|
|||
4
kamila0713
12.08.19
✎
13:33
|
(1) и (3) Да, спасибо большое. Именно в этом ошибка была. (Я стажер только)
|
|||
5
Simod
12.08.19
✎
13:55
|
(4) Если есть проблемы с запоминаем последовательности обработки результата запроса, то в при написании запроса в контекстном меню выбирай не "Конструктор запроса", а "Конструктор запроса с обработкой результата".
|
|||
6
kamila0713
12.08.19
✎
15:47
|
(5) Да, спасибо, Simod
|
|||
7
kamila0713
12.08.19
✎
16:08
|
Еще вопрос. А почему в модуле формы документа нельзя писать так:
//(1)&НаСервере //(2)Функция ПолучитьЦенуНоменклатуры(Номенклатура) //............. //(3)Запрос.УстановитьПараметр("Контрагент", Элементы.Контрагент); //(4)Запрос.УстановитьПараметр("Номенклатура", Номенклатура); //(5)Запрос.УстановитьПараметр("Период", Объект.Дата); Почему в строчке (3) должно быть написано: ...Объект.Контрагент)? Ведь в директве компиляции НаСервере можно обращаться и к контексту формы и к БД? З.Ы. Контрагент у меня реквизит документа |
|||
8
Гобсек
12.08.19
✎
16:12
|
(7) Потому, что Элементы.Контрагент есть элемент формы. К форме на сервере обращаться нельзя (ее на сервере не видно).
|
|||
9
kamila0713
12.08.19
✎
16:46
|
(8) Спасибо)
А почему при открытии формы элемента справочника вылезает ошибка: &НаСервере Процедура ПриОткрытииНаСервере() Объект.ДобавитьГСМ.Видимость = Ложь; Объект.ВидТС = Объект.Родитель; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) ПриОткрытииНаСервере(); КонецПроцедуры |
|||
10
hhhh
12.08.19
✎
16:51
|
(9) потому что Видимость наоборот, она у элемента формы. А вы у объекта делаете. И не надо херачить такое в ПриОткрытии, есть же процедура ПриСозданииНаСервере, там всё и делайте.
|
|||
11
kamila0713
12.08.19
✎
17:21
|
(10) Спасибо большое. Еще бы знать почему...
|
|||
12
hhhh
12.08.19
✎
17:45
|
(11) потому что элементы формы - это всякие квадраты, прямоугольники, рисунки и всякие там рюшечки на форме.
поэтому ваше Запрос.УстановитьПараметр("Контрагент", Элементы.Контрагент); это бред, вы хотите в контрагент какую-то рюшечку поместить. А вот Видимость - это как раз у элемента формы, что-то делаем видимым, что-то невидимым. |
|||
13
kamila0713
12.08.19
✎
18:24
|
(12) Да, hhhh это я понял)Я спрашивал именно про оптимизацию, про процедуру ПриСоздании...)))
|
|||
14
hhhh
12.08.19
✎
19:33
|
(13) при открытии вообще лишняя. Вам же на сервере надо, а при открытии - на клиенте
|
|||
15
kamila0713
12.08.19
✎
19:39
|
(14) Cпасибо, hhhh. Пока вопросов больше нет
|
|||
16
kamila0713
12.08.19
✎
21:12
|
Помогите пожалуйста: При изменении реквизита Автомобиль выдает ошибку
Ошибка отображения типов: Отсутствует отображение для типа 'ПолеФормы' Код: &НаСервереБезКонтекста Функция АвтомобильПриИзмененииНаСервере(Наименование) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТранспортныеСредства.Наименование КАК Наименование, | ТранспортныеСредства.ГосНомер КАК ГосНомер |ИЗ | Справочник.ТранспортныеСредства КАК ТранспортныеСредства |ГДЕ | ТранспортныеСредства.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Наименование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Возврат ВыборкаДетальныеЗаписи.ГосНомер; КонецЦикла; КонецФункции &НаКлиенте Процедура АвтомобильПриИзменении(Элемент) Элементы.ГосНомер = АвтомобильПриИзмененииНаСервере(Элементы.Автомобиль); КонецПроцедуры |
|||
17
hhhh
12.08.19
✎
21:33
|
&НаСервереБезКонтекста
+ Code Функция АвтомобильПриИзмененииНаСервере(Автомобиль) Возврат Автомобиль.ГосНомер; КонецФункции &НаКлиенте Процедура АвтомобильПриИзменении(Элемент) Объект.ГосНомер = АвтомобильПриИзмененииНаСервере(Объект.Автомобиль); КонецПроцедуры |
|||
18
kamila0713
12.08.19
✎
22:20
|
(17) С Объектами и Элементами разобрался
|
|||
19
kamila0713
12.08.19
✎
22:39
|
Но все равно выдает в отладчике Ошибка чтения значения для ВыборкаДетальныеЗаписи, а ВыборкаДетальныеЗаписи.Следующий(), выдает Ложь
+Code: &НаСервереБезКонтекста Функция АвтомобильПриИзмененииНаСервере(Наименование) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТранспортныеСредства.ГосНомер КАК ГосНомер |ИЗ | Справочник.ТранспортныеСредства КАК ТранспортныеСредства |ГДЕ | ТранспортныеСредства.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Наименование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Возврат ВыборкаДетальныеЗаписи.ГосНомер; КонецЦикла; КонецФункции &НаКлиенте Процедура АвтомобильПриИзменении(Элемент) Объект.ГосНомер = АвтомобильПриИзмененииНаСервере(Объект.Автомобиль); КонецПроцедуры |
|||
20
kamila0713
12.08.19
✎
22:47
|
Сделал. Поменял Наименование на Ссылку. Получилось
|
|||
21
hhhh
12.08.19
✎
22:49
|
(19) потому что Наименование это строка, а Объект.Автомобиль это ссылка на элемент справочника, пробуй
|ГДЕ | ТранспортныеСредства.Ссылка = &Наименование"; и вообще это дурость - работать с наименованиями. У тебя же ссылка есть. |
|||
22
kamila0713
12.08.19
✎
23:30
|
(21) Спасибо, hhhh
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |