Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Расширения. Аннотация &Вместо.

Расширения. Аннотация &Вместо.
Я
   kachesov
 
03.10.16 - 21:23
1С:Предприятие 8.3 (8.3.9.1818)
Управление торговлей, редакция 11.2 (11.2.3.189)

Создал расширение. Добавил в него общий модуль "ПодключаемоеОборудованиеOfflineВызовСервера".

Добавил код для перехвата функции "ПриЗагрузкеОтчетаОРозничныхПродажах (Устройство, МассивДанных)":

&Вместо("ПриЗагрузкеОтчетаОРозничныхПродажах")
Функция Расширение1_ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных, СуммаД) Экспорт
...
КонецФункции

В результате получаю ошибку:

{Расширение1 ОбщийМодуль.ПодключаемоеОборудованиеOfflineВызовСервера.Модуль(1,9)}: Ожидается определение процедуры/функции
&Вместо <<?>>("ПриЗагрузкеОтчетаОРозничныхПродажах") (Проверка: Сервер)

Подскажите, в чем может быть проблема?
P.S.: Совместимость отключена.
 
 
   vde69
 
1 - 03.10.16 - 21:25
&Вместо
Функция ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных, СуммаД) Экспорт 
...
КонецФункции
   kachesov
 
2 - 05.10.16 - 12:31
(1) Так оно просто игнорируется.

Заявлен же формат:

&Вместо("Функция")
Функция Расш1_Функция(параметры)
...
КонецФункции
   Fragster
 
3 - 05.10.16 - 12:33
учитывая Расширения. Режим совместимости. - вероятно режим совместимости расширения < чем 8.3.9
   kachesov
 
4 - 05.10.16 - 12:38
(3) Да, стоит 8.3.6 как и у конфигурации.
Если менять на "Не использовать", получаю ошибку:

"РАНЖирение: Режим совместимости расширения конфигурации больше режима совместимости основной конфигурации"
   Fragster
 
5 - 05.10.16 - 12:39
(4) и рыбку съесть и на лошадке покататься не получится
   kachesov
 
6 - 05.10.16 - 12:41
(5) Т.е. для использования аннотации &Вместо необходимо менять режим конфигурации и расширения на "Не использовать"?
   Fragster
 
7 - 05.10.16 - 12:43
и иметь платформу 8.3.9
   Fragster
 
8 - 05.10.16 - 12:44
вообще режим совместимости 8.3.9, только он в этой платформе отображается как "не использовать". в 8.3.10 будет выглядеть как 8.3.9
   Feunoir
 
9 - 05.10.16 - 12:44
(4) У тебя должно стоять совместимость "Не использовать" в трёх местах. В самой конфигурации, в расширении и в заимствованном свойстве расширения.
   kachesov
 
10 - 05.10.16 - 12:51
(7) Это само собой)
(9) Всё взлетело! Огромное спасибо!

Один побочный эффект: при закрытии программы вылетает окно ошибки "Серверные вызовы при завершении работы запрещены"
 
 Рекламное место пустует
   kachesov
 
11 - 05.10.16 - 20:36
(9) Подскажите пожалуйста, возможно ли аннотацией &Возврат изменить колличество передаваемых переменных?

Я пишу для замены функции ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных):

&Вместо("ПриЗагрузкеОтчетаОРозничныхПродажах")
Функция РАНЖ_ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных, СуммаД) Экспорт

И получаю ошибку:
Слишком много фактических параметров
ОтчетОРозничныхПродажах = ПодключаемоеОборудованиеOfflineВызовСервера.ПриЗагрузкеОтчетаОРозничныхПродажах(

Или есть ли возможность как-то ещё передать переменную в функцию?
   Feunoir
 
12 - 05.10.16 - 20:40
(11) Если я правильно понял вопрос, то нет. Количество параметров в замещаемой и замещающей функции должно быть одинаковое.
   kachesov
 
13 - 05.10.16 - 20:42
(12) А передать его иначе незьзя?
Нет ли возможности куда-то записывать переменную в одной функции и вытаскивать её оттуда из другой?
   kachesov
 
14 - 05.10.16 - 20:47
(12) Можно конечно записывать её в файл, но это какая-то дикость..
   oleg_km
 
15 - 05.10.16 - 20:50
(13) Один из параметров превратить в структуру. Собственно это и способствовало созданию ООП, когда разрабочики поняли что они гоняют из процедуры в процедуру структуры.
   kachesov
 
16 - 05.10.16 - 21:09
(15) Отлично! Это работает. Спасибо!
   Torquader
 
17 - 05.10.16 - 21:33
(15) Вообще-то, так появился "контекст исполнения".
   oleg_km
 
18 - 05.10.16 - 23:18
(17) Тебе виднее. Я из "фундаментальных" вещей читал только Страуструпа, он примерно так объяснял один из мотивов, побудившие создать классы.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует