Имя: Пароль:
1C
1С v8
копирование элементов формы документа, справочника на форму обработки.
0 User123456
 
09.05.14
14:48
Всех с праздником!!!
Нашел вот такой примерчик.
Процедура КнопкаВыполнитьНажатие(Кнопка)
  
   Перем СтарКнопка;
  
   СколькоЯХочуКнопок = 10;
   СколькоВКолонку = 4;
   СтарКнопка = Неопределено;
   ВысотаКн = 40;
   ОбработкаНажатия = Новый Действие("ДействиеКнопкиТест");
  
   Для Сч=0 По СколькоЯХочуКнопок-1 Цикл
      
      старКнопка = ДобавитьКнопкуНаФормуЭлементов(СтарКнопка,ВысотаКн,Сч,ОбработкаНажатия,((сч%СколькоВКолонку) = 0));
      ЭтаФорма.Обновить();
      
   КонецЦикла;  
  
  
  
  
КонецПроцедуры

Процедура ДействиеКнопкиТест(Элемент)
  
   Сообщить(ТекущийЭлемент.Имя);
  
КонецПроцедуры

Функция ДобавитьКнопкуНаФормуЭлементов(СтарКнопка,ВысотаКн,знач Сч,ДействиеКн,НужнаСледКолонка)
  
   ИмяКн = "СуперКнопка"+сч;
   ИскКн = ЭлементыФормы.Найти(ИмяКн);
   Если НЕ ИскКн = Неопределено Тогда
      Возврат ИскКн;
   КонецЕсли;
  
   Кнопка = ЭлементыФормы.Добавить(Тип("Кнопка"),ИмяКн,Истина);
   Кнопка.Заголовок = "Какая то кнопка"+Сч;
  
   Если СтарКнопка = Неопределено Тогда
      Кнопка.Верх = ВысотаКн;
      Кнопка.Ширина = 50;
      Кнопка.Лево = 20;
      Кнопка.Высота = 40;
   ИначеЕсли НужнаСледКолонка Тогда
      Кнопка.Верх = ВысотаКн;
      Кнопка.Ширина = 50;
      Кнопка.Лево = (СтарКнопка.Лево+СтарКнопка.Ширина)+15;
      Кнопка.Высота = 40;
   Иначе  
      Кнопка.Верх = (СтарКнопка.Верх+СтарКнопка.Высота)+20;
      Кнопка.Ширина = 50;
      Кнопка.Лево = СтарКнопка.Лево;
      Кнопка.Высота = 40;
   КонецЕсли;  
  
   Кнопка.УстановитьДействие("Нажатие", ДействиеКн);
  
   Возврат Кнопка;
  
КонецФункции

но вот только искал функцию по полному копированию всех элементов формы дока или спр, на форму своей обработки. Кто нить подобное видал?
1 AlteZ
 
09.05.14
15:23
юзкейс?
если речь о форме документа, надо понимать, основной реквизит формы надо устанавливать дабы иметь доступ к данным из элементов управления..

вот бы для конфигуратора код, выборочно копирующий элементы формы)
2 User123456
 
10.05.14
07:10
есть некий txt. Нужно скопировать все элементы нужного дока, все поля будут текстовыми, далее заполняю значениями из txt. Все это будет на форме обработки, так сказать показать пользователю что получится если подтянуть данные из текстовика, но без создания дока. Это чтото типа демки по переносу одного дока.
3 User123456
 
10.05.14
08:08
так что никто не делал такого?
4 Wobland
 
10.05.14
08:44
а фантомные проводки документа не хочется ещё показать?
5 Wobland
 
10.05.14
08:50
кстати, как насчёт того, чтобы всё ж создать документ?
6 User123456
 
10.05.14
08:52
Пользователю нужно показать как будет заполнен документ, если он нажмет кнопку загрузить, и вся эта формочка только предпологаемая визуализация будущего дока.
7 Wobland
 
10.05.14
08:54
(6) заполни документ
8 User123456
 
