Обращение к табличной части при создании или изменении документа. #653993


#0 by Dice2307
Подскажите, пожалуйста, как сделать, чтобы при заполнении строк табличной части пользователь не мог выбрать один и тот же элемент справочника в разных строках несколько раз. Наверное, нужно что то написать в процедуре ПриИзменении этого элемента табличной части? Но как проверить, что выбрано в других строках, если документ ещё не записан?
#1 by zladenuw
ТабличнайЧасть.Найти(НоваяСтрока). нашел, не добавляешь.
#2 by elCust
Используй ПередОкончаниемРедактирования, там можно отменить добавление новой строки.
#3 by Dice2307
Табличная часть называется "Оборудование", в ней один реквизит - "Номенклатура". Вот так не даёт писать:
#4 by Rovan
в ПриОкончанииРедактирования
#5 by Dice2307
Там есть только ПриОкончанииВводаТекста
#6 by Rovan
(+4) даже лучше в ПередОкончаниемРедактирования
#7 by Dice2307
Там есть только: ПриИзменении НачалоВыбора НачалоВыбораИзСписка Очистка Регулирование Открытие ОбработкаВыбора Автоподбор ОкончаниеВводаТекста
#8 by zladenuw
табличнаяЧасть.найти. а не реквизит табличной части
#9 by zladenuw
ДенисЧ СП продает. а вообще вот Пример: НайденнаяСтрока = Состав.Найти(ТекТовар, "Номенклатура"); Если НайденнаяСтрока = Неопределено Тогда
#10 by Reset
Найти не подходит для задачи Процитируй, раз взялся, НайтиСтроки
#11 by zladenuw
почему нет ? если проверять на уникальность сразу. то в каждой строке будет одна уникальная номенклатура.
#12 by Reset
Когда сразу? Лепить отдельный механизм выбора, отвязанный от элемента формы? Найти не подходит, так как будет находить номенклатуру в текущей строке, а не дубль
#13 by Dice2307
Нашёл процедуры ПриОкончанииРедактирования и ПередОкончаниемРедактирования у самой табличной части документа, а не у её элемента Говорит, что нельзя обратиться так - ТекущаяСтрока: Документ.Поступление.Форма.ФормаДокумента.Форма(4,2)}: Переменная не определена (ТекущаяСтрока)
#14 by Dice2307
И пример zladenuw тоже не получается: {Документ.Поступление.Форма.ФормаДокумента.Форма(4,19)}: Переменная не определена (Состав)
#15 by kosts
Для удобства пользователей можно подсвечивать серым шрифтом строки в форме выбора, которые уже есть в документе (и не реагировать на их выбор).
#16 by Reset
+ Но проверку все равно делать, так могут ввести "по строке", скопировать строку
#17 by Xatori
Да сгруппируй данные перед последующей обработкой и всего делов и пусть добавляют сколько угодно.
#18 by Dice2307
Парни, я совсем новичок. Что писать то.. ТекущаяСтрока - он не понимает.
#19 by Dice2307
ой, то есть ТабличнаяЧасть не понимает
#20 by Xatori
Да и собственно почему не обратится в модуле формы к самой табличной части например ЭтаФорма.СписокДокументовВыработкаОС СписокДокументовВыработкаОС - ТЧ. Методы работы с ТЧ думаю не надо писать.
#21 by Reset
Объект.Оборудование - вот твоя "табличная часть". Только это не табличная часть, строго говоря, а ДанныеФормыКоллекция
#22 by Xatori
а где то писали что Управляемая форма? что то я пропустил)) Да там на 5 строчек кода, неинтересно)
#23 by Reset
Телепатия, 2 дан
#24 by Dice2307
Форма управляемая, да.
#25 by Xatori
:) ГрандМастер прям, грац
#26 by notebug
#27 by kosts
CODE заменяй на 1с, будет работать
#28 by kosts
"Дубли в строке: " пиши человеческим языком, как-то так Товар <Name> уже введен в строке №
#29 by notebug
нафиг мне это писать =) Это же пример. Как будет ТС делать - это уже меня не волнует =)
#30 by kosts
=) Я что то подумал, что это ТС так сделал...
#31 by Dice2307
Всем большое спасибо за терпение! Особенно notebug - этот пример заработал!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С