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

Режим ввода в окне табличной части через вызов формы с реквизитами

Автор Gigi Spoke, 12 апр 2017, 14:43

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

Gigi Spoke

Всем привет!
С 1С знакомство начал недавно.
Знаю, что вопрос возник от не хватки теоритических знаний. Но сколько не рыл в учебниках и форумах нигде не нашел инфу об одной фишке.
Дало в чем..
Вообще исходя из своего начального уровня знаний, как я понимаю,  в справочнике есть ФормаЭлемента и ФормаСписка и т.д.
Допустим мы создали справочник с именем «Справочник1». И не создавая никакие формы, перешли в режим 1С предприятие. И найдя там только созданный справочник, нажали «добавить» и создали несколько строк в этом справочнике.
В данном случае, режим ввода осуществляется через форму ввода. Т.е. вбивать данные в сами строки без вызова формы нельзя. Но это в случае с динамическим списком.
Теперь другой случай. И допустим  в том же справочнике создали форму с табличной частью.
И перешли в режим отладки и нажали на одну из созданных строк справочника: «Справочник1». Появиться форма с табличной частью, где в отличие от первого случая ввод данных осуществляется без вызова формы со всеми реквизитами таблицы. Т.е. непосредственно в поля строк.
Дело в том, что я, где то в организации, естественно в режиме пользователя видел список, где при нажатии на строку появляется форма с табличной частью. Но в этой форме в саму табличную часть ввод данных предусмотрен опять через форму с реквизитами. Т.е. не непосредственно в поля табличной части, а опять через форму. И вообще в увиденной уже сделанной конфигурации, абсолютно все списки, в независимости от того это табличная часть формы или просто список, везде было в режиме ввода данных только через форму с реквизитами при нажатии на строку списка. И нигде не было без этого.
Вопрос!
Как установить такой режим для табличной части формы.
И я хотел бы попростеть помощи в решении данной задачи с нуля и по пунктам. Т.е. что нужно сделать ... первое, второе и т.д.
Цель в том, что бы табличная часть формы при нажатии на строку не переходила в режим курсора для ввода данных, а вызывала форму с реквизитами. И что бы и в табличной части только таким образом, заполнялись строки.
Я просто увидел такой режим, где то в офисе, но никак не могу найти инфу как это сделать.

Буду признателен за помощь!

LexaK

самое первое, вы не указали на какой платформе 1С вы работаете
например 8.1 и 8.3 это две большие разницы
и если платформа выше 8.2 необходимо указывать в каких формах вы работаете/программирутете
Управляемые или НеУправляемые это еще две большущие разницы!

начинайте все свои вопросы с этих данных!
ответ Понравился? (в смысле пригодился?)

alex0402

Спасибо за Сказать спасибо

Gigi Spoke

Цитата: LexaK от 13 апр 2017, 09:31
самое первое, вы не указали на какой платформе 1С вы работаете
например 8.1 и 8.3 это две большие разницы
и если платформа выше 8.2 необходимо указывать в каких формах вы работаете/программирутете
Управляемые или НеУправляемые это еще две большущие разницы!

начинайте все свои вопросы с этих данных!

Я работаю с платформой 8.2  (8.2 14.519)
Но при этом, указанный выше режим видел в версии 8.3
Относительно типа формы: Управляемые или НеУправляемые, если не ошибаюсь, имеется ввиду тип формы: управляемый и обычный
У меня в «Сервис\Общие\Редактирование конфигурации для режимов запуска» галочка стоит на «управляемое приложение и обычное приложение».
Ну, я, конечно, плаваю в тонкостях вопроса, но  мне неважно тип формы управляемый или обычный. Мне просто нужен путь для одной цели!
Как во фрейме любой формы, неважно управляемой или обычной, получить таблицу в режиме динамического списка?
Т.е. что бы ввод данных осуществлялся не в поля таблицы, как в случае с табличной частью во фрейме формы, а только через вызов другой формы для одной строки списка, со всеми реквизитами (именами столбцов). Т.е. режим ввода, что бы был как при динамическом списке.
И я просто прошу помощи, каким путем можно это сделать.
Можно ли это сделать в управляемой форме? Что было бы желательно. Если нет то,  тогда можно ли в обычной.
Т.е. меня интересуют пути для этого.
Результат: что бы, как выше говорил, во фрейме формы получить таблицу, где режим ввода данных осуществлялся, как при динамическом списке.
Я просто и вовсе не знаю, какой путь для этого выбрать!  И что нужно сделать первое, второе и т.д. И даже просто не знаю, какой параграф найти в толстом учебнике на эту тему.
Поэтому прощу помощи.
И буду ОЧЕНЬ признателен за нее!


