Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. *Read more...*

Bug #919779

open

8.3.13-22+ В конфигураторе при добавлении метода в расширение не сохраняются влияющие внешние инструкции препроцессора

Added by Сергей Старых almost 2 years ago. Updated 3 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

https://partners.v8.1c.ru/forum/t/1805687/m/1805687
https://bugboard.v8.1c.ru/error/000051170.html

Конфигурация ПО

8.3.13

Проблема

В конфигураторе при добавлении метода в расширение не сохраняются влияющие внешние инструкции препроцессора

Воспроизведение

Восстановить базу из выгрузки. Очистить в расширении конфигурации общий модуль. Открыть общий модуль конфигурации, компилируемый во всех контекстах (без вызова сервера)
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда

Процедура Сервер1()
Везде1();
КонецПроцедуры

Процедура Везде1() Экспорт
КонецПроцедуры

#КонецЕсли

Функция Тест() Экспорт
КонецФункции

и добавить его метод "Сервер1" в расширение. При этом инструкция препроцессора
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда

В модуль расширения помещена не будет. Таким образом будет расширен список контекстов компиляции расширенного метода. В теле расширения метода вписать вызов метода Везде1()
&После("Сервер1")
Процедура Расш1_Сервер1()
Везде1();
КонецПроцедуры

Синтаксический контроль выдает выдаст ошибки компиляции

{Расширение1 ОбщийМодуль.ОбщийМодуль1.Модуль(5,2)}: Процедура или функция с указанным именем не определена (Везде1)
<>Везде1(); (Проверка: Тонкий клиент) {Расширение1 ОбщийМодуль.ОбщийМодуль1.Модуль(5,2)}: Процедура или функция с указанным именем не определена (Везде1)
<>Везде1(); (Проверка: Веб-клиент)

Запустить тонкий клиент. При этом выполнится код
ОбщийМодуль1.Тест();

и будет выброшено исключение

Ошибка инициализации модуля: Расширение1 ОбщийМодуль.ОбщийМодуль1.Модуль
по причине: {Расширение1 ОбщийМодуль.ОбщийМодуль1.Модуль(5,2)}: Процедура или функция с указанным именем не определена (Везде1)
<>Везде1();

Считаю ошибкой то, что расширение метода делает его компилируемым в тех контекстах, в которых исходный метод не компилируется.


Files

Actions #1

Updated by Сергей Старых almost 2 years ago

  • Description updated (diff)
Actions #2

Updated by Сергей Старых 4 months ago

  • Subject changed from 8.3.13-19+ При добавлении метода в расширение не сохраняются влияющие внешние инструкции препроцессора to 8.3.13-19+ В конфигураторе при добавлении метода в расширение не сохраняются влияющие внешние инструкции препроцессора
  • Description updated (diff)
Actions #3

Updated by Сергей Старых 3 months ago

  • Subject changed from 8.3.13-19+ В конфигураторе при добавлении метода в расширение не сохраняются влияющие внешние инструкции препроцессора to 8.3.13-22+ В конфигураторе при добавлении метода в расширение не сохраняются влияющие внешние инструкции препроцессора

Also available in: Atom PDF