Имя: Пароль:
1C
1С v8
изменение значения реквизите при работе &НаСервере
0 inake
 
12.08.11
10:08
Всем доброго времени суток, имею дело с тонким клиентом, необходимо в результате выполнения команды поменять значение одного из реквизитов отобранных в запросе документов.
вот текст
&НаКлиенте
Процедура ОтобратьЗаявки(Команда)
   ИзменениеСтатуса();
КонецПроцедуры

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

в результате выдаёт ошибку
{Документ.Заявка.Форма.ФормаСписка1.Форма(26)}: Поле объекта недоступно для записи (Статус)
           Результат.Статус = СтрЗаменить(Результат.Статус, "Поступило на Склад" ,"Выписано со склада");
может кто-то помочь разобраться?
1 butterbean
 
12.08.11
10:11
надо бы объект получить по ссылке, но сначала конечно саму ссылку
2 inake
 
12.08.11
10:19
А как это примерно должно выглядеть?
3 butterbean
 
12.08.11
10:24
(2) в запросе получаешь еще Заявка1.Ссылка,
потом при переборе получаешь объект: Об = Результат.Ссылка.ПолучитьОбъект;
потом меняешь у объекта реквизит Статус и потом записываешь объект
4 Жан Пердежон
 
12.08.11
10:34
(0) тонкий клиент тут ни причем, тут элементарные вещи типа чем отличаются ДокументОбъект и ДокументСсылка.
5 inake
 
12.08.11
10:55
странно работает, старый статус стирает, а новый не записывает, оставляет пустым значение реквизита
6 butterbean
 
12.08.11
10:56
(5) код покажи, небось тип перепутал
7 inake
 
12.08.11
11:01
&НаСервере
Функция ИзменениеСтатуса()
       Запрос = Новый Запрос;
       Запрос.УстановитьПараметр("ПеренестиЗаявкиДо", ЭтаФорма.ПеренестиЗаявкиДо);
       Запрос.УстановитьПараметр("ПоступилоНаСклад", Перечисления.Статус.ПоступилоНаСклад);
       Запрос.Текст="ВЫБРАТЬ
                    |    Заявка1.Номер,
                    |    Заявка1.Дата,
                    |    Заявка1.Проведен,
                    |    Заявка1.Статус,
                    |    Заявка1.ПоступилоНаСклад,
                    |    Заявка1.Ссылка
                    |ИЗ
                    |    Документ.Заявка КАК Заявка1
                    |ГДЕ
                    |    Заявка1.Дата <= &ПеренестиЗаявкиДо
                    |    И Заявка1.Статус = &ПоступилоНаСклад";
       Результат = Запрос.Выполнить().Выбрать();
       Пока Результат.Следующий() Цикл
           Объект = Результат.Ссылка.ПолучитьОбъект();
           Объект.Статус = СтрЗаменить(Объект.Статус, "Поступило на склад" , "Выписано со склада");
             Объект.Записать();
       КонецЦикла;
КонецФункции
8 patapum
 
12.08.11
11:04
Статус - тип строка?
9 inake
 
12.08.11
11:06
ПеречислениеСсылка.Статус
10 inake
 
12.08.11
11:26
всё, догнал)
11 inake
 
12.08.11
11:30
спасибо!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс