Каталог решений для 1С. Скачать

Бесплатные курсы по 1С
Бесплатные материалы по 1С:Бухгалтерии предприятия 2.0 и 3.0
Обработка в каталоге
Интерактивная ОСВ 3
Обработка на сайте

Автоматическое заполнение реквизитов контрагента по ИНН

В связи с изменениями на сайте "Контур-фокус" мы были вынуждены исправить нашу обработку. Сейчас она проходит бета-тест. Ориентировочный срок выхода новой версии - 20.09.2015.

Уважаемый Пользователь 1С!

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

Вы можете зарегистриро-ваться у нас на сайте и обратиться к нам со своими вопросами, и если ответ на него или решение у нас уже готово, мы можем с радостью подарить его Вам или отдать за символическую плату.

Заметки программиста 1С: Ошибка «Параметр сеанса отсутствует или удален». Варианты решения

В одном из проектов нам пришлось создавать внешнюю обработку, в которой необходимо было редактировать табличный документ.

В обработке было 2 формы. Одна — написанная «с нуля» нами, вторая — общая форма «РедактированиеТабличногоДокумента» из типовой конфигурации.

Вторая форма вызывалась примерно таким кодом:

лИмяОбработки = Х1С_ОБЩ_ПолучитьИмяОбработки ();

ПараметрыОткрытия = Новый Структура;

ПараметрыОткрытия.Вставить («ТабличныйДокумент», Х1С_ОБЩ_ПолучитьМакетОбработки(«Макет01″));

 

ПараметрыОткрытия.Вставить («ИмяМакетаОбработки», «Макет01″);

ПараметрыОткрытия.Вставить(«ТипМакета», «MXL»);

ПараметрыОткрытия.Вставить(«ПредставлениеМакета», «Макет-01″);

ПараметрыОткрытия.Вставить(«Редактирование», Истина);

ОткрытьФорму(«ВнешняяОбработка.»+лИмяОбработки+».Форма.ХП_РедактированиеТабличногоДокумента», ПараметрыОткрытия, ЭтотОбъект, Истина,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); // BUG платформы

При втором или третьем вызове формы выдавалась ошибка «Параметр сеанса отсутствует или удален. ID=…».

Ошибка "Параметр сеанса отсутствует или удален"

Ошибка «Параметр сеанса отсутствует или удален»

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

Решение 1:

Суть этого решения сводится к тому, чтобы все открываемые формы добавлять в массив, то есть код будет примерно такой:

&НаКлиенте

Перем мсФормы;

 

……..

&НаКлиенте

Процедура ПриОткрытии(Отказ)

мсФормы = Новый Массив;

КонецПроцедуры

 

Вызов формы:

лФорма = ОткрытьФорму(«ВнешняяОбработка.»+лИмяОбработки+».Форма.ХП_РедактированиеТабличногоДокумента», ПараметрыОткрытия,             ЭтотОбъект,Истина,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

мсФормы.Добавить (лФорма);

 

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

Решение 2:

Он сводится к тому, чтобы один раз получить форму, хранить на нее ссылку и вызывать метод Открыть ().

При этом очевидно, что событие «ПриСозданииНаСервере» вызываться не будет.

 Соображения по поводу самой ошибки:

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

 

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Каталог решений для 1С. Скачать

Введите адрес электронной почты:

Delivered by FeedBurner

Яндекс.Метрика