LexaK

когда-то на старых платформах, в обычных формах, была возможность выбора режима редактирования в строке или в форме.
в управляемых формах такого не встречал.

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

вроде все просто.
(правда не понятно зачем все это? всю жизнь редактировали строку ТЧ, переходя из поля в поле в одной строке)
ответ Понравился? (в смысле пригодился?)

Gigi Spoke

Спасибо за ответ!
Попробую, как Вы изложили.
Вообще, по поводу:
Цитата: LexaK от 13 апр 2017, 12:48
(правда не понятно зачем все это? всю жизнь редактировали строку ТЧ, переходя из поля в поле в одной строке)
Дело в том, что то, что я видел в другом отделе нашей организации, это сделал один сотрудник, вроде бы дипломированный программист, который ушел в отпуск. И он, почему то сделал именно такой режим ввода данных для всех таблиц в форме.
И я тоже решил для своего отдела так же сделать. Ибо я понимаю, почему он установил такой режим ввода.
Я думаю потому, что у нас сотрудники, не сильно маневренный в вопросах работы с таблицами. Причем одна строка таблицы, это один абонент, реквизитов у которого много, но каждый месяц нужно вводить данные только в одно или две поля. Поэтому чисто, в нашем случае для пользователей так проще.
Ладно! Попробую, как было описано Вами.
Но если столкнусь с проблемой, опять попрошу о помощи, и надеюсь, не буду обделен вниманием.

Еще раз спасибо!

LexaK

ну как будто в школе не разу не учились !!! :D
первая заповедь школьника какая?

не сделал (не можешь сделать) сам  - спиши у товарища!!! :befhbt:

какие проблемы ? возьмите базу из соседнего отдела, а скопипастите от туда уже рабочий код в свою базу!
зачем изобретать велосипед, который отлично катается в соседнем отделе?
ответ Понравился? (в смысле пригодился?)

Gigi Spoke

:D
Все не так просто!
Именно так хотел сделать, чем самому мучиться. Тем более, сам начинающий, в отличие от сотрудника у которого опыта побольше. С которым отношения не важные. Поэтому это я уже давно сделал бы! Но где такое счастье ... все дело в том, что база на сервере, к которой доступ закрыт. Поэтому и приходиться велосипед самому.
И только что еще установил 8.3 может там легче.
Ладно! Попытаюсь сам... по Вами указанной схеме.И при нем как понимаю нужно писать процедуру.
А вообще, я знаю еще характер сотрудника. Дело в том, что он не любит писать много всякого кода. И поэтому нет ли какой нибудь просто галочки в версии уже 8.3 для указанной цели?


Добавлено: 13 апр 2017, 16:45


Опять привет!
Че то не получается ... и это на 2-ом шаге ...  открыть миндально.
Правда, шаг первый не совсем понял:
Цитироватьразметите там поля одноименные и однотипные как колонки в вашей ТЧ
А что значит одноимённые поля и однотипные как колонки в ТЧ?
....
Единственное что смог это вот такую процедуру:
&НаКлиенте
Процедура ТабличнаяЧасть1ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Параметры = Новый Структура("ТекущееЗначение", Элемент);
ФормаВыбора = ПолучитьФорму("Справочник.Справочник1.ФормаВыбора", Параметры);
ВыбЭлемент = ФормаВыбора.ОткрытьМодально();
КонецПроцедуры

Но при нажатии на строку выдает: «поле объекта не доступно для записи (Параметры)»

Блин! Очень прошу Вас подробнее, если можно: 1-ый  2-ой  3-тий  шаги.
По поводу того, куда нажать и код процедуры и это при указанном имени справочника и ТЧ.

ПОЖАЛУЙСТА!
Буду признателен!



LexaK

Какой-то секретной галочки для редактирования строки ТЧ в отдельной форме я не знаю
если вы где-то про нее узнаете, напишите, будет интересно ее поюзать.

а как обычный программист я бы сделал, так как описал выше, там работы всего на 1 час (с отладкой)
ответ Понравился? (в смысле пригодился?)

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск