Автоматическая подстановка значений из справочника
Здравия всем!
1С 8.2.
Имеем:
Справочник "Номенклатура"
с реквизитами "Наименование" (стандартный) и "ЕдиницаИзмерения".
Документ "Заявка" с табличной частью "СодержаниеЗаявки"
и реквизитами в таблице "Наименование", "ЕдиницаИзмерения".
Тип элемента "Наименование" - СправочникСсылка.Номенклатура
Создал общий модуль "РаботаСДокументами", в котором прописал функцию:
В документе в событии ПриИзменении() элемента "СодержаниеЗаявкиНаименование" вписал так:
Ожидал, что при заполнении документа при выборе Номенклатуры, единица измерения будет заполняться автоматически из справочника.
А выходит вот такая ошибка:
Что нужно исправить, или может быть как-то по другому можно решить вопрос?
1С 8.2.
Имеем:
Справочник "Номенклатура"
с реквизитами "Наименование" (стандартный) и "ЕдиницаИзмерения".
Документ "Заявка" с табличной частью "СодержаниеЗаявки"
и реквизитами в таблице "Наименование", "ЕдиницаИзмерения".
Тип элемента "Наименование" - СправочникСсылка.Номенклатура
Создал общий модуль "РаботаСДокументами", в котором прописал функцию:
Функция ПодстановкаЕдиницИзмерения (ЭлемНоменклатуры) Экспорт
ЭлемОтбора = Новый Структура("Наименование", ЭлемНоменклатуры);
ЗначЭлемента = Справочники.Номенклатура.ПолучитьДанныеВыбора(ЭлемОтбора);
Возврат ЗначЭлемента.ЕдиницаИзмерения;
КонецФункции
В документе в событии ПриИзменении() элемента "СодержаниеЗаявкиНаименование" вписал так:
Строка = Элементы.СодержаниеЗаявки.ТекущиеДанные;
Строка.ЕдиницаИзмерения = РаботаСДокументами.ПодстановкаЕдиницИзмерения(Строка.Наименование);
Ожидал, что при заполнении документа при выборе Номенклатуры, единица измерения будет заполняться автоматически из справочника.
А выходит вот такая ошибка:
{ОбщийМодуль.РаботаСДокументами.Модуль(4)}: Поле объекта не обнаружено (ЕдиницаИзмерения)
Возврат ЗначЭлемента.ЕдиницаИзмерения;
Возврат ЗначЭлемента.ЕдиницаИзмерения;
Что нужно исправить, или может быть как-то по другому можно решить вопрос?
По теме из базы знаний
- Автоматическая подстановка значений характеристик на неуправляемых формах
- 1С:Музей
- Универсальная загрузка документа Excel в таблицу значений
- Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений
- Блокировка элементов справочников от изменений
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ПолучитьДанныеВыбора() возвращает список значений, у которого, понятное дело, нет реквизита "ЕдиницаИзмерения". Это непосредственная причина ошибки.
Стандартный реквизит "Наименование" - это строка. Ссылку там искать - занятие безблагодатное.
Если нужен реквизит элемента справочника, он получается запросом с условием по ссылке.
Стандартный реквизит "Наименование" - это строка. Ссылку там искать - занятие безблагодатное.
Если нужен реквизит элемента справочника, он получается запросом с условием по ссылке.
(4)
Внутри документа любые манипуляции проходят, без проблем, например вот:
- это если известно количество, общая стоимость, за которую готовы отдать это количество, и осталось определиться с ценой за штуку.
А вот с выходом на другие объекты - беда получается.
Каким-то чудом удалось реализовать получение актуальных цен из РегистрыСведений, используя общий модуль. Но, пытаясь по тому же принципу получить данные из справочника, постоянно натыкаюсь на какие-то ошибки.
Строка.ЕдиницаИзмерения = Строка.Наименование.ЕдиницаИзмерения;
У наименования нет же параметра "Единица измерения"? Откуда он там возьмется?
&НаКлиенте
Процедура СодержаниеЗаявкиНаименованиеПриИзменении(Элемент)
// Объявляю переменную, которой присваиваю текущие данные всех элементов
Строка = Элементы.СодержаниеЗаявки.ТекущиеДанные;
// Параметру ЕдиницаИзмерения присваиваю результат вычисления функции,
// где в функцию отправляю значение столбца "Наименование"
Строка.ЕдиницаИзмерения = РаботаСДокументами.ПодстановкаЕдиницИзмерения(Строка.Наименование);
КонецПроцедуры
Внутри документа любые манипуляции проходят, без проблем, например вот:
&НаКлиенте
Процедура СодержаниеЗаявкиСтоимостьПриИзменении(Элемент)
Строка = Элементы.СодержаниеЗаявки.ТекущиеДанные;
Строка.Цена = Строка.Стоимость / Строка.Количество;
КонецПроцедуры
- это если известно количество, общая стоимость, за которую готовы отдать это количество, и осталось определиться с ценой за штуку.
А вот с выходом на другие объекты - беда получается.
Каким-то чудом удалось реализовать получение актуальных цен из РегистрыСведений, используя общий модуль. Но, пытаясь по тому же принципу получить данные из справочника, постоянно натыкаюсь на какие-то ошибки.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот