|
Создание новой строки и ее заполнение | ☑ | ||
---|---|---|---|---|
0
NepomAR
13.01.22
✎
09:49
|
Здравствуйте, подскажите пожалуйста. есть 2 управляемые формы в документе, основная форма, и форма "помощник ввода данных". в помощнике ввода ввожу данные, при нажатии кнопки "заполнить " в основной форме заполняется строка данными из формы "помощник ввода " в табличную часть документа. Скажите пожалуйста как создать новую строку в основной форме, в табличной части и записать туда данные и формы помощник ввода.
|
|||
1
NepomAR
13.01.22
✎
10:12
|
(0) &НаСервере
Процедура ЗаполнитьНовуюСтрокуНаСервере() СтруктураНовойСтроки = Новый Структура; СтруктураНовойСтроки.Вставить("1",1); СтруктураНовойСтроки.Вставить("2",2); СтруктураНовойСтроки.Вставить("3",3); СтруктураНовойСтроки.Вставить("4",4); СтруктураНовойСтроки.Вставить("5",5); СтруктураНовойСтроки.Вставить("6",6); СтруктураНовойСтроки.Вставить("7",7); СтруктураНовойСтроки.Вставить("8",8); СтруктураНовойСтроки.Вставить("9",9); СтруктураНовойСтроки.Вставить("10",10); СтруктураНовойСтроки.Вставить("11",11); СтруктураНовойСтроки.Вставить("12",12); СтруктураНовойСтроки.Вставить("13",13); СтруктураНовойСтроки.Вставить("14",14); СтруктураНовойСтроки.Вставить("15",15); НоваяСтрока = Объект.Спецификация.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока,СтруктураНовойСтроки); КонецПроцедуры &НаКлиенте Процедура ЗаполнитьНовуюСтроку(Команда) ЗаполнитьНовуюСтрокуНаСервере(); КонецПроцедуры |
|||
2
Галахад
гуру
13.01.22
✎
10:16
|
Крутой код. Кстати ключ у структуры, не может быть цифрой.
|
|||
3
NepomAR
13.01.22
✎
10:27
|
(2) я знаю что не может быть
|
|||
4
NepomAR
13.01.22
✎
10:29
|
(2) это просто пример того как думаю
|
|||
5
NepomAR
13.01.22
✎
10:46
|
(2) &НаСервере
Процедура ЗаполнитьНовуюСтрокуНаСервере() СтруктураНовойСтроки = Новый Структура; СтруктураНовойСтроки.Вставить("ТипПанели",ТипПанели); //СтруктураНовойСтроки.Вставить("Подрезка",Объект.Подрезка); СтруктураНовойСтроки.Вставить("Замок",Замок); СтруктураНовойСтроки.Вставить("RALВнутренний",RALВнутренний); СтруктураНовойСтроки.Вставить("RALНаружный",RALНаружний); СтруктураНовойСтроки.Вставить("ПрофилировкаВнутренняя",ПрофилировкаВнутренняя); СтруктураНовойСтроки.Вставить("ПрофилировкаНаружная",ПрофилировкаНаружная); СтруктураНовойСтроки.Вставить("ТолщинаВнутреннегоМеталла",ТолщинаВнутреннегоМеталла); СтруктураНовойСтроки.Вставить("ТолщинаНаружногоМеталла",ТолщинаНаружногоМеталла); СтруктураНовойСтроки.Вставить("ТолщинаИзделия",ТолщинаИзделия); СтруктураНовойСтроки.Вставить("ШиринаИзделия",ШиринаИзделия); СтруктураНовойСтроки.Вставить("Маркировка",Маркировка); СтруктураНовойСтроки.Вставить("Ось",Ось); НоваяСтрока = Объект.СпецификацияПанелей.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока,СтруктураНовойСтроки); КонецПроцедуры &НаКлиенте Процедура ЗаполнитьНовуюСтроку(Команда) ЗаполнитьНовуюСтрокуНаСервере(); КонецПроцедуры |
|||
6
FIXXXL
13.01.22
✎
10:57
|
(0) а как данные возвращаешь из формы Помощника?
|
|||
7
NepomAR
13.01.22
✎
11:54
|
(6) &НаСервере
Процедура ЗаполнитьНовуюСтрокуНаСервере(СтруктураНовойСтроки) НоваяСтрока = Объект.СпецификацияПанелей.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураНовойСтроки); КонецПроцедуры &НаКлиенте Процедура ЗаполнитьНовуюСтроку(Команда) СтруктураНовойСтроки = ПолучитьСтруктуруПараметровСэндвичПанели(); КонецПроцедуры &НаКлиенте Функция ПолучитьСтруктуруПараметровСэндвичПанели() ДанныеСтруктуры = Новый Структура; ДанныеСтруктуры.Вставить("ТипСтандарта",ТипСтандарта); ДанныеСтруктуры.Вставить("ТипПанели",ТипПанели); ДанныеСтруктуры.Вставить("Подрезка",Объект.Подрезка); ДанныеСтруктуры.Вставить("Замок",Замок); ДанныеСтруктуры.Вставить("RALВнутренний",RALВнутренний); ДанныеСтруктуры.Вставить("RALНаружный",RALНаружний); ДанныеСтруктуры.Вставить("ПрофилировкаВнутренняя",ПрофилировкаВнутренняя); ДанныеСтруктуры.Вставить("ПрофилировкаНаружная",ПрофилировкаНаружная); ДанныеСтруктуры.Вставить("ТолщинаВнутреннегоМеталла",ТолщинаВнутреннегоМеталла); ДанныеСтруктуры.Вставить("ТолщинаНаружногоМеталла",ТолщинаНаружногоМеталла); ДанныеСтруктуры.Вставить("ТолщинаИзделия",ТолщинаИзделия); ДанныеСтруктуры.Вставить("ШиринаИзделия",ШиринаИзделия); ДанныеСтруктуры.Вставить("Маркировка",Маркировка); ДанныеСтруктуры.Вставить("Ось",Ось); ДанныеСтруктуры.Вставить("Фасад",Фасад); ДанныеСтруктуры.Вставить("Количество",Количество); ДанныеСтруктуры.Вставить("КоличествоШт",КоличествоШт); ДанныеСтруктуры.Вставить("ЦенаСНДС",ЦенаСНДС); ДанныеСтруктуры.Вставить("ДлинаИзделия",ДлинаИзделия); ДанныеСтруктуры.Вставить("ТипПокрытияВнешний",ТипПокрытияНаружный); ДанныеСтруктуры.Вставить("ТипПокрытияВнутренний",ТипПокрытияВнутренний); ДанныеСтруктуры.Вставить("Утеплитель",Утеплитель); ДанныеСтруктуры.Вставить("Качество",""); Возврат ДанныеСтруктуры; КонецФункции вот сейчас пока так. |
|||
8
Ёпрст
13.01.22
✎
12:07
|
(7) а из формы в форму как ?
|
|||
9
Мимохожий Однако
13.01.22
✎
12:12
|
||||
10
NepomAR
13.01.22
✎
12:24
|
(8)
переделала, сейчас добавляет строку но она пустая, теперь пытаюсь понять как ее заполнить. &НаКлиенте Процедура ЗаполнитьНовуюСтроку(Команда) СтруктураНовойСтроки = ПолучитьСтруктуруПараметровСэндвичПанели(); НоваяСтрока = ЭтаФорма.ВладелецФормы.Объект.СпецификацияПанелей.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураНовойСтроки); КонецПроцедуры Из формы в форму код выглядит так &НаКлиенте Процедура ПомощникВводаСтрок(Команда) ОткрытьФорму("Документ.ртСпецификацияДоговораСделки.Форма.ФормаПомощникВводаСтрок",,ЭтаФорма); КонецПроцедуры |
|||
11
NepomAR
13.01.22
✎
12:26
|
(8) ЗаполнитьЗначенияСвойств не работает. пока не пойму как заполнить
|
|||
12
FIXXXL
13.01.22
✎
12:30
|
(10) при закрытии ФормаПомощникВводаСтрок надо данные вернуть владельцу
|
|||
13
Галахад
гуру
13.01.22
✎
12:30
|
Так не будет работать:
НоваяСтрока = ЭтаФорма.ВладелецФормы.Объект.СпецификацияПанелей.Добавить(); Верните данные в форму владелец и там заполните. |
|||
14
FIXXXL
13.01.22
✎
12:32
|
простейший пример http://1clenta.ru/pattern/62
можно и через Оповестить() |
|||
15
SuperMario
13.01.22
✎
12:35
|
(14) ужас!
|
|||
16
FIXXXL
13.01.22
✎
12:40
|
(15) сорри, не та ссылка :)
это старье модальное, отставить |
|||
17
FIXXXL
13.01.22
✎
12:42
|
||||
18
NepomAR
13.01.22
✎
12:50
|
(17) Сделала вот так, и все работает. заполняет как нужно)
&НаКлиенте Процедура ЗаполнитьНовуюСтроку(Команда) СтруктураНовойСтроки = ПолучитьСтруктуруПараметровСэндвичПанели(); НоваяСтрока = ЭтаФорма.ВладелецФормы.Объект.СпецификацияПанелей.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураНовойСтроки); ЭтаФорма.Закрыть(СтруктураНовойСтроки); КонецПроцедуры |
|||
19
Kassern
13.01.22
✎
12:52
|
(18) не лучший способ, неявно пихать данные. Чем вас оповещения не устроили?
|
|||
20
NepomAR
13.01.22
✎
12:54
|
(19) попробовала сделать так и получилось, оповещение не стала пробовать. попробую сделать через оповещение.
|
|||
21
Kassern
13.01.22
✎
13:05
|
(20) можете посмотреть как в типовых конфах подбор товаров работает. Там используется событие формы источника "ОбработкаВыбора". В ней просто указываете следующее:
Если ИсточникВыбора = ПутьДоФормыВыбра Тогда //например "Документ.РеализацияТоваровУслуг.Форма.ФормаПодбораТоваровИзЗаказа" //Получаем из временного хранилища таблицу и загружаем в ТЧ КонецЕсли На форме выбора пихаем выбранные позиции во временное хранилище и не забываем ОповеститьОВыборе(АдресТоваровВХранилище) |
|||
22
NepomAR
13.01.22
✎
13:19
|
(21) поняла Вас, спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |