|
Как лучше передать большу таблицу значение с формы в фоновое задание? alex_kld_2024, Vostochnick, Garykom, Fedor-1971, Мультук, ДенисСмирнов, X Leshiy, Галахад, Niveus, trooba, toypaul, Prog_man, q100, kir-g, who respawn, AAA, AlexKimp, NorthWind, H A D G E H O G s, АгентБезопаснойНацио, Timon1405, maxar, Mraque, maxab72, mortal, 2S, vicof, ryutao, arsik, zzz_zzz_zzz, takefive, reg0303, mTema32, ГдеСобакаЗарыта, TormozIT, banco, Dotoshin, 1cVandal, RomanYS, serpentt, oleg_km, Ivanich, Seriy_Volk, Tatitutu, Vstur, alexxx961503, Широкий, Phace, Климов Сергей, kiu, LuckyStar, Chai Nic, ОператорПК, obs191, nick86, b_ru, CepeLLlka, qwerty, ReaLg, , Fish, Gucci76, am_bubnov, panig759, RVN, SleepyHead, laeg, АнализДанных, Dedal, tir654, Гипервизор, JohnGilbert, spiller26, Поток сознания, Сергиус, Ногаминебить, MWWRuza, PLUT, Philix, shuhard, ДиВаH2, crotnn, kubik_live, Fragster, orakool, Elf_80_lvl, Михаил_, Fregat, Bad_Aleks, Crusher, integer, DemonShinji2, DrZombi
| ☑ | ||
|---|---|---|---|---|
|
0
toypaul
гуру
30.03.26
✎
13:09
|
Можно сказать первый раз пришлось столкнуться с загрузкой больших объемов на постоянной основе. Соот-но делаю через ФЗ.
Таблица значений (большая) на форме, в которой пользователь будет заполнять какие-то поля по умолчанию. Далее эту таблицу можно передать - Т.Выгрузить() напрямую параметров в ФЗ - РеквизитФормыВЗначение тоже напрямую (так, например, делается в типовой загрузке из файла) - Положить ТЗ во временное хранилище Есть также таблица, которую не нужно показывать пользователю. Ее сразу планирую положить в ХЗ и передавать адресом. |
|||
|
1
Chai Nic
30.03.26
✎
13:16
|
А что вам даст помещение таблицы во временное хранилище в плане её обработки фоновым заданием? Как ФЗ её вытащит?
|
|||
|
2
toypaul
гуру
30.03.26
✎
13:20
|
(2) я почем знаю? я ж не разработчик платформы. методы передачи разные. потому и спрашиваю какой из них предпочтительней.
|
|||
|
3
toypaul
гуру
30.03.26
✎
13:24
|
Насчет "большого" размер. Сейчас максимально файл экселя 400 тыс строк. Размер самого файла 88 Мб.
Не все из этого попадает в таблицу на форму - только новые артикулы. Но может быть тоже несколько сотен тысяч. Вот и вопрос РеквизитФормыВЗначение как делается в типовых это быстро, но может быть затратно по памяти? А через хранилище, например, может быть медленней, но менее затратно по памяти. Никуда гонять эту таблицу больше не нужно будет. Обработка в одном ФЗ. Ну может несколько потоков (и то не факт). Может не загоняться и сделать как в типовой через РеквизитФормыВЗначение? |
|||
|
4
Мультук
гуру
30.03.26
✎
13:35
|
(0)
А зачем здесь РеквизитФормыВЗначение ? &НаСервере
Процедура ПослатьНаТаблицуЗначений()
тз = ОченьБольшаяТаблицаНаформе;
//Что-то делаем
КонецПроцедуры
|
|||
|
5
toypaul
гуру
30.03.26
✎
13:38
|
(4) потому что таблица на форме. коллекцию я же не могу передать в ФЗ
|
|||
|
6
Мультук
гуру
30.03.26
✎
14:05
|
(5)
&НаСервере
Процедура ПослатьДалекоТаблицуЗначений()
//Затупил немного
//!тзКакОбычнаяТаблицаЗначений = ОченьБольшаяТаблицаНаформеКотораяКакКоллекция.Скопировать();
тзКакОбычнаяТаблицаЗначений = ОченьБольшаяТаблицаНаформеКотораяКакКоллекция.Выгрузить();
//Лень смотреть
Сообщить(Строка(типЗнч(ОченьБольшаяТаблицаНаформеКотораяКакКоллекция)));
Сообщить(Строка(типЗнч(тзКакОбычнаяТаблицаЗначений )));
//Что-то делаем
КонецПроцедуры
|
|||
|
7
Garykom
гуру
30.03.26
✎
13:53
|
(0) Если таблицы очень большие - лучше хранить в БД
Если с БД никак (нельзя РС или еще что добавить) можно в СУБД во временных таблицах (в фоновом крутится на МВТ) Передавать только изменения чтобы не таскать все |
|||
|
8
RomanYS
30.03.26
✎
13:58
|
(6) скорее всего ошибка будет)
Выгрузить() - чтобы получить ТЗ |
|||
|
9
toypaul
гуру
30.03.26
✎
14:00
|
(7) не. это изврат какой-то. не для этой задачи.
|
|||
|
10
Garykom
гуру
30.03.26
✎
14:04
|
(9) Тогда передавать через .Выгрузить() и смириться с тормозами
|
|||
|
11
H A D G E H O G s
30.03.26
✎
14:14
|
1. Потестировать ТЗ.
2. Если чет подозрительно - писать в РС с отбором по первому Измерению - УникальномуИдентификатору, которое генерится под каждую ТЗ и потом по нему считывать ТЗ в Фоновом и чистишь. Еще в РС можно писать Дату и иногда удалять записи, у которых дата прошлая, так как это мертвые фз. |
|||
|
12
toypaul
гуру
30.03.26
✎
14:25
|
(11) Понял. Находил какую-то древнюю тему 14го года с обсуждением этой темы. Там было про 12 млн строк.
Тут гораздо меньше. Я думаю остановится передачу ТЗ параметром. Тут же нет сериализации? А при помещении во врем. хранилище как я понял есть? Получается плохо помещать большие ТЗ во врем. хранилище что ли? У меня там вторая таблица еще больше. Она не для пользователя и чтобы при переходах туда-сюда ее не гонять (а там интерфейс с переходом Вперед-Назад) я ее помещаю. |
|||
|
13
SleepyHead
гуру
30.03.26
✎
14:30
|
(0) Помести исходный файл на сервер и работай с ним оттуда.
|
|||
|
14
toypaul
гуру
30.03.26
✎
14:33
|
(13) Так я вроде объяснил что есть часть файла, с которой пользователь должен работать. И вообще сначала анализируем файл (для чего его приходится целиком читать на клиенте), потом пользователь на этом основании производит настройки. И только потом загрузка. Нет автономности. Иначе не было бы таких вопросов.
|
|||
|
15
Fish
гуру
30.03.26
✎
14:33
|
(13) Всё равно надо на клиент передавать и обратно, чтобы пользователи могли с ней работать.
|
|||
|
16
Garykom
гуру
30.03.26
✎
15:15
|
Иногда хочется чтобы реквизиты и ТЧ обработок были доступны на сервере через язык запросов
Теоретически такое в платформе можно реализовать, как раз через временные таблицы в СУБД Живущие пока открыта обработка и сеанс |
|||
|
17
AlexKimp
30.03.26
✎
15:21
|
(16) Хм. Зачем тогда всю таблицу отправлять в ФЗ? Почему не отправить деревом структур только отредактированные строки? "400 тыс." Ну, допустим. Навряд ли пользователь за раз тыщ 100 обработает (это если я правильно проэкстрасенсил, чего там происходит с этими строками). Почему не организовать постраничную передачу данных на клиента? Странная история. Ресурсы надо экономить и грамотно балансировать между рантаймом и БД
|
|||
|
18
Мультук
гуру
30.03.26
✎
15:45
|
(17)
Объясните пожалуйста, зачем в этой задаче дерево ? Зачем в этой задаче массив структур ? И главное, зачем таблицу значений из (допустим) 100 тыс строк превращать в массив структур ? Какова цель и в каком месте будет экономия (и на чём) ? |
|||
|
19
AlexKimp
30.03.26
✎
15:48
|
(18) Так и не надо 100 тыс. Я пытаюсь понять, зачем вообще всё это нужно. Мне стало очень нехорошо уже на стадии ответа про 400 тыс строк. Каков смысл задачи? Если пазл в моей голове сошелся верно, то предлагается загрузить на форму файл экселя с диким количеством строк, пользователь чего-то там тыкает, вся таблица отправляется на сервер для помещения в ФЗ для обработки.
|
|||
|
20
Fedor-1971
30.03.26
✎
15:51
|
(14) Тогда нет смысла использовать фоновое задание.
Пользователь вчитал файлик, проанализировал и задал некие настройки - посидит 5 минут пока грузится файл (чаю успеет попить). Если очень надо - запустит параллельно ещё одну 1С и будет работать |
|||
|
21
Fedor-1971
30.03.26
✎
15:56
|
20+ А так, то для ФЗ (7) прав, загоняем в менеджер временных таблиц нужные строки и отправляем его в ФЗ
Получим, временную таблицу SQL и работаем в фоне с оной На запись в РС время нужно, но если строк замного, тогда имеет смысл поработать с ним |
|||
|
22
ДенисСмирнов
30.03.26
✎
15:55
|
(19) что там за оператор, который работает с ТЧ в "несколько сот тысяч строк". не просто жмет "ок, отправь всю эту хрень дальше", а что-то смотрит и видит
|
|||
|
23
Fedor-1971
30.03.26
✎
15:57
|
(22) Например, отбирает пустое подразделение и заполняет оное в строках
|
|||
|
24
maxab72
30.03.26
✎
15:59
|
(23) одно для всех пустых или вдумчиво изучат каждую строку?
|
|||
|
25
Мультук
гуру
30.03.26
✎
16:03
|
P.S.
Я в детстве ненавидел игру "испорченный телефон". А похоже зря |
|||
|
26
toypaul
гуру
30.03.26
✎
16:27
|
(19) Поскольку доступ к телу заказчика ограничен, то тут смысла я не вижу всю чепуху рассказывать которую придумали. Тут аналитики еще не с такой дичью приходят. А выпендриваться и учить уму разуму чужих аналитиков - время не то.
Пытаемся найти компромисс. Пользователи еще не с такой дичью приходят. Например, им файл этот в 400 тыс. ни жить ни быть нужен обратной с колонокой с результатами обработки. Никого не интересует, что смотреть это вряд ли кто-то будет. Надо и все тут. Я же написал, что это будет файл с новыми артикулами. Там будет присваиваться обязательно вид номенклатуры, и еще пара необязательных. Как они это собираются делать - мне не докладывали и не собираются. Поэтому моя задача - сделать, аналитика - запустить, пользователя в случае чего придти и попросить переделать. Или оставить как есть. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |