Висюки по моей вине

Как-то я делал доработку и вдруг по непонятной причине, программа стала зависать на выходе из процедуры.

Что я только не делал, а она зависала. Я даже сходил поужинал, но тем не менее, и спустя 15 минут программа висела.

Тогда я подумал и заметил, что программа виснет при выходе из сервера на клиент.

И тут я вспомнил, что запихнул в структуру Параметры таблицу значений. Таблица была довольно большая, видимо, поэтому, прежде чем поругаться на невозможность ее передачи на клиента, 1С зависала в раздумьях.

Отказываться от возможности иметь таблицу я не стал, просто поместил таблицу в хранилище:

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

Но тут меня ждало другое разочарование — когда программа возвращалась с клиента на сервер, моей таблицы уже не было. Пришлось добавить при помещении в хранилище уникальный идентификатор, чтобы таблица жила.

Да, при этом несколько захламляется память, но по сути, в идеале эта обработка выполняется из регламентного задания, т.е. долго не живет. Ну и потом я очищаю это хранилище, остаться в памяти оно может только при сбое.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. naf2000:

    Зачем таблица значений на клиенте? Что за гениальное решение?

    • Она на сервере, просто выполнение возвращается в клиента и потом опять идет на сервер

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *