Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Создание новой строки и ее заполнение

Создание новой строки и ее заполнение
Я
   NepomAR
 
13.01.22 - 09:49
Здравствуйте, подскажите пожалуйста. есть 2 управляемые формы в документе, основная форма, и форма "помощник ввода данных". в помощнике ввода ввожу данные, при нажатии кнопки "заполнить " в основной форме заполняется строка данными из формы "помощник ввода " в табличную часть документа. Скажите пожалуйста как создать новую строку в основной форме, в табличной части и записать туда данные и формы помощник ввода.
   NepomAR
 
1 - 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
Крутой код. Кстати ключ у структуры, не может быть цифрой.
   NepomAR
 
3 - 13.01.22 - 10:27
(2) я знаю что не может быть
   NepomAR
 
4 - 13.01.22 - 10:29
(2) это просто пример того как думаю
   NepomAR
 
5 - 13.01.22 - 10:46
(2) &НаСервере
Процедура ЗаполнитьНовуюСтрокуНаСервере()
    СтруктураНовойСтроки = Новый Структура;
    СтруктураНовойСтроки.Вставить("ТипПанели",ТипПанели);
    //СтруктураНовойСтроки.Вставить("Подрезка",Объект.Подрезка);

    СтруктураНовойСтроки.Вставить("Замок",Замок);
    СтруктураНовойСтроки.Вставить("RALВнутренний",RALВнутренний);
    СтруктураНовойСтроки.Вставить("RALНаружный",RALНаружний);
    СтруктураНовойСтроки.Вставить("ПрофилировкаВнутренняя",ПрофилировкаВнутренняя);
    СтруктураНовойСтроки.Вставить("ПрофилировкаНаружная",ПрофилировкаНаружная);
    СтруктураНовойСтроки.Вставить("ТолщинаВнутреннегоМеталла",ТолщинаВнутреннегоМеталла);
    СтруктураНовойСтроки.Вставить("ТолщинаНаружногоМеталла",ТолщинаНаружногоМеталла);
    СтруктураНовойСтроки.Вставить("ТолщинаИзделия",ТолщинаИзделия);
    СтруктураНовойСтроки.Вставить("ШиринаИзделия",ШиринаИзделия);
    СтруктураНовойСтроки.Вставить("Маркировка",Маркировка);
    СтруктураНовойСтроки.Вставить("Ось",Ось);
    

    НоваяСтрока = Объект.СпецификацияПанелей.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока,СтруктураНовойСтроки);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНовуюСтроку(Команда)
    
        ЗаполнитьНовуюСтрокуНаСервере();
КонецПроцедуры
   FIXXXL
 
6 - 13.01.22 - 10:57
(0) а как данные возвращаешь из формы Помощника?
   NepomAR
 
7 - 13.01.22 - 11:54
(6) &НаСервере
Процедура ЗаполнитьНовуюСтрокуНаСервере(СтруктураНовойСтроки)
    
    НоваяСтрока = Объект.СпецификацияПанелей.Добавить();
    
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураНовойСтроки);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНовуюСтроку(Команда)
    СтруктураНовойСтроки  = ПолучитьСтруктуруПараметровСэндвичПанели();
    КонецПроцедуры

&НаКлиенте
Функция ПолучитьСтруктуруПараметровСэндвичПанели()
    
    ДанныеСтруктуры = Новый Структура;
    
    ДанныеСтруктуры.Вставить("ТипСтандарта",ТипСтандарта);
    ДанныеСтруктуры.Вставить("ТипПанели",ТипПанели);
    ДанныеСтруктуры.Вставить("Подрезка",Объект.Подрезка);
    ДанныеСтруктуры.Вставить("Замок",Замок);
    ДанныеСтруктуры.Вставить("RALВнутренний",RALВнутренний);
    ДанныеСтруктуры.Вставить("RALНаружный",RALНаружний);
    ДанныеСтруктуры.Вставить("ПрофилировкаВнутренняя",ПрофилировкаВнутренняя);
    ДанныеСтруктуры.Вставить("ПрофилировкаНаружная",ПрофилировкаНаружная);
    ДанныеСтруктуры.Вставить("ТолщинаВнутреннегоМеталла",ТолщинаВнутреннегоМеталла);
    ДанныеСтруктуры.Вставить("ТолщинаНаружногоМеталла",ТолщинаНаружногоМеталла);
    ДанныеСтруктуры.Вставить("ТолщинаИзделия",ТолщинаИзделия);
    ДанныеСтруктуры.Вставить("ШиринаИзделия",ШиринаИзделия);
    ДанныеСтруктуры.Вставить("Маркировка",Маркировка);
    ДанныеСтруктуры.Вставить("Ось",Ось);
    ДанныеСтруктуры.Вставить("Фасад",Фасад);
    ДанныеСтруктуры.Вставить("Количество",Количество);
    ДанныеСтруктуры.Вставить("КоличествоШт",КоличествоШт);
    ДанныеСтруктуры.Вставить("ЦенаСНДС",ЦенаСНДС);
    ДанныеСтруктуры.Вставить("ДлинаИзделия",ДлинаИзделия);
    ДанныеСтруктуры.Вставить("ТипПокрытияВнешний",ТипПокрытияНаружный);
    ДанныеСтруктуры.Вставить("ТипПокрытияВнутренний",ТипПокрытияВнутренний);
    ДанныеСтруктуры.Вставить("Утеплитель",Утеплитель);
    ДанныеСтруктуры.Вставить("Качество","");
    
    Возврат ДанныеСтруктуры;
КонецФункции

вот сейчас пока так.
   Ёпрст
 
8 - 13.01.22 - 12:07
(7) а из формы в форму как ?
   МимохожийОднако
 
9 - 13.01.22 - 12:12
   NepomAR
 
10 - 13.01.22 - 12:24
(8)
переделала, сейчас добавляет строку но она пустая, теперь пытаюсь  понять как ее заполнить.
&НаКлиенте
Процедура ЗаполнитьНовуюСтроку(Команда)
    СтруктураНовойСтроки  = ПолучитьСтруктуруПараметровСэндвичПанели();
    НоваяСтрока = ЭтаФорма.ВладелецФормы.Объект.СпецификацияПанелей.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураНовойСтроки);

КонецПроцедуры


Из формы в форму код выглядит так

&НаКлиенте
Процедура ПомощникВводаСтрок(Команда)
    
     ОткрытьФорму("Документ.ртСпецификацияДоговораСделки.Форма.ФормаПомощникВводаСтрок",,ЭтаФорма);
     
КонецПроцедуры
   NepomAR
 
11 - 13.01.22 - 12:26
(8) ЗаполнитьЗначенияСвойств не работает. пока не пойму как заполнить
   FIXXXL
 
12 - 13.01.22 - 12:30
(10) при закрытии ФормаПомощникВводаСтрок надо данные вернуть владельцу
   Галахад
 
13 - 13.01.22 - 12:30
Так не будет работать:
НоваяСтрока = ЭтаФорма.ВладелецФормы.Объект.СпецификацияПанелей.Добавить();

Верните данные в форму владелец и там заполните.
   FIXXXL
 
14 - 13.01.22 - 12:32
простейший пример http://1clenta.ru/pattern/62
можно и через Оповестить()
   SuperMario
 
15 - 13.01.22 - 12:35
(14) ужас!
   FIXXXL
 
16 - 13.01.22 - 12:40
(15) сорри, не та ссылка :)
это старье модальное, отставить
   FIXXXL
 
17 - 13.01.22 - 12:42
   NepomAR
 
18 - 13.01.22 - 12:50
(17) Сделала вот так, и все работает. заполняет как нужно)
&НаКлиенте
Процедура ЗаполнитьНовуюСтроку(Команда)
    СтруктураНовойСтроки  = ПолучитьСтруктуруПараметровСэндвичПанели();
    НоваяСтрока = ЭтаФорма.ВладелецФормы.Объект.СпецификацияПанелей.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураНовойСтроки);
    ЭтаФорма.Закрыть(СтруктураНовойСтроки);
КонецПроцедуры
   Kassern
 
19 - 13.01.22 - 12:52
(18) не лучший способ, неявно пихать данные. Чем вас оповещения не устроили?
   NepomAR
 
20 - 13.01.22 - 12:54
(19) попробовала сделать так и получилось, оповещение не стала пробовать. попробую сделать через оповещение.
   Kassern
 
21 - 13.01.22 - 13:05
(20) можете посмотреть как в типовых конфах подбор товаров работает. Там используется событие формы источника "ОбработкаВыбора". В ней просто указываете следующее:
Если ИсточникВыбора = ПутьДоФормыВыбра Тогда//например "Документ.РеализацияТоваровУслуг.Форма.ФормаПодбораТоваровИзЗаказа"

  //Получаем из временного хранилища таблицу и загружаем в ТЧ

КонецЕсли

На форме выбора пихаем выбранные позиции во временное хранилище и не забываем ОповеститьОВыборе(АдресТоваровВХранилище)
   NepomAR
 
22 - 13.01.22 - 13:19
(21) поняла Вас, спасибо.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.