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