Имя: Пароль:
1C
 
Нельзя изменять поле, содержащее объект данных формы
0 pro3ri
 
07.05.15
14:41
Добрый день!
Пишу код формы:
&НаКлиенте
Процедура ВидПрайсаНоменклатурыПриИзменении(Элемент)
    Объект.Товары = ВидПрайсаНоменклатурыПриИзмененииСервер();
    
КонецПроцедуры

&НаСервере
Функция ВидПрайсаНоменклатурыПриИзмененииСервер()
    Переменная = Объект.Товары;
    ТЗ = Переменная.Выгрузить(,"Номенклатура");
    НовыеЦеныТЗ = РаботаСДокументами.ПодстановкаЦенПриИзмТипаЦен(ТЗ, Объект.ВидПрайсаНоменклатуры, Объект.Дата);
    Массив = НовыеЦеныТЗ.ВыгрузитьКолонку("Цена");
    ТЗ = Переменная.Выгрузить();
    ТЗ.ЗагрузитьКолонку(Массив, "Цена");
    Переменная.Загрузить(ТЗ);
    //Возврат ТЧ;
    ЗначениеВДанныеФормы(ТЗ,Переменная);
    Возврат Переменная;

КонецФункции // ВидПрайсаНоменклатурыПриИзменении()

серверОМ:
Функция ПодстановкаЦенПриИзмТипаЦен(ТЗ, ТипЦен, Дата) Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЦеныНоменлатурыСрезПоследних.Цена
        |ИЗ
        |    РегистрСведений.ЦеныНоменлатуры.СрезПоследних(
        |            &Дата,
        |            Номенклатура В (&Номенклатура)
        |                И ВидПрайса = &ВидПрайса) КАК ЦеныНоменлатурыСрезПоследних";
    
    Запрос.УстановитьПараметр("ВидПрайса", ТипЦен);
    Запрос.УстановитьПараметр("Дата", Дата);
    Запрос.УстановитьПараметр("Номенклатура", ТЗ);
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();

    Возврат РезультатЗапроса;
    
КонецФункции // ПодстановкаЦенПриИзмТипаЦен()

может кто знает как побороть?
1 VikingKosmo
 
07.05.15
14:45
Может не пытаться ничего присваивать Объект.Товары, да еще и на клиенте?!
2 pro3ri
 
07.05.15
14:53
код формы изменил, заработало:
&НаКлиенте
Процедура ВидПрайсаНоменклатурыПриИзменении(Элемент)
    
    //Если ЗначениеЗаполнено(Объект.Товары) Тогда
    //    
    //    Для каждого СтрокаТЧ Из Объект.Товары Цикл
    //        РаботаСДокументамиКлиент.ПодстановкаЦены(СтрокаТЧ, Объект.ВидПрайсаНоменклатуры, Объект.Дата);    
    //    КонецЦикла;
    //    
    //КонецЕсли;
    ВидПрайсаНоменклатурыПриИзмененииСервер();
    
    
КонецПроцедуры

&НаСервере
Процедура ВидПрайсаНоменклатурыПриИзмененииСервер()
    Переменная = Объект.Товары;
    ТЗ = Переменная.Выгрузить(,"Номенклатура");
    НовыеЦеныТЗ = РаботаСДокументами.ПодстановкаЦенПриИзмТипаЦен(ТЗ, Объект.ВидПрайсаНоменклатуры, Объект.Дата);
    Массив = НовыеЦеныТЗ.ВыгрузитьКолонку("Цена");
    ТЗ = Переменная.Выгрузить();
    ТЗ.ЗагрузитьКолонку(Массив, "Цена");
    Переменная.Загрузить(ТЗ);
    //Возврат ТЧ;
    ЗначениеВДанныеФормы(ТЗ,Переменная);

КонецПроцедуры // ВидПрайсаНоменклатурыПриИзменении()

спасибо!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.