10.05.14
08:59
повторюсь еще раз, если нажать кнопку "Загрузить", то сначала создаются в база (если нет) новые элементы спр и тд, далее создаем док и заполняем существующими уже на данный момент значениями. Задача - не закидывать в базу кучу не нужного хлама а просто через текстовые поля показать пользователю как может быть заполнен док если он нажмет кнопку "Загрузить".
9 Wobland
 
10.05.14
09:01
кто я такой, чтобы запретить тебе иметь любовь со своим геморроем? делай, раз так не хочешь отдать визуалиацию платформе
10 User123456
 
10.05.14
09:04
блиннннннн, я все конечно понимаю что все умные и тд. и тп. , но разве не в том ли прелесть программирования-что не нужно думать шаблонами?????
11 Wobland
 
10.05.14
09:05
(10) первое правило: будь попроще дурачок. второе: если всё работает, только ничего не трожь
12 artems
 
10.05.14
09:05
(8) + (10)  мусье понимает толк в извращениях....
13 User123456
 
10.05.14
09:07
эт я понимаю и ничего лишнего не трогаю, но клиент поставил задачу и вопрос собственно заключался в "Кто нить подобное видал?", (12) ну по поводу извращений эт согласен)))))
14 Wobland
 
10.05.14
09:09
(13) клиент поди ничего не знает о том, что можно свою форму программно рисовать
15 User123456
 
10.05.14
09:11
эм, ну задача свелась к тому чтоб не захламлять базу
16 Wobland
 
10.05.14
09:14
не захламлять базу можно самыми разными путями
17 User123456
 
10.05.14
09:17
согласен, но запоминать где и что я создал, потом аккуратно чистить, тоже ничего веселого нет.
18 Wobland
 
10.05.14
09:19
так и тянет записывать?
19 User123456
 
10.05.14
09:21
ну а как я могу в реквизит "Контрагент" подставить запись спр, которой там еще нет????
20 Wobland
 
10.05.14
09:23
(19) можно подставить новую ссылку
21 User123456
 
10.05.14
09:24
не записывая ее в базу?
22 Wobland
 
10.05.14
09:28
угу. можно ещё попытаться понять, что это всё какй-то бред
23 User123456
 
10.05.14
09:30
ок, а можно поподробнее как это не записывая ссылку? т.е. создал объект нужного типа но перед записью этого объекта кидаю еще не записанную ссылку в элемент формы дока?
24 Wobland
 
10.05.14
09:30
получить ссылку нового
25 User123456
 
10.05.14
09:33
ок, понял, по экспериментирую.
26 Wobland
 
10.05.14
09:33
ой, да не за что
27 User123456
 
10.05.14
09:38
не ну что Вы только после вас))))))))))))))) спс
28 Мимохожий Однако
 
10.05.14
09:44
Открытие формы нового документа не подходит?
29 User123456
 
10.05.14
09:49
ну вопрос заключался в том что можно ли в нем отобразить не сохраненные элементы справочников и других объектов.
30 Wobland
 
10.05.14
09:51
(29) ага. 18 часов спустя
31 User123456
 
10.05.14
10:07
ну так праздники)))
32 Фокусник
 
10.05.14
12:24
(29) не понятно что пользователь может решить, гляда на эту "текстовую" форму. Ему ведь наверняка захочется провалиться в карточку этого "несуществующего в базе" контрагента. И что будете делать, псевдо контрагента рисовать?

ИМХО, решение нужно принимать не так: выдавать некую таблицу "документов", в которой отображены все поля (текст, флажки, ссылки для найденных объектов и т.д.), по которым пользователь определит и флажками поставит нужно/не нужно грузить.
33 User123456
 
10.05.14
18:48
эх мне бы вашу веру в пользователя!!!
34 Фокусник
 
10.05.14
19:22
(33) хм, это вроде вы предлагаете пользователю каждый документ открывать перед загрузкой... ;)
35 User123456
 
10.05.14
19:34
нет, это для особо не доверчивых пользователей, но в целом пользователь если хочет то откроет.