Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 04:13

Записать значение из документа в справочник

Автор Анюта17, 11 мая 2018, 11:50

0 Пользователей и 1 гость просматривают эту тему.

Анюта17

У меня есть справочник Транспорт, в котором есть поле Пробег
Есть документ ПутевойЛист,  в котором я рассчитываю Пробег с учетом пройденного километража
Мне надо полученное значение пробега, занести в справочник для соответствующего транспорта.
Моя попытка:
&НаСервере
Функция ЗаписатьПробег(ПробегСтал)
Трансп = Объект.Транспорт;
Транспорт = Справочники.Транспорт.НайтиПоНаименованию(Трансп);

Транспорт.Пробег = ПробегСтал;

КонецФункции


Ошибка:
{Документ.ПутевойЛист.Форма.ПутевойЛист.Форма(214)}: Поле объекта недоступно для записи (Пробег)
   Транспорт.Пробег = ПробегСтал;

Понимаю, не правильно записываю значение, но не знаю как по другому. Подскажите, пожалуйста

wise

(0) Вы пытаетесь произвести запись ССЫЛКИ...
посмотрите в СП, что возвращает "НайтиПоНаименованию"...
но ЭТО не одна ОШИБКА, Вам ЛУЧШЕ сделать РегистрСведений ПробегТранспорта
с Ресурсом "Побег" и если ЭТО значение нужно на форме элемента справочника - вывести его туда
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Анюта17

Цитата: wise от 11 мая 2018, 12:54
(0) Вы пытаетесь произвести запись ССЫЛКИ...
посмотрите в СП, что возвращает "НайтиПоНаименованию"...
но ЭТО не одна ОШИБКА, Вам ЛУЧШЕ сделать РегистрСведений ПробегТранспорта
с Ресурсом "Побег" и если ЭТО значение нужно на форме элемента справочника - вывести его туда

А как в справочнике вывести пробег на форме из регистра сведений

wise

(2) есть ХОРОШАЯ процедура "ПриСозданииНаСервере"
создай реквизит формы и заполни его в этой процедуре.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Анюта17

Цитата: wise от 11 мая 2018, 13:14
(2) есть ХОРОШАЯ процедура "ПриСозданииНаСервере"
создай реквизит формы и заполни его в этой процедуре.
это я поняла, я не пойму как из регистра сведений вытащить значение пробега для конкретного транспорта, отбор какой-то по измерению делать?

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

buketov.av


Анюта17

Цитата: wise от 11 мая 2018, 13:36
(4) Вы всё ПРАВИЛЬНО поняли.

на форме элемента сделала, работает

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Объект.Пробег = ПолучитьПробег();
КонецПроцедуры

&НаСервере
Функция ПолучитьПробег()
Запрос = Новый Запрос;
Запрос.Текст =
  "ВЫБРАТЬ
| ПробегТранспорта.Пробег КАК Пробег
|ИЗ
| РегистрСведений.ПробегТранспорта КАК ПробегТранспорта
|ГДЕ
| ПробегТранспорта.Транспорт.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат  0;
Иначе
Возврат  РезультатЗапроса.Выгрузить()[0].Пробег;
КонецЕсли;
КонецФункции


Как сделать чтоб и на формесписка выводило новый пробег, попробовала аналогично, но не пойму как к элементам формы списка обращаться, никогда с ней не работала

wise

(7) |    ПробегТранспорта.Транспорт = &Ссылка"; //здесь измерение УЖЕ имеет ТипЗначение - Ссылка

а на форме списка создаёшь динамический список основная таблица СпрТранспорт и Левым соединением с Регистром Пробег по Ссылка = ПробегТранспорта.Транспорт
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск