Имя: Пароль:
1C
1С v8
Правильная организация клиент-серверного взаимодействия
0 salvator
 
13.04.22
11:14
Имеется задача сформировать файл xml.
Процедура, которая формирует файл располагается в общем модуле с галочкой "Сервер".
Файл должен записываться на клиенте (пользователь должен видеть свои каталоги и выбирать куда сохранять файл). Но, естественно, вызов с клиента не видит некоторые серверные процедуры серверного общего модуля.
Собственно, вопрос, как правильно организовать работу?
Создать клиентский общий модуль, в нем создавать и записывать файл, а заполнение файла (процедуру из серверного общего модуля) перенести в новый общий модуль с галочкой "Вызов сервера"?
1 PLUT
 
13.04.22
11:25
собственно ответ - используй временное хренилище (ну там заклинание ПолучитьИзВременногоХранилища())

неплохо бы БСП почитать, "никогда такого не было и вот опять" как правильно организовать работу?
2 PLUT
 
13.04.22
11:28
+(1) ну и по феншую еще надо через асинхронные вызовы взаимодействие (тырфейс) с пользователем завернуть
3 salvator
 
13.04.22
11:31
(1) Именно так и хочу сделать. Вопрос именно по общим модулям: описанная логика правильна?
4 arsik
 
гуру
13.04.22
11:43
(0) Достаточно на клиенте вызвать серверную процедуру формы клиента, из которой вызвать формирование XML и вернуть этот файл через хранилище.
5 Fram
 
13.04.22
12:39
(4) на кой ляд хранилище, xml это ж текст
6 arsik
 
гуру
13.04.22
12:45
(5) Если файл большой? Текст долго будет с сервера на клиент пролазить, а бинарные сжатые намного быстрее.
7 hhhh
 
13.04.22
12:59
(6) там файлик максимум несколько мегабайт, поэтому по времени вряд ли заметите разницу.
8 arsik
 
гуру
13.04.22
13:03
(7) Это не по феншую. Да и у 1С слишком сложный объект - строка. Даже при 5 мегабайтах эту разницу ты увидишь.
9 salvator
 
13.04.22
13:32
Спасибо за помощь всем. В моем случае проще сделать через временное хранилище, т.к. в серверной процедуре по формированию файла используется типовая процедура по дополнительному изменению, причем именно файла, с передачей его расположения.
2 + 2 = 3.9999999999999999999999999999999...