Ошибка при вызове метода контекста в 1с что значит
Перейти к содержимому

Ошибка при вызове метода контекста в 1с что значит

  • автор:

Ошибка при вызове метода контекста (ПараметрыРаботыКлиентаПриЗапуске)

Здравствуйте.
Зарплата и управление персоналом, редакция 3.1 (3.1.10.135)
Нетиповая, клиент-сервер.

При запуске обычного приложения (ОП) в толстом клиенте (ТК) просходит ошибка:
Техническая информация об ошибке записана в журнал регистрации.
Ошибка при вызове метода контекста (ПараметрыРаботыКлиентаПриЗапуске).

Открываю журнал регистрации и вижу:
Возникла исключительная ситуация при запуске программы. Запуск программы аварийно завершен.

<ОбщийМодуль.СтандартныеПодсистемыКлиентПовтИсп.Модуль(56)>: Ошибка при вызове метода контекста (ПараметрыРаботыКлиентаПриЗапуске)
ПараметрыКлиента = СтандартныеПодсистемыВызовСервера.ПараметрыРаботыКлиентаПриЗапуске(Параметры);
по причине:
Попытка передачи мутабельного значения результата метода ПараметрыРаботыКлиентаПриЗапуске ().
____________________________________________________________ ­___________________________________________
Что делал:
1. Ставил «остановка по ошибке» — обычное приложение закрывается не успев открыться.
2. Ставил точку останова в ОбщийМодуль.СтандартныеПодсистемыКлиентПовтИсп.Модуль(56). Проходил до конца все итерации. Итог — обычное приложение закрывается не успев открыться.

Ошибка выполнения отчета "Расчет по стразовым взносам" в последнем релизе ЗУП 2.5 КОРП

Здравствуйте. Используется последний релиз Зарплата и управление персоналом КОРП, редакция 2.5 (2.5.184.1). Платформа 1С:Предприятие 8.3 (8.3.18.1289).
Формируется регламентный отчет «Расчет по страховым взносам» за 1-й квартал 2023 г.. Отчет формируется по новой форме, ошибок не возникает. Но при попытке заполнить отчет по соответствующей кнопке возникает ошибка «Во время заполнения отчета произошла ошибка: Ошибка при вызове метода контекста (Выполнить)». Никакой дополнительной информации не указывается, в журнале регистрации также никакой информации по ошибке нет. В отладчике видно, что ошибка возникает в процедуре “РасчетПоказателей_РСВ_2023», на этапе выполнения запроса, когда обрабатывается свойство «ЧисленностьЗастрахованныхВРазрезеТарифов2023». Отследить детально сложно, одно из подозрений, что не заполнены какие-то справочные данные, хотя вроде как тарифы заполнены.
Возможно нужно сделать какие-то дополнительные настройки для выполнения этого отчета, но какие – непонятно.
Может быть, кто-то сталкивался с этой ошибкой, подскажите пожалуйста пути решения. Или же, может быть, это ошибка релиза?

Николай Иванов ,
Проблема в общем модуле «ЗаполнениеРегламентированнойОтчетности» процедуре «РасчетПоказателей_РСВ_2023»
в этом коде (здесь ничего не отбирается):

|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацииЗанимающиесяОбщепитом),
| Доходы.Период,
| Доходы.ФизЛицо
|ИЗ
| ВТЗастрахованныеЛицаОрганизации КАК Доходы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТВидыТарифныхСтавокОрганизаций КАК ВидыТарифныхСтавокОрганизаций
| ПО Доходы.Период = ВидыТарифныхСтавокОрганизаций.Период
|ГДЕ
| Доходы.ЗастрахованПФР
| И ЕСТЬNULL(ВидыТарифныхСтавокОрганизаций.ВидТарифаСтраховыхВзносов, ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОбщийНалоговыйРежим)) = ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацииЗанимающиесяОбщепитом)
| И Доходы.ВидТарифаСтраховыхВзносов В (ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацииЗанимающиесяОбщепитом), ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОбщийНалоговыйРежим))
и этом (обращение к «КодыТарифов», похоже нет соединения с временной таблицей):

|//////////////////////////////////////////////////////////// ­////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗастрахованныеНаОПС.ВидТарифаСтраховыхВзносов КАК ВидТарифаСтраховыхВзносов,
| ЕСТЬNULL(КодыТарифов.Код, «»??»») КАК КодТарифа,
| МЕСЯЦ(ЗастрахованныеНаОПС.Период) КАК Период,
| ЗастрахованныеНаОПС.ФизЛицо КАК ФизЛицо,
| 1 КАК КоличествоОПС
|ПОМЕСТИТЬ ВТЗастрахованныеПоМесяцам
|ИЗ
| ВТЗастрахованныеНаОПС КАК ЗастрахованныеНаОПС»;
И еще в форме «ФормаОтчета2023Кв1» самого отчета процедуре «ФормаОтчета2023Кв1» (цикл по неопределенно) в э
том коде;

Для Каждого ДопСтрока Из ДопСтрокСтраницы Цикл
СвойстваМнЧУровня2 ­ = СвойстваМногострочныхЧастей.Найти(ДопСтрока.Ключ, «ИД»);
Если СвойстваМнЧУровня2 <> Неопределено Тогда
СвойстваМнЧУ ­ровня2.ТекущееКоличествоСтрок = 0;
КонецЕсли;
КонецЦикла;

АйТиБложик

ПроверитьВывод() — это метод табличного документа, который проверяет, умещаются ли переданные табличные документы на страницу при печати. В примечании у этого метода разработчики платформы 1С сразу написали, что при возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.

Проверил установленные принтеры, все исправно и работает. Эмпирическим путем выяснил, что данная ошибка возникает только у конкретной печатной формы и только под одним пользователем.

Ошибка решилась следующими действиями (выполнять под пользователем, у которого возникла ошибка):
1) Создал пустой документ, что бы при формировании печатной формы не был задействован метод ПроверитьВывод(). Если же этот метод в любом случае вызывается, то придется его найти в конфигурации и закомментировать, или же поместить в конструкцию Попытка-Исключение-КонецПопытки.

1. Помещение ПроверитьВывод в попытку

2) Сформировал печатную форму.

2. Пустая печатная форма (кол-во товаров = 0)

3) Для текущей печатной формы открыл параметры страницы и установил правильные параметры.

3. Параметры страницы

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

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

UPD 04/10/2015: Если устанавливать свойство КлючПараметровПечати в конце формирования табличного документа, то метод ПроверитьВывод будет использовать параметры печати установленные по-умолчанию, а не пользовательские. Что бы избежать данной ситуации, необходимо устанавливать свойство КлючПараметровСистемы в начале формирования табличного документа, а метод ПроверитьВывод поместить в конструкцию Попытка-Исключение-КонецПопытки.

При обращении к http-сервису ошибка "Ошибка при вызове метода контекста (Выполнить)"

Сделал такую интеграцию:
1. на http-сервис приходит GET-запрос с id-документа на сайте
2. http-сервис запускает функцию в общем модуле и передает в нее id-документа
3. функция проверяет нет ли такого документа в 1С (запрос к БД) и если нет создает новый документ.

Проблема:
При отправке запроса с id-документа из домашней сети сервера все работает как часы. Причем аутентификация не требуется: просто строка в браузере.
При отправке из любой внешней сети, например, с postman запрос проходит через http-сервис запускает функцию в общем модуле, но при попытке выполнить первый запрос в коде к БД выдает ошибку: "Ошибка при вызове метода контекста (Выполнить)". При этом в запросе происходит авторизация под пользователем у которого есть админские права + еще некоторые.

В чем может быть проблема? У меня ощущение, что это что-то связанное с правами.

Что показывает отладчик ?

А покажи ка, плиз, текст функции.

У тебя сервис. И похоже ни логов, ни обработок ошибок.

>>> Смотрел, ничего там нет
>>> У тебя сервис. И похоже ни логов, ни обработок ошибок.

После того, как всё работает, но через какое-то время ВДРУГ ломается в продакшене, обычно начинают прикручивать и логи и нормальные сообщения об ошибках.

P.S.
Нельзя впихнуть невпихуемое (c) DED

(4) — у меня расширение: привилегированный нельзя сделать — галка неактивна
(7) "После того, как всё работает, но через какое-то время ВДРУГ ломается в продакшене, обычно начинают прикручивать и логи и нормальные сообщения об ошибках." — знаю. Но я только учусь, с 1С 1,5 месяца. Пока не разобрался как в моем случае делать логирование и обработки ошибок, но планирую это сделать позже в любом случае.

Как думаете, как понять какие все-таки права нужно выдать пользователю, чтобы не было избыточных прав?

1) Я бы не стал учиться сразу с расширений. В 1С и без них полно всякого непонятного для неофита (нюансы, ага)
2) Я бы не стал учиться, не имея доступа к отладчику. Сделал бы копию базы, скопировал бы сервис в конфигурацию и там проводил бесчеловечные эксперименты
3) Если учишься (это учебная база) — дай полные права пользователю и не мучайся. Напиши бумажку со словами "НЕЛЬЗЯ давать полные права!", приклей на монитор
И пообещай себе "потом сделать правильно".

Слона нужно кушать по частям

(9) — Спасибо попробую
(10) — Пока у меня тестовая база, в прод переведу через пару недель, сроки поджимают. Права, видимо, придется постепенно методом научного тыка чистить.

Возникла также очередная проблема с postmana все проходит, а вот с моего сайта — нет, причем получаю ошибку 500. Хотя http-сервис работает и без вызова функции в общем модуле возвращает 200. Т.е. какая то ошибка в логическом модуле, нужно ее как-то посмотреть, но вот как не соображу.

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

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