|   |   | 
| 
 | Создание новой строки и ее заполнение | ☑ | ||
|---|---|---|---|---|
| 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) поняла Вас, спасибо.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |