Имя: Пароль:
1C
1С v8
Почему тонкий клиент не видит процедуру?
0 Omskdizel
 
12.01.26
00:25
Возможно баян, но я ответа не нашел.
1С:Предприятие 8.3 (8.3.25.1520)
Внешняя обработка.
Модуль формы:


&НаКлиенте
Процедура ОбработатьФайл(Команда)
    
    Путь = "D:\Базы\Возвраты.xlsx";
    Таб = Новый ТабличныйДокумент;
    Таб.Прочитать(Путь);
    Номер = 2;
    
    Пока СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C1").Текст) <> "" Цикл
        
        ДатаОплаты = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C12").Текст);
        
        Если ДатаОплаты = "" Тогда
            Номер = Номер + 1;
            Продолжить;
        КонецЕсли;
        
        Отказ = Ложь;
        
        НомерДоговора         = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C1").Текст);
        ДатаДоговора         = ПолучитьДату(СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C2").Текст), Отказ);
        Фамилия             = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C3").Текст);
        Имя                 = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C4").Текст);
        Отчество             = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C5").Текст);
        НаименованиеУслуги     = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C6").Текст);
        СтоимостьУслуги     = Число(СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C7").Текст));
        НомерТелефона         = СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C9").Текст);
        ДатаЗаявления         = ПолучитьДату(СокрЛП(Таб.Область("R" + Формат(Номер, "ЧГ=0") + "C11").Текст), Отказ);
        
        Наименование = Фамилия + ?(Имя = "", "", " " + Имя) + ?(Отчество = "", "", " " + Отчество);
        
        Контрагент = СоздатьКонтрагентаНаСервере(Наименование, НомерТелефона);
        Договор = СоздатьДоговорНаСервере(Контрагент, НомерДоговора, ДатаДоговора);
        
        Номер = Номер + 1;
        
    КонецЦикла;
    
КонецПроцедуры


В модуле обработки (в модуль формы тоже пробовал положить)


&НаСервере
Функция СоздатьКонтрагентаНаСервере(Наименование, НомерТелефона)
    
    Возврат Неопределено;
    
КонецФункции

&НаСервере
Функция СоздатьДоговорНаСервере(Контрагент, НомерДоговора, ДатаДоговора)
    
    Возврат Неопределено;
    
КонецФункции

Выдает ошибку:
{ВнешняяОбработка.ЗагрузкаВозвратов.Форма.Форма.Форма(53,16)}: Процедура или функция с указанным именем не определена (СоздатьКонтрагентаНаСервере)
        Контрагент = <<?>>СоздатьКонтрагентаНаСервере(Наименование, НомерТелефона); (Проверка: Тонкий клиент)
{ВнешняяОбработка.ЗагрузкаВозвратов.Форма.Форма.Форма(54,13)}: Процедура или функция с указанным именем не определена (СоздатьДоговорНаСервере)
        Договор = <<?>>СоздатьДоговорНаСервере(Контрагент, НомерДоговора, ДатаДоговора); (Проверка: Тонкий клиент)

Уже везде потыкался, ничего найти не могу. Возможно сплю, ибо ночь. Подтолкните в нужном направлении плиз.
1 Timon1405
 
12.01.26
00:28
2 Omskdizel
 
12.01.26
00:41
(1) Я дико извиняюсь, но это к чему? Немного пояснений можно?
3 Web00001
 
12.01.26
04:26
(2)Форма ничего не знает про сам объект. Реквизит "Объект", это не сам объект, а его представление. В (1) код как получить объект обработки, чтобы стали доступны методы(процедуры функции), которые в нем описаны. Функции описанные на форме, должны быть видны без приседаний. Единственное, что если контекст тебе не нужен, то на сервере должно быть без контекста.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший