Имя: Пароль:
1C
1С v8
Расширения. Аннотация &Вместо.
0 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.: Совместимость отключена.
1 vde69
 
03.10.16
21:25
&Вместо
Функция ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных, СуммаД) Экспорт
...
КонецФункции
2 kachesov
 
05.10.16
12:31
(1) Так оно просто игнорируется.

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

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

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

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

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

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

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

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