Имя: Пароль:
1C
1С v8
Расширение не видит функции общего модуля
0 windows98a
 
22.10.18
13:42
День добрый.

Был написан код, он работал, но через какое то время перестал. База еще не боевая, изменения копятся. Что именно мог сломать не пойму.

Суть в том, что в модуле менеджера документа есть заимствованные в расширение процедуры. Из этих заимствованных процедур идет обращение к функциям общего модуля. Аналогичные обращения, к этим же функциям, идет и из соответствующих процедур, которые были заменены расширением, то есть код обращения вообще не модифицировался, в просто тупо копировался из оригинальной процедуры модификации подвергался код ниже. Сам общий модуль в расширение не заимствовался и модификации в основной конфигурации не подвергался.

Еще раз повторюсь - изначально всё работало. Вроде как изменений, которые могли зацепить - не вносилось.

Есть у кого предположения?
1 windows98a
 
22.10.18
13:46
новая информация - пробелема возникает только в толстом клиенте.
Видимо до этого тестировал только в тонком.
Кстати 8.3.11.3034
2 windows98a
 
22.10.18
13:50
Ошибка инициализации модуля: НоменклатураРасширенный Документ.ОтчетОРозничныхПродажах.МодульМенеджера
по причине:
{НоменклатураРасширенный Документ.ОтчетОРозничныхПродажах.МодульМенеджера(134,10)}: Переменная не определена (ПроведениеСерверУТ)
    Если НЕ <<?>>ПроведениеСерверУТ.ЕстьТаблицаЗапроса("ВтАгентскиеУслуги", ТекстыЗапроса) Тогда
{НоменклатураРасширенный Документ.ОтчетОРозничныхПродажах.МодульМенеджера(214,10)}: Переменная не определена (ПроведениеСерверУТ)
    Если НЕ <<?>>ПроведениеСерверУТ.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
{НоменклатураРасширенный Документ.ОтчетОРозничныхПродажах.МодульМенеджера(135,3)}: Процедура или функция с указанным именем не определена (ТекстЗапросаВтАгентскиеУслуги)
        <<?>>ТекстЗапросаВтАгентскиеУслуги(Запрос, ТекстыЗапроса);
{НоменклатураРасширенный Документ.ОтчетОРозничныхПродажах.МодульМенеджера(138,2)}: Процедура или функция с указанным именем не определена (ИнициализироватьКлючиАналитикиУчетаНоменклатуры)
    <<?>>ИнициализироватьКлючиАналитикиУчетаНоменклатуры(Запрос);
3 windows98a
 
22.10.18
14:04
поставил у модуля ПроведениеСерверУТ вызовсервера - проблема ушла. Такое ощущение, что В РАСШИРЕНИИ модульменеджера обрабатывается на клиенте, а В ОСНОВНОЙ - на серврере
4 windows98a
 
22.10.18
14:05
имеется в виду в толстом клиенте
5 RomanYS
 
22.10.18
14:14
(3) в "основной" модуль менеджера в толстом клиенте отрабатывает в том контексте, откуда его вызвали. Про расширение ничего не скажу.
6 windows98a
 
22.10.18
14:17
Поведение программы в тонком и толстом клиенте разное. Поведение одного и того же кода в расширении и без него тоже разное.
Удобная штука - расширения, но они добавили вопросов))
7 PiotrLoginov
 
22.10.18
14:21
модуль, методы которого нужны, серверный?   Флаг "Вызов сервера" стоит ?
8 Cyberhawk
 
22.10.18
14:55
В модуле менеджера отчета инструкции препроцессора никто не отменял
9 Cyberhawk
 
22.10.18
14:55
И модуле менеджера документа тоже
10 Вафель
 
22.10.18
14:57
(9) те при переопределении серверного модуля менеджера происходит передача на толстый клиент?
11 windows98a
 
22.10.18
14:59
Получается я неправильно сформулировал название темы. Не видит не процедуры, а не видит сам модуль. "Переменная не определена (ПроведениеСерверУТ)".
12 windows98a
 
22.10.18
15:00
(7) вызов сервера не стоит, но менять основную конфигурацию на хотелось бы, а поставить чисто в расширении нельзя.
но установка флага проблему решает(см. сообщение 3)
13 windows98a
 
22.10.18
15:01
(9) я же не новые процедуры описываю, а перехватываю существующие.  и в основной конфигурации тот же код отрабатывает правильно
14 Вафель
 
22.10.18
15:01
а ту тебя тонкий клиент или как?
15 windows98a
 
22.10.18
15:06
в тонком клиенте отрабатывает ВСЁ без проблем. проблемы начались в толстом
16 Cyberhawk
 
22.10.18
15:06
(10) Хз, что там за передача и куда и про что ты. Ошибка-то на этапе компиляции кода расширения происходит. Компилятор тупо смотрит текст модуля менеджера расширения и видит обращения к ОМ, которые из-за отсутствия инструкций ему не доступны
17 Cyberhawk
 
22.10.18
15:06
(13) "в основной конфигурации тот же код отрабатывает правильно" // Конечно. Ведь там инструкции имеются.
18 windows98a
 
22.10.18
15:09
(17) их там нет
19 RomanYS
 
22.10.18
15:11
(18) похоже (17) прав. В БП3 весь модуль менеджера РТиУ сидит в
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
20 windows98a
 
22.10.18
15:12
текст из основной


Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
    
    ИмяРегистра = "ДвиженияСерийТоваров";
    
    Если НЕ ПроведениеСерверУТ.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
        Возврат "";
    КонецЕсли;
21 windows98a
 
22.10.18
15:13
текст из расширения

&Вместо("ТекстЗапросаТаблицаДвиженияСерийТоваров")
Функция Номенклатура_ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
    
    ИмяРегистра = "ДвиженияСерийТоваров";
    
    Если НЕ ПроведениеСерверУТ.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
        Возврат "";
    КонецЕсли;
22 RomanYS
 
22.10.18
15:14
(20) поищи "#Если" в модуле менеджера, оно относится к области, а не конкретной функции
23 windows98a
 
22.10.18
15:15
(22) есть в начале модуля менеджера
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
24 windows98a
 
22.10.18
15:17
добавил аналогично в модуль расширения - проблема ушла
25 Cyberhawk
 
22.10.18
15:18
Автор баклан какой-то
26 windows98a
 
22.10.18
15:18
благодарю.
Видимо нужно лучше учить матчасть, никоргда бы не предположил такого поведения
27 windows98a
 
22.10.18
15:19
(25) что значит баклан))?
28 Cyberhawk
 
22.10.18
15:22
(27) Разговорное для тугодум / глупец, а так это птица
29 windows98a
 
22.10.18
15:23
(28) ааа, согласен ,есть такое дело)) ну ьыл бы другой - разобрался бы сам
30 windows98a
 
22.10.18
15:23
спасибо!
31 RomanYS
 
22.10.18
15:24
(28) Скажи как зоолог, к какому виду относится ТС Примитивный запрос, в консоле работает, в конфе выборка пустая.
10+ лет на форуме, обход выборки запроса не осилил.
32 Вафель
 
22.10.18
15:27
интересно, а в каких если режима, кроме (23) может быть модуль менеджера?
33 RomanYS
 
22.10.18
15:32
(32) в толстом клиенте он доступен на клиенте, собственно из-за этого вся тема.
34 Cyberhawk
 
22.10.18
15:43
(31) О, это редкое явление Сибири :) "Семерочник-кустарщик"?
35 Вафель
 
22.10.18
15:46
(33) толстый клиент управляемое приложение?
36 RomanYS
 
22.10.18
15:48
(35) да
37 RomanYS
 
22.10.18
15:49
(34) В точку! Я думал, они вымерли)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.