Висюки по моей вине
Как-то я делал доработку и вдруг по непонятной причине, программа стала зависать на выходе из процедуры.
Что я только не делал, а она зависала. Я даже сходил поужинал, но тем не менее, и спустя 15 минут программа висела.
Тогда я подумал и заметил, что программа виснет при выходе из сервера на клиент.
И тут я вспомнил, что запихнул в структуру Параметры таблицу значений. Таблица была довольно большая, видимо, поэтому, прежде чем поругаться на невозможность ее передачи на клиента, 1С зависала в раздумьях.
Отказываться от возможности иметь таблицу я не стал, просто поместил таблицу в хранилище:
//Осипов КАССЫ 20200325
//Сохраняем в прайс-листе таблицу к выгрузке
Если оса_ПравилаРасчетаЦенКэшСеанса.ВключенаДоработаннаяВыгрузкаИзмененийНаКассу() Тогда
ПрайсЛист.Вставить(«оса_ТоварыКВыгрузке_Адрес», ПоместитьВоВременноеХранилище(ТоварыКВыгрузке));
ПрайсЛист.Вставить(«оса_Параметры», Параметры);
КонецЕсли;
Но тут меня ждало другое разочарование — когда программа возвращалась с клиента на сервер, моей таблицы уже не было. Пришлось добавить при помещении в хранилище уникальный идентификатор, чтобы таблица жила.
Да, при этом несколько захламляется память, но по сути, в идеале эта обработка выполняется из регламентного задания, т.е. долго не живет. Ну и потом я очищаю это хранилище, остаться в памяти оно может только при сбое.
Зачем таблица значений на клиенте? Что за гениальное решение?
Она на сервере, просто выполнение возвращается в клиента и потом опять идет на сервер