Вход | Регистрация


Не получается указать измерение отбора набора записей - "Поле объекта не обнаружено"

Не получается указать измерение отбора набора записей - "Поле объекта не обнаружено"
Я
   Bahamut
 
19.09.18 - 04:44
Добрый день!

Собственно сабж. Есть регистр сведений Бригады с измерением ТранспортныеСредства. Регистр подчинён документу ОформлениеБригады и заполняется на его основе. Я хочу сделать так, чтобы при укомплектовании машины новой бригадой 1С не ругалась на уже существующую запись, а затирала старую и записывала новую. Для этого в модуле документа ОформлениеБригады я модифицировал событие ОбработкаПроведения. Получилось следующее:


Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

    // Данный фрагмент построен конструктором.

    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


    // регистр Бригады

    Движения.Бригады.Записывать = Истина;
    Движение = Движения.Бригады.Добавить();
    Если ПолучитьТСНаСервере(ТранспортноеСредство) = ТранспортноеСредство Тогда
        УдалитьЗаписьПоТС(ТранспортноеСредство);
    КонецЕсли;
    Движение.ТранспортноеСредство = ТранспортноеСредство;
    Движение.Грузчик1 = Грузчик1;
    Движение.Грузчик2 = Грузчик2;
    Движение.Водитель = Водитель;

    // регистр ПоездкиИКилометры 

    Движения.ПоездкиИКилометры.Записывать = Истина;
    Движение = Движения.ПоездкиИКилометры.Добавить();
    Движение.Период = Дата;
    Движение.ТранспортноеСредство = ТранспортноеСредство;
    Движение.Километры = НачальноеЗначениеСчетчика;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры

&НаСервере
Функция ПолучитьТСНаСервере(ТС)
    НаборЗаписей = РегистрыСведений.Бригады.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС);
    Выборка=НаборЗаписей.Выбрать();
    Если Не Выборка.Следующий() Тогда
        Сообщить("Выборка пуста!");
    Иначе
        Выборка.Следующий();
    КонецЕсли;
КонецФункции

&НаСервере
Процедура УдалитьЗаписьПоТС(ТС)
    НаборЗаписей = РегистрыСведений.Бригады.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС);
    НаборЗаписей.Записать();
КонецПроцедуры

ПолучитьТСНаСервере(ТС) - проверочная функция, она пока ничего не возвращает. Но на линии 
НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС);
система выдаёт ошибку
Поле объекта не обнаружено (ТранспортноеСредство).
Пробовал включать свойство Ведущее в свойствах измерения ТранспортноеСредство, пробовал устанавливать отбор по регистратору - ничего не помогает. Где я прокололся? Как это можно исправить?

Заранее спасибо!
 
 
   hhhh
 
1 - 19.09.18 - 05:07
(0) если регистр подчинен регистратору, то отбор только по регистратору. по измерениям отбор невозможен. поэтому выбросьте, что вы там навояли  про
НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС);
и напишите по-новой
   Bahamut
 
2 - 19.09.18 - 05:11
hhhh я так тоже пробовал, итог всё тот же - "Поле объекта не обнаружено (ОформлениеБригады)"
   hhhh
 
3 - 19.09.18 - 05:14
(2) ну это совсем другой итог, не тот же, совершенно другая ошибка
   Bahamut
 
4 - 19.09.18 - 05:23
(3) С чем она может быть связана? Я проверил данные регистра сведений - регистратор везде проставлен...
   hhhh
 
5 - 19.09.18 - 05:31
(4) причем тут регистратор, вы не вчитались в ошибку, у вас ошибка не найдено поле ОформлениеБригады , и там в ошибке приведено имя модуля и номер строки, надо смотреть эту строку, почему не определено поле
   catena
 
6 - 19.09.18 - 05:53
(2)Наверное потому, что отбор устанавливается по названию ключа (Регистратор), а не по типу документа (ОформлениеБригады)
   Bahamut
 
7 - 19.09.18 - 06:12
(5) (6) Спасибо, уже разобрался. Судя по всему, НаборЗаписей тут бесполезен, сделаю через запрос.

Спасибо за помощь!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует