|
Расширения. Аннотация &Вместо.
|
Я
|
|
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) Тебе виднее. Я из "фундаментальных" вещей читал только Страуструпа, он примерно так объяснял один из мотивов, побудившие создать классы. |