|
|
Почему тонкий клиент не видит процедуру?
Krendel, qwerty, kir-g, ДенисСмирнов, Timon1405, Kobol, shuhard, Гипервизор, SleepyHead, Мультук, minsk1s, denk, WhiteDragon93, dyevgeniy, программистище, BOOL, toypaul, KJlag, Omskdizel, MWWRuza, Chai Nic, Федя Тяпкин, Amra, Tefal, АЛьФ, Fedor-1971, formista2000, orakool, dmt, 1с_ник, zenik, DimVad, DiMel_77, Ногаминебить, crotnn, Волшебник, Bazooka, vicof, U4Me2, Михаил_, fserg84, arsik, GreyK, maxab72, rbcvg, craxx, JohnGilbert, Lama12, МаленькийВопросик, Хряк, hunter76, X Leshiy, obs191, 2mugik, Новиков, nick86, Rovan, Бычье сердце, Ненавижу 1С, Климов Сергей, yurikmellon2, Anchorite, Niveus, Crusher, stix2010, p-soft, tir654, paramedic, Radion, mTema32, DemonShinji2, АгентБезопаснойНацио, LLeonidov, mortal, Sanchez_22, Hawk_1c, kostik79, okmail, Шурик71, Флориан, Web00001, maxar, unenu, phabeZ, Eiffil123, elka302, AndreyZhukov, denk32, DeeK, dergreche, Silgis, Chameleon1980, Amfiaray, Кир Пластелинин, sikuda, Mr_Boogie, turrist, tomvlad, ads55, tartarya, TormozIT, Sabron, Prog_man, 2S, Asmody, abfm, Лодырь, dedmoroz777, PuhUfa, RVN
| ☑ |
|
0
Omskdizel
12.01.26
✎
07:18
|
Возможно баян, но я ответа не нашел.
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) код как получить объект обработки, чтобы стали доступны методы(процедуры функции), которые в нем описаны. Функции описанные на форме, должны быть видны без приседаний. Единственное, что если контекст тебе не нужен, то на сервере должно быть без контекста.
|
|
|
4
Волшебник
12.01.26
✎
07:17
|
(0) В модуле формы размести
|
|
|
5
Asmody
12.01.26
✎
07:23
|
[в модуль формы тоже пробовал положить] – врёшь
|
|
|
6
Chameleon1980
12.01.26
✎
08:57
|
у тебя в базе есть такая-же подключенная БСП обработка?
|
|
|
7
Omskdizel
12.01.26
✎
10:47
|
(3) Я не настолько хорош в понимании механизмов внутрянки, но есть простой аргумент. Когда создаешь команду в обработке, выскакивает окошко, где и как создать, типа "Создать на клиенте" или "Создать на клиенте и процедуру на сервере". И все работает без такого костыля. Прямо в модуле формы. Я даже не поленился и открыл старые свои обработки. В них все замечательно сосуществует в одной куче. Разница с нынешней только в том, что я сделал просто процедуру на клиенте. Ну и на сервере не процедуры, а функции. Но это же не должно влиять. Я безусловно попробую предложенный вариант, возможно он даже заработает, но глубоко уверен, что должно работать и без подобного извращения.
(6) Не понял вопроса
|
|
|
8
Omskdizel
12.01.26
✎
10:51
|
(4) Малость оффтопа. Пишу редко и вечно забываю какими тегами код обрамлять. В Правилах и Описании про это сейчас нет ни слова. Раньше, помню, было. Можно этот важный пункт добавить куда-нибудь?
|
|
|
9
Rovan
гуру
12.01.26
✎
10:52
|
ТабДок.Прочитать - доступен только на сервере !
1С:Предприятие 8.3 (8.3.25.1520)
а конфигурация какая ?
|
|
|
10
Anchorite
12.01.26
✎
11:08
|
(8) Рядом с полем "Добавить сообщение" галочка "оформление", там с картинками.
|
|
|
11
Omskdizel
12.01.26
✎
11:19
|
(9) Неправда ваша, дяденька! Объект доступен везде, на Прочитать ограничение только по формату читаемого и только в мобильном клиенте.
(10) Не поверите, пробовал. Можете сказать, какая из кнопок занимается выделением кода?
|
|
|
12
Omskdizel
12.01.26
✎
11:21
|
(9) Хотелось бы безотносительно конфигурации. Технически - Бухгалтерия предприятия, редакция 3.0 (3.0.181.18)
|
|
|
13
Маленький Вопросик
12.01.26
✎
11:25
|
Ты запаролить модуль чтоли хочешь обработки? Сервером через объект обращайся к своей функции
|
|
|
14
Rovan
гуру
12.01.26
✎
11:27
|
|
|
|
15
Гипервизор
12.01.26
✎
11:28
|
(11) Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
|
|
|
16
Маленький Вопросик
12.01.26
✎
11:28
|
(14) +
|
|
|
17
Omskdizel
12.01.26
✎
12:15
|
(14)(15)(16) Ребят, нет проблем с чтением xls. Он замечательно читается, все данные берутся. Проблема с вызовом серверных функций. Приведенный код абсолютно рабочий, кроме вызова сервера.
(15) Не знаю, где вы это берете, но у меня у ТабличныйДокумент написано:
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
|
|
|
18
Omskdizel
12.01.26
✎
12:18
|
(14) Я не проверял, но простая логика не дает мне покоя. Мы узнаем путь к файлу на клиенте. А потом, по этому локальному пути открываем файл на сервере? Ну, например, получили мы путь как у меня в коде "D:\Базы\Возвраты.xlsx". Но это путь клиентской машины. На сервере то он как откроется по такому пути?
|
|
|
19
Omskdizel
12.01.26
✎
12:25
|
(13) Не понял вопроса. Я хочу с клиента вызвать серверную функцию, чтобы она совершила ряд сугубо серверных деяний и вернула ссылку на результат своей работы. Это стандартное желание программиста. При чем тут запаролить? Как я обращусь сервером, если серверная функция не видна?
|
|
|
20
Omskdizel
12.01.26
✎
12:29
|
Короче, я не понимаю, что не нравилось системе.
Сделал процедуру в модуле объекта. Не видит.
Перенес процедуру в модуль формы - заработало!
Переделал в функцию - опять работает.
Я похоже всех впустую перебаламутил, в чем очень извиняюсь. Сейчас буду допиливать.
|
|
|
21
Гипервизор
12.01.26
✎
12:30
|
(17) Очень хорошо, что нет проблем с чтением xls, с этим я и не спорю. Но есть разница между доступностью ТабличныйДокумент и ТабличныйДокумент.Прочитать().
|
|
|
22
Волшебник
12.01.26
✎
12:36
|
(8) тег <PRE>
|
|
|
23
Timon1405
12.01.26
✎
13:00
|
(20) в МО процедура экспортная должна быть, в МФ не обязательно
|
|
|
24
Omskdizel
12.01.26
✎
13:21
|
(22) Спасибо. Как бы еще это запомнить :) Методом научного тыка подобрал квадратнаяскобочка1Сквадратнаяскобочка.
|
|
|
25
Omskdizel
12.01.26
✎
13:14
|
(23) Вроде пробовал и это не помогло. Но у меня похоже 1С была не в духе, раз такую дичь творила.
|
|