Не видит реквизит табличной части справочника в модуле объекта документа
Доброго времени суток!
Стоит задача, запретить пользователям проводить документ "ЗаказКлиента" не со своего склада, конфигурация УТ 11 (11.4.14.164) типовая.
Реализация через расширение: добавил справочник Пользователи + добавил к нему табличную часть с реквизитом "Склад" у которого тип "СправочникСсылка.Склады", затем эту табл часть вынес на форму справочника "Пользователи" и в ней указываю для каждого пользователя его склады(максимум два склада). Далее, хочу в модуле объекта документа "ЗаказКлиента" прописать условие, что если пользователь "такой-то" пытается указать склад в документе к которому он не относится (а не относится он если не добавил склад для него в табличную часть справочника "пользователи") тогда запретить проведение.Только вот в модуле объекта документа "ЗаказКлиента" никак не могу увидеть программно данную табличную часть.Программа ругается что такого реквизита нет.Что я делаю не так и как можно решить эту проблему?
P.S. просьба строго не судить, новичок..
Стоит задача, запретить пользователям проводить документ "ЗаказКлиента" не со своего склада, конфигурация УТ 11 (11.4.14.164) типовая.
Реализация через расширение: добавил справочник Пользователи + добавил к нему табличную часть с реквизитом "Склад" у которого тип "СправочникСсылка.Склады", затем эту табл часть вынес на форму справочника "Пользователи" и в ней указываю для каждого пользователя его склады(максимум два склада). Далее, хочу в модуле объекта документа "ЗаказКлиента" прописать условие, что если пользователь "такой-то" пытается указать склад в документе к которому он не относится (а не относится он если не добавил склад для него в табличную часть справочника "пользователи") тогда запретить проведение.Только вот в модуле объекта документа "ЗаказКлиента" никак не могу увидеть программно данную табличную часть.Программа ругается что такого реквизита нет.Что я делаю не так и как можно решить эту проблему?
P.S. просьба строго не судить, новичок..
Прикрепленные файлы:
По теме из базы знаний
- Программное добавление кнопок копирования табличных частей во все документы с минимальными изменениями конфигурации (или вообще без изменения)
- Быстрый поиск дублей в 1С с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)
- Работа с данными заполнения
- Табличная часть из дополнительных реквизитов с обработкой событий в расширении
- Табличная часть как поле ввода
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
И правильно делает.
не правильно обращаетесь к реквизиту табличной части.
Правильно обратится к реквизиту ТЧ.
В данном конкретном случае, так понимаю, нужны все строки ТЧ и значения в них, каким образом вы собрались выполнить проверку, обращаясь напрямую к реквизиту - не совсем понятно.
Чтобы обратится к ТЧ конкретного справочника, нужно сначала получить нужный элемент этого справочника.
Дальше уже можно делать
<ЭлементСправочника>.<ИмяТабличнойЧасти>
Чтобы обратится к реквизиту табличной части, нужно сначала получить строку табличной части.
Дальше уже можно делать
<СтрокаТабличнойЧасти>.<ИмяРеквизита>
Но как уже сказано выше, нужны все строки табличной части, поэтому нужны другие способы получения набора значений из ТЧ документа
Программа ругается что такого реквизита нет.
И правильно делает.
Что я делаю не так
не правильно обращаетесь к реквизиту табличной части.
.... и как можно решить эту проблему?
Правильно обратится к реквизиту ТЧ.
В данном конкретном случае, так понимаю, нужны все строки ТЧ и значения в них, каким образом вы собрались выполнить проверку, обращаясь напрямую к реквизиту - не совсем понятно.
Чтобы обратится к ТЧ конкретного справочника, нужно сначала получить нужный элемент этого справочника.
Дальше уже можно делать
<ЭлементСправочника>.<ИмяТабличнойЧасти>
Чтобы обратится к реквизиту табличной части, нужно сначала получить строку табличной части.
Дальше уже можно делать
<СтрокаТабличнойЧасти>.<ИмяРеквизита>
Но как уже сказано выше, нужны все строки табличной части, поэтому нужны другие способы получения набора значений из ТЧ документа
(2)
То есть следующим образом:
1. СкладП = Справочники.Пользователи.НайтиПоНаименованию("Склад"); получаю нужный элемент справочника
СкладП = Справочники.Пользователи.НайтиПоРеквизиту("Склад"); либо так
2. Склад = СкладП.РазрешенныеСклады.Найти("Склад"); получаю табл часть справочника
3. СкладПользователя = Склад.Склад; получаю сам реквизит
после как прописал условие и пытаюсь провести документ с другим складом выдает ошибку:
Неверно указан реквизит
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1974)}: Результат = Форма.Записать(ПараметрыЗаписи);
{Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(6375)}: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Неверно указан реквизит
по причине:
Неверно указан реквизит
Чтобы обратится к ТЧ конкретного справочника, нужно сначала получить нужный элемент этого справочника.
Дальше уже можно делать
Дальше уже можно делать
То есть следующим образом:
1. СкладП = Справочники.Пользователи.НайтиПоНаименованию("Склад"); получаю нужный элемент справочника
СкладП = Справочники.Пользователи.НайтиПоРеквизиту("Склад"); либо так
2. Склад = СкладП.РазрешенныеСклады.Найти("Склад"); получаю табл часть справочника
3. СкладПользователя = Склад.Склад; получаю сам реквизит
после как прописал условие и пытаюсь провести документ с другим складом выдает ошибку:
Неверно указан реквизит
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1974)}: Результат = Форма.Записать(ПараметрыЗаписи);
{Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(6375)}: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Неверно указан реквизит
по причине:
Неверно указан реквизит
(5) хочу, Склад = СкладП.РазрешенныеСклады.Найти("Склад", "Склад");
В качестве значения что передаю "Склад"?а колонка это ведь реквизит табл части,правильно понимаю, т.е. тот самый "склад" который добавлял?
Мне бы последовательность разъяснить с синтаксисом написания, в СП все вроде бы и легко и в тоже время непонятно.
В качестве значения что передаю "Склад"?а колонка это ведь реквизит табл части,правильно понимаю, т.е. тот самый "склад" который добавлял?
Мне бы последовательность разъяснить с синтаксисом написания, в СП все вроде бы и легко и в тоже время непонятно.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот