PDA

Просмотр полной версии : Вопрос новичка - не получается установить измерения отбора для регистра сведений



avm3110
20.09.2018, 15:07
Если не совсем еще владеете языком 1С, то лучше не пытаться ничего выдумывать и нужно по максимуму использовать то, что создает конструктор.

Если регистратором регистра является документ. Но уникальность идет по документу и номеру строки табличной части.

-Bahamut-
20.09.2018, 18:01
Добрый день!

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

Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГ ИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГ ИСТРОВ
КонецПроцедуры

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

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

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

Заранее спасибо!

-Bahamut-
20.09.2018, 18:04
P.S. в коде нет пробелов и странных символов, я не знаю, откуда они появились при копировании.

-Bahamut-
25.09.2018, 09:45
avm3110, спасибо за совет! Разобрался в итоге.

Posha12
26.09.2018, 10:11
Были проблемы 1С,вообще ничего не понимал, что и как нужно делать, особенно были проблемы с бухгалтерией,также были ошибки при создании отчета,выводились,но абсолютно пустые,пошарился в интернете на ткнулся на сайт https://www.pro1c-alfa.ru/