| 
    
            
         
         | 
    
  | 
В модуле объекта вытаскиваю реквизиты формы и регистра сведений | ☑ | ||
|---|---|---|---|---|
| 
    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     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |