![]() |
|
Заполнить реквизит с типом ДанныеФормыКоллекция | ☑ | ||
---|---|---|---|---|
0
Nerevar86
24.03.23
✎
00:21
|
Добрый вечер,уважаемые форумчане.
Встала задача заполнить данными реквизит с типом ДанныеФормыКоллекция, который размещен на форме (УФ). Вот код: &НаСервереБезКонтекста Функция ner_СписокСтандартныйПоискНоменклатураПриАктивизацииСтрокиПослеНаСервере(Номенклатура) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, | СвободныеОстаткиОстатки.Характеристика КАК Характеристика, | СвободныеОстаткиОстатки.Склад КАК Склад, | СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток КАК РезервНаСкладе, | СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток КАК РезервПодЗаказ |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки(, Номенклатура = &Номенклатура) КАК СвободныеОстаткиОстатки"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(РезультатЗапроса); КонецФункции &НаКлиенте &После("ПодборТаблицаНоменклатураПриАктивизацииСтроки") Процедура ner_ПодборТаблицаНоменклатураПриАктивизацииСтроки(Элемент) ner_СписокСтандартныйПоискНоменклатураПриАктивизацииСтрокиПослеНаСервере(Элемент.ТекущиеДанные.Номенклатура); КонецПроцедуры У меня есть реквизит "ТоварыВРезерве" с типом ДанныеФормыКоллекция. Я бы мог его конечно заполнить на сервере, если сделал бы контекстный вызов,но всю форму тянуть не хочется. Не подскажите как возможно это реализовать? Метод загрузить на клиенте насколько я знаю не работает:) |
|||
1
Волшебник
24.03.23
✎
00:23
|
Покажите скриншот
|
|||
2
Nerevar86
24.03.23
✎
00:25
|
Скриншот чего именно?
|
|||
3
Волшебник
24.03.23
✎
00:25
|
Вашей формы
|
|||
4
Nerevar86
24.03.23
✎
00:37
|
||||
5
H A D G E H O G s
24.03.23
✎
01:08
|
Перебирай возвращенный массив структур на клиенте и добавляй построчно в коллекцию через Добавить()
|
|||
6
eddy_n
24.03.23
✎
02:43
|
В этой же серверной процедуре и заполняй свой реквизит формы 'ТоварыВРезерве' с типом таблица значений через всё тот же Добавить(). Только процедура должна быть контекстной.
|
|||
7
Nerevar86
24.03.23
✎
06:54
|
(6) В событии "ПриАктивизиацииСтроки" не предусмотрена возможность контекстного серверного вызова. В синтаксис-поомщнике так и неписано. Да и платформа сама не дает создать контекстный вызов. Можно конечно руками директиву поправить, но поведение платформы оставит желать лучшего.
|
|||
8
Мультук
24.03.23
✎
07:59
|
(7)
1) Прочитать в кэш все остатки по номенклатуре из коллекции и показывать не подходит ? Нужны остатки "прямо сейчас из базы" ? 2) Можно из события "" запускать "ПодключитьОбработчикОжидания" Вот так делают ребята из 1С &НаКлиенте Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) [skip] ПодключитьОбработчикОжидания("ТоварыПриОкончанииРедактированияДляСерверногоВызова", 0.5, Истина); КонецПроцедуры 3) РегистрНакопления.СвободныеОстатки.Остатки( Это необновленная УТ ? |
|||
9
Nerevar86
24.03.23
✎
08:04
|
(8) Это типовая УТ 11.4
|
|||
10
Nerevar86
24.03.23
✎
08:05
|
(8) У меня есть расширение, где нужно в реквизите на форме с типом ТЗ (ДанныеФормыКоллекция) при активизации строки на форме, вывести информацию об остатках в этот реквизит.
|
|||
11
eddy_n
24.03.23
✎
09:02
|
&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент) СервернаяПроцедура(); КонецПроцедуры Процедура СервернаяПроцедура() НовСтрока = ЭтаФорма.ТаблГТД.Добавить(); НовСтрока.ГТД = ""; КонецПроцедуры |
|||
12
Nerevar86
24.03.23
✎
09:25
|
(11) Так у меня платформа не дает создать процедуру с директивой &НаСервере.
|
|||
13
eddy_n
24.03.23
✎
09:52
|
(12) А почему у меня даёт?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |