Имя: Пароль:
1C
1С v8
Работа с расширениями 1С
0 location
 
naïve
13.09.21
15:49
Ошибка при выполнении расширения, ругается ошибка применения модуля ..... не соотвествует методу.
Но при этом выполняется нужная процедура с директивой ИзменениеИКонтроль.
Все выполняется правильно, только всех смущает ошибка, она появляется 1 раз когда запустить базу, следующий раз после следующего запуска.
Можно как то избавиться от нее?
1 ДенисЧ
 
13.09.21
15:53
Можно. Исправить расширение.
2 runoff_runoff
 
13.09.21
16:00
&Вместо
3 location
 
naïve
13.09.21
16:01
(2) &Вместо такая же ошибка.
4 location
 
naïve
13.09.21
16:01
(1) как исправить?
5 VladZ
 
13.09.21
16:04
(4) План такой:
1. Прочитать внимательно ошибку.
2. Открыть код
3. Основательно подумать.
4. Исправить.
6 runoff_runoff
 
13.09.21
16:18
(4) скопировать процедуру полностью с директивой &Вместо..
исправить куски кода. где надо.. поставить свои комментарии.. чтобы при следующем обновлении не забыть..
7 location
 
naïve
13.09.21
16:27
Подскажите как правильно переделать изначально процедура была такая
УчетЗарплатыПереопределяемый.ДополнитьТаблицуЗарплатыАналитикойБухУчета(ТаблицаЗаработнойПлаты)
переделал на такую, т.к. необходимо было добавить доп данные
УчетЗарплатыПереопределяемый.Доп1_ДополнитьТаблицуЗарплатыАналитикойБухУчета(ТаблицаЗаработнойПлаты, ПериодРегистрации);
Если у последней процедуры убрать период регистрации, тогда не ругается.
8 runoff_runoff
 
13.09.21
16:39
состав параметров заимствованной процедуры не должен меняться..
9 ДенисЧ
 
13.09.21
16:42
(7) "как правильно переделать"
Для начала документацию почитать...
10 runoff_runoff
 
13.09.21
16:44
(7) надо создать общий модуль в расширении.. туда написать новую процедуру по образу и подобию оригинальной.. и сделать вызов этой новой процедуры..
11 acht
 
13.09.21
16:48
(10) И попутно затащить в расширение еще пару десятков модулей, зависимые процедуры из которых внезапно станут экспортными =)
Кстати даже интересно стало, "экспорт" в сигнатуру входит? Не будет ли опять той же проблемы?
12 acht
 
13.09.21
16:50
(7) Переписываешь свою расширяемую процедуру так, чтобы она принимала на вход в ТаблицаЗаработнойПлаты структуру. Проверяешь тип параметра.
Если прилетает не структура, то это обычный вызов, надо отрабатывать все по старому. Если структура, то извлекаешь оттуда свои ТаблицаЗаработнойПлаты и ПериодРегистрации и делаешь то, что хотел.
13 runoff_runoff
 
13.09.21
16:56
(11) это навскидку.. думаю.. там всё проще.. но пусть сами разбираются
14 runoff_runoff
 
13.09.21
16:58
(12) вызов тоже придется переделывать..
15 acht
 
13.09.21
17:08
(14) Естественно. А как он иначе, даже в своей исходной постановке, будет свой новый параметр ПериодРегистрации передавать?