Не видит реквизит табличной части справочника в модуле объекта документа

1. pfffffff 28.01.24 23:38 Сейчас в теме
Доброго времени суток!
Стоит задача, запретить пользователям проводить документ "ЗаказКлиента" не со своего склада, конфигурация УТ 11 (11.4.14.164) типовая.
Реализация через расширение: добавил справочник Пользователи + добавил к нему табличную часть с реквизитом "Склад" у которого тип "СправочникСсылка.Склады", затем эту табл часть вынес на форму справочника "Пользователи" и в ней указываю для каждого пользователя его склады(максимум два склада). Далее, хочу в модуле объекта документа "ЗаказКлиента" прописать условие, что если пользователь "такой-то" пытается указать склад в документе к которому он не относится (а не относится он если не добавил склад для него в табличную часть справочника "пользователи") тогда запретить проведение.Только вот в модуле объекта документа "ЗаказКлиента" никак не могу увидеть программно данную табличную часть.Программа ругается что такого реквизита нет.Что я делаю не так и как можно решить эту проблему?
P.S. просьба строго не судить, новичок..
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. ActionBlog 29.01.24 09:52 Сейчас в теме
ПараметрыСеанса.ТекущийПользователь.Склады.НайтиСтроки(Новый Структура("Склад", ЭтотОбъект.Склад)).Количество > 0
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 29.01.24 08:24 Сейчас в теме
(1)
Программа ругается что такого реквизита нет.

И правильно делает.
Что я делаю не так

не правильно обращаетесь к реквизиту табличной части.
.... и как можно решить эту проблему?

Правильно обратится к реквизиту ТЧ.

В данном конкретном случае, так понимаю, нужны все строки ТЧ и значения в них, каким образом вы собрались выполнить проверку, обращаясь напрямую к реквизиту - не совсем понятно.

Чтобы обратится к ТЧ конкретного справочника, нужно сначала получить нужный элемент этого справочника.
Дальше уже можно делать

<ЭлементСправочника>.<ИмяТабличнойЧасти>

Чтобы обратится к реквизиту табличной части, нужно сначала получить строку табличной части.
Дальше уже можно делать

<СтрокаТабличнойЧасти>.<ИмяРеквизита>

Но как уже сказано выше, нужны все строки табличной части, поэтому нужны другие способы получения набора значений из ТЧ документа
4. pfffffff 29.01.24 16:26 Сейчас в теме
(2)
Чтобы обратится к ТЧ конкретного справочника, нужно сначала получить нужный элемент этого справочника.
Дальше уже можно делать

То есть следующим образом:

1. СкладП = Справочники.Пользователи.НайтиПоНаименованию("Склад"); получаю нужный элемент справочника
СкладП = Справочники.Пользователи.НайтиПоРеквизиту("Склад"); либо так

2. Склад = СкладП.РазрешенныеСклады.Найти("Склад"); получаю табл часть справочника

3. СкладПользователя = Склад.Склад; получаю сам реквизит
после как прописал условие и пытаюсь провести документ с другим складом выдает ошибку:
Неверно указан реквизит
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1974)}: Результат = Форма.Записать(ПараметрыЗаписи);
{Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(6375)}: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Неверно указан реквизит
по причине:
Неверно указан реквизит
5. user2033930 29.01.24 16:31 Сейчас в теме
(4) То есть метод Найти() для табличной части мы изучать никак не хотим?
6. pfffffff 29.01.24 17:21 Сейчас в теме
(5) хочу, Склад = СкладП.РазрешенныеСклады.Найти("Склад", "Склад");
В качестве значения что передаю "Склад"?а колонка это ведь реквизит табл части,правильно понимаю, т.е. тот самый "склад" который добавлял?
Мне бы последовательность разъяснить с синтаксисом написания, в СП все вроде бы и легко и в тоже время непонятно.
Прикрепленные файлы:
7. user2033930 29.01.24 17:22 Сейчас в теме
8. pfffffff 29.01.24 17:24 Сейчас в теме
(7)СправочникСсылка.Склады
Прикрепленные файлы:
9. user2033930 29.01.24 17:25 Сейчас в теме
(8) А ты в поиск что передаёшь? Подумай.
3. ActionBlog 29.01.24 09:52 Сейчас в теме
ПараметрыСеанса.ТекущийПользователь.Склады.НайтиСтроки(Новый Структура("Склад", ЭтотОбъект.Склад)).Количество > 0
10. pfffffff 30.01.24 23:33 Сейчас в теме
(3) Из-за утомительного дня соображалка вчера была на спаде и что-то не понял суть метода правильным образом,думаю мне он как раз подходит, спасибо большое!!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот