Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 12:14

Форма Ввода для строки табличной части документа

Автор Mro, 26 авг 2016, 12:06

0 Пользователей и 1 гость просматривают эту тему.

Mro

Цитата: vitasw от 30 авг 2016, 14:43Некомильфо, детский сад.

Чем-же?))

С точки зрения пользователя, который непременно хочет отдельное место для ввода каждой строки табличной части документа это куда проще.

В случае с формой - необходимо 1-нажать кнопку на форме с табличной частью, чтобы выбрать форму ввода, 2-на форме ввода нажать кнопку чтобы перенести информацию в строку таблицы первой формы.

В случае с закладкой - сразу заполняешь информацию и нажимаешь кнопку один раз для передачи информации во вторую закладку.

Добавлено: 30 авг 2016, 17:27


Цитата: vitasw от 30 авг 2016, 08:13
В управляемом приложении форму не принято получать и устанавливать параметры у неоткрытой формы.
Используйте метод открыть форму с передачей параметров. В "ПередОткрытиемНаСервере" обрабатывайте полученные параметры через свойство "Параметры".

Т.е. по прежнему у меня две формы (Документа с табличной частью и Добавления Элемента с такими-же реквизитами),

только разный код для комнды открытия формы добавления элемента?

Для меня фраза "Используйте метод открыть форму с передачей параметров. В "ПередОткрытиемНаСервере" обрабатывайте полученные параметры через свойство "Параметры"" звучит пока что как язык птиц, например.)
Добавлено: 30 авг 2016, 17:54


Такой код написал для открытия Формы элемента из формы документа.

&НаКлиенте
Процедура ДобавитьСтроку(Команда)
   
ПараметрыФормы = Новый Структура;

ОткрытьФорму("Документ.Тестовый.Форма.ФормаЭлемента",ПараметрыФормы);     

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

Как теперь правильно передать заполненные значения в отдельную строку ТЧ формы документа*?

cska-fanat-kz

1. добавляем к документу произвольную форму с нужными полями
2. у ТЧ есть событие то ли ПриНачалеДобавления, то ли ПередНачаломДобавления, то ли ПриНачале(ПередНачалом)Изменения
в нем открываем нашу форму
3. заполненные поля при закрытии складываем в структуру, отправляем обратно
4. получаем текущую строку и из переданной структуры раскладываем значения
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

очень много чего надо будет учесть...
1. копирование строки ТЧ
2. при изменении существующей строки тоже должна эта форма открыться с текущими значениями?
3. форма скорее всего модально открыться должна, а в последнее время это неплохие танцы с бубном...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Mro

Цитата: cska-fanat-kz от 31 авг 2016, 09:23
очень много чего надо будет учесть...
1. копирование строки ТЧ
2. при изменении существующей строки тоже должна эта форма открыться с текущими значениями?
3. форма скорее всего модально открыться должна, а в последнее время это неплохие танцы с бубном...

Вариант, который предлагал Летящий в даль полностью работал на локальной базе, но для управляемых форм серверной базы отказался.(

Добавлено: 31 авг 2016, 10:14


Цитата: cska-fanat-kz от 31 авг 2016, 09:20
1. добавляем к документу произвольную форму с нужными полями
2. у ТЧ есть событие то ли ПриНачалеДобавления, то ли ПередНачаломДобавления, то ли ПриНачале(ПередНачалом)Изменения
в нем открываем нашу форму
3. заполненные поля при закрытии складываем в структуру, отправляем обратно
4. получаем текущую строку и из переданной структуры раскладываем значения

я так и сделал, у меня две формы 1-я Форма документа с табличной частью, вторая произвольная ФормаЭлемента с таками-же реквизитами, как в табличной части формы документа.

Открываю ФормуЭлемента кнопкой с командой

&НаКлиенте
Процедура ДобавитьСтроку(Команда)
   
ПараметрыФормы = Новый Структура;

ОткрытьФорму("Документ.Тестовый.Форма.ФормаЭлемента",ПараметрыФормы);     

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

а вот как передать заполненные реквизиты в новую строку ФормыДокумента - пока затык.(
Добавлено: 31 авг 2016, 14:08


Господа, хелп, вопрос крайне животрепещущий.:o:o:o
Добавлено: 31 авг 2016, 15:37


Цитата: cska-fanat-kz от 31 авг 2016, 09:233. форма скорее всего модально открыться должна, а в последнее время это неплохие танцы с бубном...

В принципе особой необходимости, чтобы форма блокировала работу всего интерфейса нет
Добавлено: 31 авг 2016, 17:19


Цитата: SGIRG от 30 авг 2016, 08:24
Цитата: Mro от 29 авг 2016, 22:21
Недопустимая операция для неоткрытой формы
Ну вроде как платформа все на "блюдечке" выложила

И?
Добавлено: 01 сен 2016, 14:13


"Задай вопрос - получи решение проблемы. Без троллинга и флуда."

Где-же это?)

sawogle

Цитата: Летящий в даль от 26 авг 2016, 14:07
можно, делаешь форму добавляешь реквизиты в соответствии с реквизитами ТЧ, и при нажатии кнопки своей кнопки добавить прописываешь процедурку примерно такую
&НаКлиенте
Процедура ДобавитьСвои(Команда)
Форма  = ПолучитьФорму("Документ.Документ1.Форма.Форма");
Форма.Открыть();

КонецПроцедуры
,
в другой форме добавляешь кнопку записать и пишешь примерно следующее
&НаКлиенте
Процедура Записать(Команда)
Структура = Новый Структура;
Структура.Вставить("Реквизит1",Реквизит1);
Структура.Вставить("Реквизит2",Реквизит2);
Структура.Вставить("Реквизит3",Реквизит3);
Форма = ПолучитьФорму("Документ.Документ1.Форма.ФормаДокумента");
    СтрокаНоавя = Форма.Объект.ТабличнаяЧасть1.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаНоавя,Структура);
Форма  = ПолучитьФорму("Документ.Документ1.Форма.Форма");
Форма.Закрыть();
КонецПроцедуры


Это самый примитивный вариант))
При компиляции
Выдает ошибку "Справочник.Картриджи.Форма.Форма.Форма(12,2)}: Процедура или функция с указанным именем не определена (ЗаполнитьЗначениеСвойств)
   <<?>>ЗаполнитьЗначениеСвойств(СтрокаНовая,Структура); (Проверка: Толстый клиент (обычное приложение))
Как исправить??? Буду оч признателен 

Kironten

Цитата: sawogle от 24 июл 2017, 22:44
При компиляции
Выдает ошибку "Справочник.Картриджи.Форма.Форма.Форма(12,2)}: Процедура или функция с указанным именем не определена (ЗаполнитьЗначениеСвойств)
   <<?>>ЗаполнитьЗначениеСвойств(СтрокаНовая,Структура); (Проверка: Толстый клиент (обычное приложение))
Как исправить??? Буду оч признателен
ЗаполнитьЗначениЯСвойств

sawogle

Цитата: Kironten от 25 июл 2017, 11:06
Цитата: sawogle от 24 июл 2017, 22:44
При компиляции
Выдает ошибку "Справочник.Картриджи.Форма.Форма.Форма(12,2)}: Процедура или функция с указанным именем не определена (ЗаполнитьЗначениеСвойств)
   <<?>>ЗаполнитьЗначениеСвойств(СтрокаНовая,Структура); (Проверка: Толстый клиент (обычное приложение))
Как исправить??? Буду оч признателен
ЗаполнитьЗначениЯСвойств
ОГРОМНОЕ СПАСИБО !!!!!
Добавлено: 27 июл 2017, 17:23


Цитата: sawogle от 27 июл 2017, 13:39
Цитата: Kironten от 25 июл 2017, 11:06
Цитата: sawogle от 24 июл 2017, 22:44
При компиляции
Выдает ошибку "Справочник.Картриджи.Форма.Форма.Форма(12,2)}: Процедура или функция с указанным именем не определена (ЗаполнитьЗначениеСвойств)
   <<?>>ЗаполнитьЗначениеСвойств(СтрокаНовая,Структура); (Проверка: Толстый клиент (обычное приложение))
Как исправить??? Буду оч признателен
ЗаполнитьЗначениЯСвойств
ОГРОМНОЕ СПАСИБО !!!!!
Может к концу дня и туплю :( я исправил букву вроде все заработало, но когда прибавляю строки как в ТЧ так и на форме ввода то данные не записываются в Строку ТЧ все компилируется без ошибок но не записывает:dfbbdrfb:
Вот код
&НаКлиенте
Процедура Записать(Команда)
   Структура=Новый Структура;
   Структура.Вставить("ВидОборудования",ВидОборудования);
   Структура.Вставить("Производитель",Производитель);
   Структура.Вставить("Модель",Модель);
   Структура.Вставить("СерНомер",СерНомер);
   Структура.Вставить("Кол_во",Кол_во);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.ФормаДокумента");[/b]
   СтрокаНовая=Форма.Объект.Оборудование.Добавить();
   ЗаполнитьЗначенияСвойств(СтрокаНовая,Структура);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.Форма");
   Форма.Закрыть();
(и писал КвитанцииПриема как ФормуДокумента) :dfbsdfbsdf:


Kironten

Цитата: sawogle от 27 июл 2017, 13:39
Может к концу дня и туплю :( я исправил букву вроде все заработало, но когда прибавляю строки как в ТЧ так и на форме ввода то данные не записываются в Строку ТЧ все компилируется без ошибок но не записывает:dfbbdrfb:
Вот код
&НаКлиенте
Процедура Записать(Команда)
   Структура=Новый Структура;
   Структура.Вставить("ВидОборудования",ВидОборудования);
   Структура.Вставить("Производитель",Производитель);
   Структура.Вставить("Модель",Модель);
   Структура.Вставить("СерНомер",СерНомер);
   Структура.Вставить("Кол_во",Кол_во);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.ФормаДокумента");[/b]
   СтрокаНовая=Форма.Объект.Оборудование.Добавить();
   ЗаполнитьЗначенияСвойств(СтрокаНовая,Структура);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.Форма");
   Форма.Закрыть();
(и писал КвитанцииПриема как ФормуДокумента) :dfbsdfbsdf:
На самом деле вообще не совсем ясно, чего вы хотите добиться.
Сейчас у вас порядок действий таков:
1. Вы уже находитесь в форме (на клиенте)
2. Нажимается кнопка записать.
3. Вы формируете структуру данных.
4. Зачем то получаете еще одну какую то форму, не открывая этой формы вы пытаетесь создать в её табличной части строку. Т.к. форма не отображена, то и попытки в неё что-нибудь добавить, вне обработчиков "ПриСозданииНаСервере" и "ПриОткрытии" ни к чему естественно не приводит.
5. Но и это еще не все - вы вызываете третью форму, и присваиваете её переменной в которой до этого находилась вторая вызванная форма.
6. Ну и вишенка на торте: ничего не сделав с третьей вызванной формой, вы пытаетесь её закрыть.
В общем какофония действий.
Может вы просто попробуете описать, чего вы хотите достичь?

sawogle

Цитата: Kironten от 27 июл 2017, 17:48
Цитата: sawogle от 27 июл 2017, 13:39
Может к концу дня и туплю :( я исправил букву вроде все заработало, но когда прибавляю строки как в ТЧ так и на форме ввода то данные не записываются в Строку ТЧ все компилируется без ошибок но не записывает:dfbbdrfb:
Вот код
&НаКлиенте
Процедура Записать(Команда)
   Структура=Новый Структура;
   Структура.Вставить("ВидОборудования",ВидОборудования);
   Структура.Вставить("Производитель",Производитель);
   Структура.Вставить("Модель",Модель);
   Структура.Вставить("СерНомер",СерНомер);
   Структура.Вставить("Кол_во",Кол_во);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.ФормаДокумента");[/b]
   СтрокаНовая=Форма.Объект.Оборудование.Добавить();
   ЗаполнитьЗначенияСвойств(СтрокаНовая,Структура);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.Форма");
   Форма.Закрыть();
(и писал КвитанцииПриема как ФормуДокумента) :dfbsdfbsdf:
На самом деле вообще не совсем ясно, чего вы хотите добиться.
Сейчас у вас порядок действий таков:
1. Вы уже находитесь в форме (на клиенте)
2. Нажимается кнопка записать.
3. Вы формируете структуру данных.
4. Зачем то получаете еще одну какую то форму, не открывая этой формы вы пытаетесь создать в её табличной части строку. Т.к. форма не отображена, то и попытки в неё что-нибудь добавить, вне обработчиков "ПриСозданииНаСервере" и "ПриОткрытии" ни к чему естественно не приводит.
5. Но и это еще не все - вы вызываете третью форму, и присваиваете её переменной в которой до этого находилась вторая вызванная форма.
6. Ну и вишенка на торте: ничего не сделав с третьей вызванной формой, вы пытаетесь её закрыть.
В общем какофония действий.
Может вы просто попробуете описать, чего вы хотите достичь?
Спасибо разобрался :)))):ooifh:

sawogle

Цитата: sawogle от 28 июл 2017, 14:54
Цитата: Kironten от 27 июл 2017, 17:48
Цитата: sawogle от 27 июл 2017, 13:39
Может к концу дня и туплю :( я исправил букву вроде все заработало, но когда прибавляю строки как в ТЧ так и на форме ввода то данные не записываются в Строку ТЧ все компилируется без ошибок но не записывает:dfbbdrfb:
Вот код
&НаКлиенте
Процедура Записать(Команда)
   Структура=Новый Структура;
   Структура.Вставить("ВидОборудования",ВидОборудования);
   Структура.Вставить("Производитель",Производитель);
   Структура.Вставить("Модель",Модель);
   Структура.Вставить("СерНомер",СерНомер);
   Структура.Вставить("Кол_во",Кол_во);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.ФормаДокумента");[/b]
   СтрокаНовая=Форма.Объект.Оборудование.Добавить();
   ЗаполнитьЗначенияСвойств(СтрокаНовая,Структура);
   Форма=ПолучитьФорму("Документ.КвитанцииПриема.Форма.Форма");
   Форма.Закрыть();
(и писал КвитанцииПриема как ФормуДокумента) :dfbsdfbsdf:
На самом деле вообще не совсем ясно, чего вы хотите добиться.
Сейчас у вас порядок действий таков:
1. Вы уже находитесь в форме (на клиенте)
2. Нажимается кнопка записать.
3. Вы формируете структуру данных.
4. Зачем то получаете еще одну какую то форму, не открывая этой формы вы пытаетесь создать в её табличной части строку. Т.к. форма не отображена, то и попытки в неё что-нибудь добавить, вне обработчиков "ПриСозданииНаСервере" и "ПриОткрытии" ни к чему естественно не приводит.
5. Но и это еще не все - вы вызываете третью форму, и присваиваете её переменной в которой до этого находилась вторая вызванная форма.
6. Ну и вишенка на торте: ничего не сделав с третьей вызванной формой, вы пытаетесь её закрыть.
В общем какофония действий.
Может вы просто попробуете описать, чего вы хотите достичь?
Спасибо разобрался :)))):ooifh:
Опять такой вопрос (уж извините я не 1с-ник я только учусь :)) почему при добавлении новых данных или редактирование старого документа через форму ввода данные не записываются СтрокаТЧ остается пустой и еще момент хотел соединить Сроки ТЧ в единую в форме ввода но строки не соединяются и тоже не записываются ?  неделю бьюсь :dfbsdfbsdf: 

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск