Имя: Пароль:
1C
 
Заполнение табличной части обработки из фонового задания.
0 НоваяВолна
 
23.04.25
15:54
Есть внешняя обработка, в табличную часть которой по кнопке заполняются ссылки на документы Заказов с проверкой существуют ли по этим заказам реализации и счета фактуры.
   Загружаются только те заказы, у которых отсутствуют связанные документы.
Из-за большого количества заказов, а также из-за низкой производительности сервера клиента эта операция занимает достаточно продолжительное время.
  Появилась идея использовать фоновое задание для заполнения табличной части обработки.
Но тут возникают сложности. В фоновое задание я не могу передать форму для её заполнения, так как платформа не может её сериализовать.  

  Толкните меня в нужном направлении, можно ли заполнить ТЧ из фонового и как?
1 arsik
 
гуру
23.04.25
16:00
(0) Ну так и зачем туда засовывать форму? Передай в фоновое адрес хранилища + вызов функции клиента по окончании. На клиенте, когда фоновое завершится с хранилища прочитай результат
Научитесь уже гуглить наконец. Первая ссылка
https://forum.infostart.ru/forum9/topic200657/
2 Мультук
 
гуру
23.04.25
16:03
(0)

0) Имя и версия конфигурации
1) Функция заполнения написана в самой обработке ?
2) Обработка совсем внешняя (через файл открыть) ?
3) Или дополнительная обработка ?
4) Может дело в коде заполнения ?
3 НоваяВолна
 
23.04.25
16:04
(1) Спасибо. Знал бы в каком направлении гуглить нашел бы.
До того как вы добавили ссылку уже начинал гуглить в этом направлении.
4 НоваяВолна
 
23.04.25
16:06
(2)
0) 1С:Бухгалтерия хлебобулочного и кондитерского предприятия, редакция 3.0 (3.0.166.17)
1) Заполнение в обработке
2,3) Обработка внешняя, подключенная
4) Что имелось ввиду про код заполнения?
5 Web00001
 
23.04.25
16:14
Что имелось ввиду про код заполнения?

(4)Может проблема не с сервером, а с тем как ты получаешь данные? Поэтому операция занимает достаточно продолжительное время?
6 Мультук
 
гуру
23.04.25
16:23
(0)

Я бы гуглил так

google:
infostart бсп фоновые задания внешняя обработка
7 arsik
 
гуру
23.04.25
16:58
8 rozer76
 
23.04.25
17:17
>>Но тут возникают сложности. В фоновое задание я не могу передать форму для её заполнения, так как платформа не может её сериализовать.  

вся логика заполнения на клиенте в форме ? Тогда никакие фоновые не помогут пока на сервер не перепишите...
9 НоваяВолна
 
23.04.25
19:09
(8) На сервере идет отбор необходимых документов с проверкой, что у них нет связанных документов. А потом список надо заполнить на форму. Т.е. на клиент передаются только ссылки на документы. При этом чтобы пользователь мог во время этой длительной операции работать (делать что-то другое) и подумал использовать фоновое задание. Вопрос стоял только в том, как отобранный в фоновом задании на сервере список передать на клиент и заполнить ТЧ.
10 Мультук
 
гуру
23.04.25
19:39
(9)

>> на сервере список передать на клиент и заполнить ТЧ.

&НаСервере же заполнить таб.часть формы никак ?
11 craxx
 
23.04.25
21:14
(9)
Временное хранилище уже упразднили?
И накой из фонки на клиент? На сервере же и заполняй.
12 Rovan
 
гуру
24.04.25
09:37
(0) " по кнопке заполняются ссылки на документы Заказов с проверкой существуют ли по этим заказам реализации и счета фактуры."
ты нам рассказываешь не всю задачу !
зачем заполнить этот список ?
если там 5000 документов то что потом пользователь делает с ними ?
13 АгентБезопасной Нацио
 
24.04.25
09:41
(12) а потом, исходя из собственного "чувства прекрасного", например, пользователь распределяет заказы по  маршрутам/расставляет приоритеты/ удаляет/красит в синий цвет/и т.п.

Т.е. пока чувство прекрасного еще не формализовано и не автоматизировано.
14 программистище
 
24.04.25
09:45
решать задачу удаляя зуб через жоny
это как-то неправильно
отправка в фоновое задание обычно не ускоряет работу пользователя, т.к. он однозадачен, и не стремится делать задачи параллельно
снова угнанный аккаунт?
15 craxx
 
24.04.25
09:47
(14) кто-то и многозадачен. Запустил формирование, и айда бить фактуру.
16 программистище
 
24.04.25
09:49
(15) так то можно и два клиента запустить
17 craxx
 
24.04.25
09:50
(16) лицензии не бесконечны..
18 программистище
 
24.04.25
09:53
(17) про лицухи, да, не подумал
такой проблемы нет когда на 60 челвоек больше 100 лицух, да еще 50 из них железка, которая позволяет запускать без ограничений на соединение
19 АгентБезопасной Нацио
 
24.04.25
09:56
Вообще, я б, наверное, сделал РС заказов, в который при записи релизации/счф писал бы связку заказ-реализация-сф. И тогда можно динамическим списком отображать
20 программистище
 
24.04.25
09:57
просто если сервер слабенький то и документов то может не так много, может решение неправильное, выбирать не одним запросом, а запросм в цикле и т.д.
а теперь свое изначально неправильное решение запихать в фоновое
21 Rovan
 
гуру
24.04.25
10:14
(14) точно!
есть такая проблема в части подхода использования 1С:
вывести в список или таб документ 5000 строк
сохранить это в Excel
и потом упорно искать глазами там что-то нужное
в итоге найти за 25 минут 2 нужные строки
покрасить их желтым фоном и отправить почтой др сотруднику
22 craxx
 
24.04.25
10:22
(18) как правило, покупают впритык
23 Rovan
 
гуру
24.04.25
10:25
(0) покажи запрос который
"с проверкой существуют ли по этим заказам реализации и счета фактуры."
24 НоваяВолна
 
24.04.25
12:59
(12)
1) Пользователь получает с портала  +100500 заказов от разных торговых сетей.
2) Этой обработкой выбирает те, на которые еще не оформлены реализации и счет-фактуры.
3) Выбирает нужные или все (галочки проставляет) и кнопкой "Создать реализацию" формирует по выбранным заказам реализации и счет-фактуры
4) По этим реализациям сразу на принтер кнопкой выводятся все необходимые печатные формы
25 Garykom
 
гуру
24.04.25
13:11
(24) можно спросить а зачем тут пользователь?
если это все автоматизируется да?
26 АгентБезопасной Нацио
 
24.04.25
13:15
(24) EDI без использования интеграционных обработок провайдера?
27 АгентБезопасной Нацио
 
24.04.25
13:19
(25) по одним заказам товар на складе есть, по другим еще в пути, по третьим части товара нет, и будем отгружать только имеющееся, по четвертым товар на складе есть, но специально под заказ идет поставка (которая еще в пути), которую будем отгружать кроссдокингом... Там далеко не все формализуется
28 НоваяВолна
 
24.04.25
14:24
(27) Товар есть всегда, склад один.
  Товаром являются хлебобулочные изделия, которых выпекают столько, что не успевают все продать. То что не продано, списывают
29 программистище
 
24.04.25
15:36
Тем более если есть список заказаов которые грузятся, там их не так много, чтобы проверить в текущей базе запросом ограниченный список, а если это занимает  больше секунды, тогда проблема в запросе, алгоритме, и структуре данных (индексации)
и фоновое задаение здесь не требуется
30 АгентБезопасной Нацио
 
24.04.25
16:12
(28) тогда что мешает сразу формировать документы?
31 НоваяВолна
 
24.04.25
19:45
(30) не пойму зачем спрашиваешь весь процесс работы предприятия? Вопрос не в этом, а в (0)

Дополнительно
В этом же фоновом задании хочу сформировать расчет процента выполнения операции выбора документов и показать на форме Прогресс-бар

(29) Заказы грузятся с web-портала в БП за период. Это ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ и т.д. Каждая торговая сеть (Магнит, Лента, Ашан, Агроторг) выбирает список нужного ей товара и высылает список заказов, в разрезах [Номенклатура, Количество] на каждую торговую точку своей сети.
Отсюда заказов +100500 каждый день.
32 АгентБезопасной Нацио
 
24.04.25
19:53
(31) я не спрашиваю, я советую. Ибо вы удаляете зуб через жопу, причем обратными плоскогубцами...  
Есть правила работы с EDI, есть соотв. методология... Но можете продолжать свою анальную стоматологию. "вам можно"©
33 НоваяВолна
 
24.04.25
20:24
(32) Советуй!!! Только таким же АНАЛиткам как сам.
Причем здесь правила EDI, если обработка формирует документы РЕАЛИЗАЦИЯ внутри БП?
34 Djelf
 
гуру
24.04.25
20:28
Соревнование будет? Или так... просто поговорили?
35 НоваяВолна
 
24.04.25
20:31
(34) я пас. Не я это начал и продолжать желания нет.
36 Maniac
 
24.04.25
23:24
(0) длительное время это сколько?
Даже у меня 100 000 строк загрузки с кучей сложной логики это 1 минута.

А у тебя сколько? Если ты 1000 строк не можешь обработать за 10 секунд то весь твой код - овно.

И вообще фиолетово какой сервер, какая 1С... вообще все.
37 Maniac
 
24.04.25
23:20
Наверняка циклы,в циклах запросы.... даже уже сходу понимаю в чем суть твоих тормозов...
38 Maniac
 
24.04.25
23:23
У меня тут клиент в шоке от радости.

У него 2000 строк экселя, но 4500 колонок!

Это на секунду 90 миллионов ячеек. причем очень сложных - так как свойства. А свойства в 1С это кабзец!!!

Это табличная часть, это сложная фигня виды- наборы- свойства. Это составные типы, со справочниками, строками и тд и тп..


И при всем этом он в шоке что все эта канитель максимум 3 минуты грузится с полной точностью.
39 Maniac
 
24.04.25
23:32
Пришел тут клиент, мол проблемы. Год целый чего то не может добится. ПРограммист работает днями и ночами.

Ок - говорю - скинь то что он там творит. Скинули.

Глянул... и думаю... ну где они его нашли... Все в мусорку. буквально все.

Но работать не стал. Сказал что и за сколько сделаю. А нафиг мне задаром работать???? Нет - ну пусть дальше долбятся. Уже сколько млн отдали (год работы), пусть и дальше отдают вечность.

Идиоты клиенты думают - что лучше платить долго за что то... Так дешевле))) Логика железная но смешная)) А главное как в ловушке, уже хода назад нет - когда что то плачено частями за 3-5 месяцев и еще ждать "всего то столько же".... Типа блин облом - уже же потратили, и осталось "немного" )))) смешно))
Но итог все равно один - все в мусорку и по новой)_
40 НоваяВолна
 
25.04.25
07:31
(37) Маня, не гневи бога. запросы в цикле я не пишу
41 АгентБезопасной Нацио
 
25.04.25
08:08
(34) Не, не будет. Бесполезно. Ибо "как говорит наш любимый шэф, если человек - идиот, то это надолго"©. Оно работает внутри БП-хлебобулка с "Универсальный модуль ЭДО (EDI+DocLink+VetFlow v.1.0)", и спрашивает "причем тут EDI?" (впрочем, оно даже сообщения об ошибках, написанные русским языком понять не может)
42 Garykom
 
гуру
25.04.25
09:43
(40) Все пишут запросы в циклах
Просто некоторые даже об этом не знают
43 Волшебник
 
25.04.25
09:50
У профессионалов запросы в циклах не тормозят. (с) моё
44 Eiffil123
 
25.04.25
10:52
(19) тоже сразу на ум пришло - динамический список и регистр сведений
45 НоваяВолна
 
25.04.25
18:40
(41) я удивлен уровнем твоей аналитики.
Прочитал предыдущие мои темы, ничего не понял,НО высказался

Конфигураций ДВЕ:
1) 1С:Бухгалтерия хлебобулочного и кондитерского предприятия, редакция 3.0 (3.0.166.17)
2} 1С:Универсальный модуль ЭДО (EDI+DocLink+VetFlow v.1.0) 1С компании CISLINK (8.3.01.035b41)

В данной ветке речь идет про БП. Уже есть полученные с EDI Заказы, которые надо загнать в обработку. А обработка создает Реализации и СчФ
46 Maniac
 
25.04.25
20:03
"Появилась идея использовать фоновое задание для заполнения табличной части обработки.
Но тут возникают сложности. В фоновое задание я не могу передать форму для её заполнения, так как платформа не может её сериализовать."

в чем тебе проблема создать табличную часть обработки твоей (объекта).

Даже если у тебя тамблица формы - что тебе мешает создать в модуле твой обработки процедуру с (параметром таблицы). Еслди интерактивная обработка - то передаешь таблцу формы, если фоновая - то сам генерируешь таблицу значенйй программно и кидаешь ее в обработку.

А в фоновом задании там где ты какую то таблицу делаешь - ну делай ее  программно!
47 Maniac
 
25.04.25
20:02
И вообще ничего не понятно что зха проблема в этой теме, никакой конкретики нет.

Помогите сделать то, не знаю что.

Кидай обработку и все станет ясно.
48 Maniac
 
25.04.25
20:06
фоновое задание - по любому общий модуль.

В нем генерируешь ТЗ свою (такую же как у тебя в обработке - я так понял формы, хотя тебе тогда надо просто делать ТЧ обьекта). Но раз уже сделал таблицу формы.

Ну тогда и в глобальнике своем прописывай ее программно всю. Потом заполняй что хоч...

а в обработке у тебя я так понял какие то процедуры в модуле. Ты же туда по любому передаешь таблицу параметром. Ну вот и передавай.

А если будет ТЧ обьекта обработки. то и передавать ничо не надо.
49 ProxyInspector
 
26.04.25
21:48
Задача простая. Время реализации 30 мин.
1. Делаешь фоновое задание, которое формирует ТаблицуЗначений. И запускаешь его. Это же задание может формировать Прогрес.
2. В конце выполнения фонового задания помещаешь ТаблицуЗначений в ХранилищеОбщихНастроек. Для красоты через минуту после окончания удаляешь ТаблицуЗначений из ХранилищаОбщихНастроек.
3. В своей обработки с помощью ОбработчикаОжидания ловишь момент когда ТаблицаЗначений доступна и грузишь ее в свою форму. Можешь удалить ТаблицуЗначений из ХранилищаОбщихНастроек.
50 НоваяВолна
 
27.04.25
12:21
(49) Звучит красиво, попробую, но уже завтра
51 НоваяВолна
 
27.04.25
19:18
(42) это их худые черти мутят воду во пруду
     это все придумал Черчилль в 18 году...
52 d4rkmesa
 
27.04.25
20:59
Хмм, и все-таки, если все так, как описано в (31), в чем сложность сделать так (пример для БСП3 до сих пор должен работать)? https://infostart.ru/1c/tools/525648/
Вот еще варианты: https://infostart.ru/1c/tools/2376188/
https://infostart.ru/1c/tools/2302643/
Или у вас нетиповая конфа без БСП и внешнюю обработку открываете через Файл-Открыть?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн