Вход | Регистрация
 
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 человек.