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


#0 by kachesov
Управление торговлей, редакция 11.2 (11.2.3.189) Создал расширение. Добавил в него общий модуль "ПодключаемоеОборудованиеOfflineВызовСервера". Добавил код для перехвата функции "ПриЗагрузкеОтчетаОРозничныхПродажах (Устройство, МассивДанных)": &Вместо("ПриЗагрузкеОтчетаОРозничныхПродажах") Функция Расширение1_ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных, СуммаД) Экспорт ... КонецФункции В результате получаю ошибку: {Расширение1 ОбщийМодуль.ПодключаемоеОборудованиеOfflineВызовСервера.Модуль(1,9)}: Ожидается определение процедуры/функции &Вместо <<?>>("ПриЗагрузкеОтчетаОРозничныхПродажах") (Проверка: Сервер) Подскажите, в чем может быть проблема? P.S.: Совместимость отключена.
#1 by vde69
... КонецФункции
#2 by kachesov
Так оно просто игнорируется. Заявлен же формат: ... КонецФункции
#3 by Fragster
учитывая - вероятно режим совместимости расширения < чем 8.3.9
#4 by kachesov
Да, стоит 8.3.6 как и у конфигурации. Если менять на "Не использовать", получаю ошибку: "РАНЖирение: Режим совместимости расширения конфигурации больше режима совместимости основной конфигурации"
#5 by Fragster
и рыбку съесть и на лошадке покататься не получится
#6 by kachesov
Т.е. для использования аннотации &Вместо необходимо менять режим конфигурации и расширения на "Не использовать"?
#7 by Fragster
и иметь платформу 8.3.9
#8 by Fragster
вообще режим совместимости 8.3.9, только он в этой платформе отображается как "не использовать". в 8.3.10 будет выглядеть как 8.3.9
#9 by Feunoir
У тебя должно стоять совместимость "Не использовать" в трёх местах. В самой конфигурации, в расширении и в заимствованном свойстве расширения.
#10 by kachesov
Это само собой) Всё взлетело! Огромное спасибо! Один побочный эффект: при закрытии программы вылетает окно ошибки "Серверные вызовы при завершении работы запрещены"
#11 by kachesov
Подскажите пожалуйста, возможно ли аннотацией &Возврат изменить колличество передаваемых переменных? Я пишу для замены функции ПриЗагрузкеОтчетаОРозничныхПродажах(Устройство, МассивДанных): И получаю ошибку: Слишком много фактических параметров ОтчетОРозничныхПродажах = ПодключаемоеОборудованиеOfflineВызовСервера.ПриЗагрузкеОтчетаОРозничныхПродажах( Или есть ли возможность как-то ещё передать переменную в функцию?
#12 by Feunoir
Если я правильно понял вопрос, то нет. Количество параметров в замещаемой и замещающей функции должно быть одинаковое.
#13 by kachesov
А передать его иначе незьзя? Нет ли возможности куда-то записывать переменную в одной функции и вытаскивать её оттуда из другой?
#14 by kachesov
Можно конечно записывать её в файл, но это какая-то дикость..
#15 by oleg_km
Один из параметров превратить в структуру. Собственно это и способствовало созданию ООП, когда разрабочики поняли что они гоняют из процедуры в процедуру структуры.
#16 by kachesov
Отлично! Это работает. Спасибо!
#17 by Torquader
Вообще-то, так появился "контекст исполнения".
#18 by oleg_km
Тебе виднее. Я из "фундаментальных" вещей читал только Страуструпа, он примерно так объяснял один из мотивов, побудившие создать классы.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С