Как переделать обработку в неуправляемую форму?

1. maxster545 13.11.14 11:18 Сейчас в теме
Есть обработка загрузки данных на управляемых формах. Возможно ли её как-то портировать в конфигурацию на неуправляемых формах без "допиливания"?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. seermak 665 13.11.14 11:25 Сейчас в теме
1. в конфигураторе отметить пункт "Использовать управляемые формы в обычном приложении"
2. загрузить обработку в конфигуратор.
5. maxster545 13.11.14 11:31 Сейчас в теме
(2) seermak, конфа на замке, галка установлена, но она даж не открывается :(
8. Boneman 298 13.11.14 11:32 Сейчас в теме
(5) maxster545, внешнюю, - так не сделать.
Только перепиливать под управляемые формы.
10. maxster545 13.11.14 11:33 Сейчас в теме
(2) seermak, ааа...вставить в конфу нужно?...блин..всё равно не получится..на замке она (...а снимать не хочется..
3. Boneman 298 13.11.14 11:28 Сейчас в теме
Так переделать, или просто вставить в конфу ?
4. maxster545 13.11.14 11:29 Сейчас в теме
6. Boneman 298 13.11.14 11:31 Сейчас в теме
(4) maxster545, если вставить - то как написал (2).
Только, все равно, останутся нюансы.
А если именно переделывать - то только перепиливать
9. maxster545 13.11.14 11:32 Сейчас в теме
(6) Boneman, ну там да, в модуле подправил некоторые нюансы...
7. maxster545 13.11.14 11:32 Сейчас в теме
(3) Boneman, главное чтоб работала)
11. seermak 665 13.11.14 11:35 Сейчас в теме
вот какртинка
установи поддержку с изменениями
Прикрепленные файлы:
14. maxster545 13.11.14 11:44 Сейчас в теме
(11) seermak, не хочется замок снимать)) мало ли)
12. AlexInqMetal 77 13.11.14 11:36 Сейчас в теме
вообще как правило конфигурации на УФ и обычных формах довольно сильно отличаются, не только интерфейсом, но в том числе и по составу объектов, соответственно даже если получится все таки запустить обработку то это будет примерно то же что запустить обработку для бухгалтерии в торговле, не факт что она будет работать без переделки.
13. maxster545 13.11.14 11:43 Сейчас в теме
(12) AlexInqMetal, тогда следующий вопрос...как кусок кода переделать под обычное приложение..на что конкретно нужно обратить внимание?
 &НаКлиенте
 Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	 Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	 Диалог.Фильтр="*.xml|*.xml";
	 Диалог.Заголовок = "Выберите файл загрузки";
	 Диалог.ПолноеИмяФайла = Объект.ИмяФайла;
	 Диалог.Каталог="\\Путь";
	 Если Диалог.Выбрать() Тогда
		 Объект.ИмяФайла=СокрЛП(Диалог.ПолноеИмяФайла);
	 КонецЕсли;
 КонецПроцедуры
 
 &НаКлиенте
 Процедура КнопкаВыполнитьНажатие(Команда)
	 
	
	Если НЕ ЗначениеЗаполнено(Объект.Фирма) Тогда
    	 ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не выбрана фирма");
    	 Возврат;
 	КонецЕсли;
	 
	 СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
	 ws = НСтр(СтрокаСоединения, "ws");
	 ИмяСервера = НСтр(СтрокаСоединения, "Srvr");
	 Если ИмяСервера = "" Тогда
		 Если ws = "" Тогда
			 ПередачаФайлаНаСервер = Ложь;
		 Иначе
			 ПередачаФайлаНаСервер = Истина;
		 КонецЕсли;
	 Иначе
		 ПередачаФайлаНаСервер = (ИмяКомпьютера() <> ИмяСервера);
	 КонецЕсли;
	 
	 АдресХранилища = "";
	 Если ПередачаФайлаНаСервер Тогда
		 ПоместитьФайл(АдресХранилища, СокрЛП(Объект.ИмяФайла),, Ложь, УникальныйИдентификатор);
	 КонецЕсли;
	 
	 ПереходимНаСервер(ПередачаФайлаНаСервер, АдресХранилища);
	 
 КонецПроцедуры
 
 &НаСервере
 Процедура ПереходимНаСервер(ПередачаФайлаНаСервер, АдресХранилища)
	 
	 ОбработкаЭта=РеквизитФормыВЗначение("Объект"); 
	 ОбработкаЭта.ЭтотОбъект.Загрузить(ПередачаФайлаНаСервер, АдресХранилища);
 КонецПроцедуры
 
 &НаКлиенте
 Процедура ПриОткрытии(Отказ)
	 
	 Объект.Фирма = ЗаполнитьЗначениеПоУмолчанию("Фирма");
	 
 КонецПроцедуры
 
 &НаСервере
 Функция ЗаполнитьЗначениеПоУмолчанию(ТипЗначения)
	 
	 Если ТипЗначения = "Фирма" Тогда
		 
		 Возврат Справочники.Организации.НайтиПоКоду("00-000001");
	 Иначе	
		 
	 КонецЕсли;
	 
 КонецФункции

Показать


Ругается на: Объект, УникальныйИдентификатор, РеквизитФормыВЗначение
15. ediks 335 13.11.14 12:49 Сейчас в теме
(13) Ну, во первых замените Объект на ЭтотОбъект или просто уберите Объект.
Уберите директивы &НаКлиенте, &НаСервере - они все равно не нужны.
РеквизитФормыВЗначение нужно выбросить и писать сразу что-то типа
ЭтотОбъект.Загрузить(ПередачаФайлаНаСервер, АдресХранилища);


Ну, как-то так приблизительно.
16. maxster545 13.11.14 13:09 Сейчас в теме
17. maxster545 13.11.14 13:37 Сейчас в теме
(15) ediks, не подскажете, как быть с такого вида конструкцией:

Если ЧтениеXML.ТипУзла=ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя="Склады" Тогда
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Загружаем справочники Склады");
       Если Не ЗагрузитьСклады(ЧтениеXML) Тогда
          возврат Ложь;
       КонецЕсли;
КонецЕсли;

Ошибка - Если Не ЗагрузитьСклады(ЧтениеXML) невозможно преобразовать к Булево
ЗагрузитьСклады(ЧтениеXML) - это отдельная функция.
18. Boneman 298 13.11.14 13:40 Сейчас в теме
(17) maxster545,
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Загружаем справочники Склады");

Это вызов общей процедуры в управляемом приложении.
В вашей конфе такой может вообще не быть.
можно заменить просто на Сообщить
21. maxster545 13.11.14 13:49 Сейчас в теме
(18) Boneman, точно ведь, ОбщегоНазначенияКлиентСервер..
19. miniogn 23 13.11.14 13:47 Сейчас в теме
А может просто включить возможность открытия управляемых форм в обычном режиме?...
20. maxster545 13.11.14 13:49 Сейчас в теме
(19) miniogn, можно, но в таком случае нужно замок убирать, а этого делать не хочется )
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот