|   |   | 
| 
 | Ошибка при вызове метода контекста Неизвестная функция | ☑ | ||
|---|---|---|---|---|
| 0
    
        espanol 28.11.22✎ 08:30 | 
        Всем привет!
 Такая вот ошибка. Обработка внешняя, если нет заказов которые мы ищем на сервере в запросе, то вылазит такая вот ошибка: Ошибка при вызове метода контекста (ПроверкаЗаказовДляСборкиНаСервере): Неизвестная функция. Функция "ПроверкаЗаказовДляСборкиНаСервере" &НаКлиенте Функция ПроверкаЗаказовДляСборки() ПОПЫТКА Если ФормаПроверкиЗаказовДляСборкиОткрыта = Ложь Тогда ЕстьЗаказы = ПроверкаЗаказовДляСборкиНаСервере(Объект.Магазин); Если ЕстьЗаказы = Истина Тогда ФормаПроверкиЗаказовДляСборкиОткрыта = Истина; ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Магазин", Объект.Магазин); ОбработчикОповещения = Новый ОписаниеОповещения("ОповещениеОткрытьФормуФормаСбораЗаказов", ЭтотОбъект); Режим = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс; ОткрытьФорму(ПолноеИмяОбъекта + ".Форма.ФормаСбораЗаказов", ПараметрыФормы, УникальныйИдентификатор,,,, ОбработчикОповещения, Режим); КонецЕсли; КонецЕсли; ИСКЛЮЧЕНИЕ Сообщить(ОписаниеОшибки()); КОНЕЦПОПЫТКИ; КонецФункции &НаСервереБезКонтекста Функция ПроверкаЗаказовДляСборкиНаСервере(МагазинРМК) УстановитьПривилегированныйРежим(Истина); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВложенныйЗапрос.ДокументОснование КАК ДокументОснование, | ВЫБОР | КОГДА ВложенныйЗапрос.Закрыт ЕСТЬ NULL | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК Закрыт |ПОМЕСТИТЬ ОстаткиПоЗаказам |ИЗ | (ВЫБРАТЬ | _ЗаказыКлиентовОстатки.ДокументОснование КАК ДокументОснование, | ЛОЖЬ КАК Закрыт | ИЗ | РегистрНакопления._ЗаказыКлиентов.Остатки КАК _ЗаказыКлиентовОстатки | ГДЕ | _ЗаказыКлиентовОстатки.Магазин = &Магазин | И _ЗаказыКлиентовОстатки.ДокументОснование.ВыводитьВСборку = ИСТИНА | | СГРУППИРОВАТЬ ПО | _ЗаказыКлиентовОстатки.ДокументОснование) КАК ВложенныйЗапрос | |ИНДЕКСИРОВАТЬ ПО | ДокументОснование |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | РезультатСборки.ЗаказКлиента КАК ЗаказКлиента, | РезультатСборки.ЗаказОтправленВИМНаСборку КАК ЗаказОтправленВИМНаСборку, | РезультатСборки.ТипСборки КАК ТипСборки |ПОМЕСТИТЬ РезультатСборки |ИЗ | РегистрСведений.РезультатСборки КАК РезультатСборки |ГДЕ | РезультатСборки.ЗаказКлиента.Магазин = &Магазин | И РезультатСборки.ЗаказКлиента.ВыводитьВСборку = ИСТИНА | |ИНДЕКСИРОВАТЬ ПО | ЗаказКлиента |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | _ЗаказКлиента.Ссылка КАК Ссылка, | ВЫБОР | КОГДА ОстаткиПоЗаказам.Закрыт ЕСТЬ NULL | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК Поле1 |ПОМЕСТИТЬ ЗаказыДляСбора |ИЗ | Документ._ЗаказКлиента КАК _ЗаказКлиента | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений._СтатусыДокументов.СрезПоследних КАК _СтатусыДокументовСрезПоследних | ПО _ЗаказКлиента.Ссылка = _СтатусыДокументовСрезПоследних.Документ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиПоЗаказам КАК ОстаткиПоЗаказам | ПО _ЗаказКлиента.Ссылка = ОстаткиПоЗаказам.ДокументОснование |ГДЕ | _ЗаказКлиента.Проведен | И _ЗаказКлиента.Магазин = &Магазин | И _СтатусыДокументовСрезПоследних.Статус В (ЗНАЧЕНИЕ(Перечисление._СтатусыДокументов.ОжидаетСамовывоза), ЗНАЧЕНИЕ(Перечисление._СтатусыДокументов.ОжидаетКомплектацию)) | И ОстаткиПоЗаказам.Закрыт = ЛОЖЬ | И _ЗаказКлиента.Источник = ЗНАЧЕНИЕ(Перечисление._ИсточникЗаказа.Сайт) | И _ЗаказКлиента.ВыводитьВСборку = ИСТИНА | |СГРУППИРОВАТЬ ПО | _ЗаказКлиента.Ссылка, | ВЫБОР | КОГДА ОстаткиПоЗаказам.Закрыт ЕСТЬ NULL | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | |ИНДЕКСИРОВАТЬ ПО | Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗаказыДляСбора.Ссылка КАК ЗаказКлиента, | РезультатСборки.ТипСборки КАК ТипСборки |ИЗ | ЗаказыДляСбора КАК ЗаказыДляСбора | ЛЕВОЕ СОЕДИНЕНИЕ РезультатСборки КАК РезультатСборки | ПО ЗаказыДляСбора.Ссылка = РезультатСборки.ЗаказКлиента |ГДЕ | ЕСТЬNULL(РезультатСборки.ЗаказОтправленВИМНаСборку, ЛОЖЬ) = ЛОЖЬ | И ЗаказыДляСбора.Ссылка.Дата >= &Дата"; Запрос.УстановитьПараметр("Магазин", МагазинРМК); Запрос.УстановитьПараметр("Дата", Дата(2022,06,01)); Результат = Запрос.Выполнить().Выгрузить(); Возврат ?(Результат.Количество() = 0, Ложь, Истина); УстановитьПривилегированныйРежим(Ложь); КонецФункции В чем может быть причина? | |||
| 1
    
        Ryzeman 28.11.22✎ 08:36 | 
        Ты бы лучше полный текст ошибки скинул, и кусок модуля на который ругается платформа где ты её вызываешь. Запускаешь в УФ?     | |||
| 2
    
        espanol 28.11.22✎ 08:37 | 
        (1) Собственно говоря это и выложил, все выше )     | |||
| 3
    
        Галахад гуру 28.11.22✎ 08:39 | 
        Не кэш случайно?     | |||
| 4
    
        Ryzeman 28.11.22✎ 08:41 | 
        (2) Нет. Подробный текст ошибки с названиями модулей и где не может найти. Типа того
 Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма по причине: {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(8,14)}: Процедура или функция с указанным именем не определена (МояКласснаяФункция) Результат = <<?>>МояКласснаяФункция(); Хотя если бы косяк в директивах был, тебе и записать не дало бы... Наверное (3) прав. | |||
| 5
    
        espanol 28.11.22✎ 08:41 | 
        У меня повторить ошибку не получается, она есть только у пользователей, ито не у всех.
 Конечно же это УФ. В своей тестовой базе разворачивал, тестировал под этими пользователя, ошибки нет, платформа 1С:Предприятие 8.3 (8.3.18.1741). (3) Думаю нет, больше похоже на глюк платформы... | |||
| 6
    
        Ryzeman 28.11.22✎ 08:43 | 
        (5) Обработка - встраиваемая? На ней есть элементы пользовательских настроек?     | |||
| 7
    
        espanol 28.11.22✎ 08:45 | 
        (6) Обработка внешняя, находится в справочнике ДополнительныеОтчетыИОбработки. Ну это собственно говоря РМК Розница. Очень много реквизитов формы.     | |||
| 8
    
        Ryzeman 28.11.22✎ 08:47 | 
        (7) Ну, чистить кэши и пользовательские настройки тогда) Есть способ простой, но не очень красивые-  измени идентификатор и переименуй обработку. Для клиентов она будет якобы новой и всё заново загрузится и обновится как надо     | |||
| 9
    
        espanol 28.11.22✎ 08:51 | 
        (8) да, идентификатор можно поменять, у пользователей ничего страшного не произойдет? )     | |||
| 10
    
        Мимохожий Однако 28.11.22✎ 08:52 | 
        У функции должен быть Возврат     | |||
| 11
    
        Ryzeman 28.11.22✎ 08:52 | 
        (9) слетят все настройки что они делали, сортировки списков, история заполнения и т.п.     | |||
| 12
    
        Ryzeman 28.11.22✎ 08:52 | 
        (10) У него он есть)
 >> Возврат ?(Результат.Количество() = 0, Ложь, Истина); | |||
| 13
    
        espanol 28.11.22✎ 09:16 | 
        Либо можно серверную функцию вынести в общий модуль... хотя другие аналогичные функции работаю без проблем...     | |||
| 14
    
        Kassern 28.11.22✎ 09:21 | 
        (12) А ничего, что УстановитьПривилегированныйРежим(Ложь);  указан после возврата? Или он автоматом закрывается, после того как из функции уходит?     | |||
| 15
    
        espanol 28.11.22✎ 09:23 | 
        (14) делал для теста и до возврата и после )     | |||
| 16
    
        Kassern 28.11.22✎ 09:24 | 
        (15) Кэш чистили у пользователей, под которыми ошибка возникает?     | |||
| 17
    
        Ryzeman 28.11.22✎ 09:26 | 
        (14) На самом деле ничего, потому что
 >>он автоматом закрывается, после того как из функции уходит но я люблю закрывать, что б не думалось))) | |||
| 18
    
        Kassern 28.11.22✎ 09:35 | 
        И еще вопросик по поводу привилегированного режима - он же вроде не работает во внешних обработках, если мне память не изменяет?     | |||
| 19
    
        НЕА123 28.11.22✎ 09:39 | 
        (18)+1
 и зачем привилегированный режим? вроде везде разрешенные. | |||
| 20
    
        espanol 28.11.22✎ 09:42 | 
        (18) (19) просто тестил, а что?     | |||
| 21
    
        НЕА123 28.11.22✎ 10:51 | 
        (20)
 попытку исключение на сервере тоже надо. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |