Имя: Пароль:
1C
 
Не получатеся поместить структуру во временное хранилище
0 gabd_marat
 
21.05.17
02:24
Не получается поместить структуру во временное хранилище


&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
    Стр = Элементы.Товары.ТекущиеДанные;
    Номенклатура = Стр.Номенклатура;
    мСтруктура = Новый Структура;
    мСтруктура.Вставить("Склад", ЭтаФорма.Элементы.СкладОтправитель);
    мСтруктура.Вставить("Организация", ЭтаФорма.Элементы.Организация);
    мСтруктура.Вставить("Дата", ЭтаФорма.Элементы.Дата);
    мСтруктура.Вставить("Номенклатура", Номенклатура);
    мАдрес = ПоместитьВоВременноеХранилище(мСтруктура, Новый УникальныйИдентификатор());
    Количество = ОстатокНоменклатуры(мАдрес);
    ЭтаФорма.Элементы.Остаток = Количество - Стр.Количество;
КонецПроцедуры

&НаСервере
Функция ОстатокНоменклатуры(мАдрес)
    мСтруктура = ПолучитьИзВременногоХранилища(мАдрес);
    Результат = МТ_ОперативныйУчетВСкладах.МТ_ПолучитьОстатокНоменклатуры(мСтруктура.Номенклатура, мСтруктура.Склад, мСтруктура.Организация, мСтруктура.Дата);
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        Элемент = Выборка.Количество;
    КонецЦикла;
    Возврат Элемент;
КонецФункции
1 gabd_marat
 
21.05.17
02:26
Не знаю как работать с временным хранилищем
2 gabd_marat
 
21.05.17
02:27
PR,  как можно передать элементы формы?
3 PR
 
21.05.17
02:42
(2) Нахрена?
4 PR
 
21.05.17
02:44
Просто через параметр формы передай структуру и не трахай мозг.
И да, ЭтаФорма.Элементы.СкладОтправитель — это вообще дичь какая-то.
5 gabd_marat
 
21.05.17
11:01
Не передает структуру, пишет ошибка. Может потому что есть ссылка на номенклатуру? пробывал структуру поместить в массив все равно не передает. как элемент формы то же не передает
6 Лефмихалыч
 
21.05.17
11:40
(0) ты на сервер передаешь элементы формы. Там эти объекты существовать не могут.

Количество = ОстатокНоменклатуры(Объект.СкладОтправитель, Объект.Организация, Объект.Дата, Номенктаура);

Функция ОстатокНоменклатуры(Склад, Организация, Дата, Номенклатура)
7 Лефмихалыч
 
21.05.17
11:41
хотя, к атрибутам Объект.* можно и на сервер обращаться - передавать их нет нужды. Номенклатуру только надо будет передать.
8 gabd_marat
 
21.05.17
13:10
Лефмихалыч, при обращении к Объект.СкладОтправитель, разве данные не должны быть записаны в базу, что бы их получить?
9 gabd_marat
 
21.05.17
13:23
Получается Объект - это сновной реквизит формы, через который доступны на сервере значения элемента формы, если правильно понимаю. А ЭтотОбъект - объект модуля объекта.
10 gabd_marat
 
21.05.17
13:45
Вроде так работает, но выдает ошибку на записи элемента формы

&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
    Стр = Элементы.Товары.ТекущиеДанные;
    Номенклатура = Стр.Номенклатура;
    Количество = ОстатокНоменклатуры(Номенклатура);
    Элементы.Остаток = Количество - Стр.Количество;
КонецПроцедуры

&НаСервере
Функция ОстатокНоменклатуры(Номенклатура)
    мОбъект = РеквизитФормыВЗначение("Объект");
    Результат = МТ_ОперативныйУчетВСкладах.МТ_ПолучитьОстатокНоменклатуры(Номенклатура, мОбъект.СкладОтправитель, мОбъект.Организация, мОбъект.Дата);
    Для Каждого Строка Из Результат Цикл
        Элемент = Строка.КоличествоОстаток;
    КонецЦикла;
    Возврат Элемент;
КонецФункции
11 Lexey_
 
21.05.17
13:47
(10) а что такое "запись элемента формы"?
12 gabd_marat
 
21.05.17
13:48
Элементы.Остаток - это элемент формы, без привязки к реквизиту, информативный. в свойстве поля стоит Видимость, ТолькоПросмотр, Доступность = истина. не дает записать почему? ошибка : Поле объекта недоступно для записи (Остаток)
13 gabd_marat
 
21.05.17
13:49
запись в реквизит вроде ,если правильно понимаю, а мне надо просто выводить информацию об остатке на складе, не записываю ни куда
14 gabd_marat
 
21.05.17
13:51
(11) Просто задача , в документе перемещения в легенде табличной части отображать надпись или поле  «Остаток», где информативно (т.е. не создавать отдельный реквизит документа) выводить остаток товара, выделенного в строке табличной части документа, на складе-отправителе; поле должно быть недоступно для редактирования;
15 Лефмихалыч
 
21.05.17
15:45
(8) нет. Объект - это ДанныеФормыСтруктура, они в базе не хранятся
16 h-sp
 
21.05.17
20:42
(13) ну запишите этот остаток в реквизит формы. А в элементе его указывайте. Чего вы чудите на ровном месте?
Ошибка? Это не ошибка, это системная функция.