|
Как обойти клиент-сервер при обработке и открытии файла? | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
23.11.22
✎
14:13
|
Проблема такая. Делается обработка, В которой пользователь заполняет табличную часть номенклатурой, количеством, ценой. И выбирает документ (документы разного вида, но выбранный - один) в табличную часть которого надо дописать строки из ТЧ обработки.
Последнюю операцию я делаю по кнопке "Добавить в документ" Соответственно, она срабатывает на Клиенте и вызывает Сервер для операций с документом (добавление записей). А вот как вернутся на Клиент и открыть форму вновь заполненного документа.... туплю. |
|||
1
vicof
23.11.22
✎
14:15
|
При чем тут файл?
Ты с клиента вызываешь свое заполнение. Вот после заполнения и открывай. |
|||
2
НоваяВолна
23.11.22
✎
14:16
|
(0) обработка внешняя и ТЧ обработки в основном заполняется копипастом из Excel, т.е. заполнение не из базы
|
|||
3
Ryzeman
23.11.22
✎
14:18
|
(2) ты не хочешь записывать документ? Заполняешь новый объект и хочешь его показать?
|
|||
4
Ryzeman
23.11.22
✎
14:18
|
Иначе твой вопрос вообще не имеет смысла
|
|||
5
Kassern
23.11.22
✎
14:19
|
(0) легко и просто
Вы же кнопку на клиенте запускаете, там же и открывайте форму заполненного документа |
|||
6
mikecool
23.11.22
✎
14:20
|
ОткрытьФорму + ПараметрыЗаполнения
|
|||
7
Kassern
23.11.22
✎
14:21
|
" А вот как вернутся на Клиент" - это же азы)
&НаКлиенте Процедура НажатьПипку (Элемент) Результат=ПоработатьНаСервере(); //вот и вернулись на клиент, так же можно через оповещение продолжить работу. КонецПроцедуры &НаСервере Функция ПоработатьНаСервере() Возврат ... КонецФункции |
|||
8
mikecool
23.11.22
✎
14:24
|
(7) зачем, если есть (6) ?
|
|||
9
НоваяВолна
23.11.22
✎
14:25
|
(3) Документ сам по себе уже создан и записан. Надо дописать и показать без записи...
(5) (7) по кнопке, которая конечно срабатывает на Клиенте, идет стандартный вызов Серверной процедуры. Он мне нужен чтобы взять документ и добавить строки.. .... и вот документ готов... но он На Сервере . Функций с Возвратом нет. |
|||
10
Kassern
23.11.22
✎
14:26
|
(9) А дописать в этой кнопке после обращения на сервер открытие документа никак?
|
|||
11
Kassern
23.11.22
✎
14:27
|
(8) человек спросил как с сервера вернутся на клиент, я и написал как)
|
|||
12
НоваяВолна
23.11.22
✎
14:27
|
(10) открывать то надо Форму, а ее на Сервере нет
|
|||
13
Kassern
23.11.22
✎
14:29
|
(12) Услышьте меня
У вас есть в обработке кнопка с определенным событием на клиенте В этом событии (процедуре) вы вызываете сервер и что-то там заполняете в ИБ. Что мешает в ЭТОЙ процедуре, после серверного вызова дописать открытие формы? |
|||
14
НоваяВолна
23.11.22
✎
14:29
|
(11) про Функцию и Возврат я тоже думал, но у меня по кнопке надо выполнить заполнение документа, а это стандартная Серверная Процедура
|
|||
15
Kassern
23.11.22
✎
14:30
|
&НаКлиенте
Процедура НажатьПипку (Элемент) ЗаполнитьДокНаСервере(ДокСсылка); ПоказатьЗначение(,ДокСсылка); КонецПроцедуры |
|||
16
Kassern
23.11.22
✎
14:31
|
(14) Что мешает сделать на подобие (15) ?
|
|||
17
mikecool
23.11.22
✎
14:32
|
(14) посмотри еще раз на (6)
|
|||
18
Kassern
23.11.22
✎
14:32
|
Ну или ОткрытьЗначение(ТовДокСсылкаар) - не помню уже как там точно
|
|||
19
Ryzeman
23.11.22
✎
14:32
|
(9) То, что ты хочешь нельзя сделать так, как ты хочешь. Открывай форму уже существующего с параметрами открытия как тебе написали в (6), все свои данные запихивай в эти параметры, а уже на форме перезаполняй.
(13) (16) Да он записывать не хочет же. Ссылка вернёт не то, что он хочет |
|||
20
Kassern
23.11.22
✎
14:32
|
(19) я думал, что он на сервере записывает данные в документ и хочет уже записанный открыть
|
|||
21
Ryzeman
23.11.22
✎
14:33
|
(18) Ему не объект нужен на самом деле, а форма в которой новые данные введены.
|
|||
22
RomanYS
23.11.22
✎
14:34
|
(6) Это идеальный путь, но он может требовать обработку этих параметров на стороне формы, что не всегда возможно.
|
|||
23
lodger
23.11.22
✎
14:34
|
(13) зачем тыкать ИБ, если человек мог ошибиться?
я бы сделал так: есть обработка - на обработке ТЧ, колонки, свои заполняшки - на обработке поле выбора документа - в обработке кнопка "закинуть строки В документ" - - по кнопке делается структура параметров с таблицей значений из ТЧ обормотки. есть неопределенное число документов - в большой конфе ПриСознанииНаСервере всегда есть Переопределяемый со входящим параметром - - в это месте Взводим Модифицированность = истина, и в ТЧ объекта закидываем строки из ТЗ из параметра открытия формы. |
|||
24
Kassern
23.11.22
✎
14:37
|
(23) Не прочитал (9) "Надо дописать и показать без записи... "
|
|||
25
Ryzeman
23.11.22
✎
14:39
|
(15) Кстати, есть прикольный, хоть и кривой приём - использовать ОткрытьФорму(). Там можно указать владельца, и тогда в новой форме пытаться его получить и содрать дранные с открытой формы-владельца. Без параметров. С одной стороные решение из разряда "удаляем гланды через задницу", но в редких сценариях может пригодиться :) Через "ПоказатьЗначение" так не выйдет
|
|||
26
RomanYS
23.11.22
✎
14:44
|
(25) А что мешает править данные открытой формы на клиенте? Можно обойтись без правки открываемой формы
|
|||
27
Kassern
23.11.22
✎
14:47
|
Как вариант, можно таким макаром сделать:
&НаКлиенте Процедура ЗаполнитьИОткрыть(Команда) Форма = ПолучитьФорму("Документ.НужныйДок.ФормаОбъекта",Новый Структура("Ключ", ДокСсылка)); ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее Форма.Открыть(); КонецПроцедуры &НаСервере Функция ЗаполнитьДокументНаСервере(ДанныеФормы); Док=ДокСсылка.ПолучитьОбъект(); //Заполняем то, что нужно ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ КонецФункции |
|||
28
Kassern
23.11.22
✎
14:48
|
(26) Например много обращений на сервер, для получения данных из ИБ. Зачем по 100 раз сервер дергать, когда можно 1 раз вызвать и там все заполнить?
|
|||
29
Kassern
23.11.22
✎
14:51
|
(25) По просьбам трудящихся -> (27) =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |