|
Не получается указать измерение отбора набора записей - "Поле объекта не обнаружено" | ☑ | ||
---|---|---|---|---|
0
Bahamut
19.09.18
✎
04:44
|
Добрый день!
Собственно сабж. Есть регистр сведений Бригады с измерением ТранспортныеСредства. Регистр подчинён документу ОформлениеБригады и заполняется на его основе. Я хочу сделать так, чтобы при укомплектовании машины новой бригадой 1С не ругалась на уже существующую запись, а затирала старую и записывала новую. Для этого в модуле документа ОформлениеБригады я модифицировал событие ОбработкаПроведения. Получилось следующее: Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр Бригады Движения.Бригады.Записывать = Истина; Движение = Движения.Бригады.Добавить(); Если ПолучитьТСНаСервере(ТранспортноеСредство) = ТранспортноеСредство Тогда УдалитьЗаписьПоТС(ТранспортноеСредство); КонецЕсли; Движение.ТранспортноеСредство = ТранспортноеСредство; Движение.Грузчик1 = Грузчик1; Движение.Грузчик2 = Грузчик2; Движение.Водитель = Водитель; // регистр ПоездкиИКилометры Движения.ПоездкиИКилометры.Записывать = Истина; Движение = Движения.ПоездкиИКилометры.Добавить(); Движение.Период = Дата; Движение.ТранспортноеСредство = ТранспортноеСредство; Движение.Километры = НачальноеЗначениеСчетчика; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры &НаСервере Функция ПолучитьТСНаСервере(ТС) НаборЗаписей = РегистрыСведений.Бригады.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС); Выборка=НаборЗаписей.Выбрать(); Если Не Выборка.Следующий() Тогда Сообщить("Выборка пуста!"); Иначе Выборка.Следующий(); КонецЕсли; КонецФункции &НаСервере Процедура УдалитьЗаписьПоТС(ТС) НаборЗаписей = РегистрыСведений.Бригады.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС); НаборЗаписей.Записать(); КонецПроцедуры ПолучитьТСНаСервере(ТС) - проверочная функция, она пока ничего не возвращает. Но на линии НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС); система выдаёт ошибку Поле объекта не обнаружено (ТранспортноеСредство). Пробовал включать свойство Ведущее в свойствах измерения ТранспортноеСредство, пробовал устанавливать отбор по регистратору - ничего не помогает. Где я прокололся? Как это можно исправить? Заранее спасибо! |
|||
1
hhhh
19.09.18
✎
05:07
|
(0) если регистр подчинен регистратору, то отбор только по регистратору. по измерениям отбор невозможен. поэтому выбросьте, что вы там навояли про
НаборЗаписей.Отбор.ТранспортноеСредство.Установить(ТС); и напишите по-новой |
|||
2
Bahamut
19.09.18
✎
05:11
|
hhhh я так тоже пробовал, итог всё тот же - "Поле объекта не обнаружено (ОформлениеБригады)"
|
|||
3
hhhh
19.09.18
✎
05:14
|
(2) ну это совсем другой итог, не тот же, совершенно другая ошибка
|
|||
4
Bahamut
19.09.18
✎
05:23
|
(3) С чем она может быть связана? Я проверил данные регистра сведений - регистратор везде проставлен...
|
|||
5
hhhh
19.09.18
✎
05:31
|
(4) причем тут регистратор, вы не вчитались в ошибку, у вас ошибка не найдено поле ОформлениеБригады , и там в ошибке приведено имя модуля и номер строки, надо смотреть эту строку, почему не определено поле
|
|||
6
catena
19.09.18
✎
05:53
|
(2)Наверное потому, что отбор устанавливается по названию ключа (Регистратор), а не по типу документа (ОформлениеБригады)
|
|||
7
Bahamut
19.09.18
✎
06:12
|
(5) (6) Спасибо, уже разобрался. Судя по всему, НаборЗаписей тут бесполезен, сделаю через запрос.
Спасибо за помощь! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |