Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 14:39

Передача БУЛЕВО из реквизита справочника в табличную часть документа

Автор beztrud, 03 июн 2014, 21:19

0 Пользователей и 1 гость просматривают эту тему.

beztrud

Здравствуйте! 1с 8.3 управляемая форма самописная конфигурация. Есть справочник Номенклатура с реквизитами, один из которых имеет тип булево. И есть обработка с табличной частью ИсходныеДанные. Так вот в этой табличной части есть реквизит Номенклатура - Справочник.Номенклатура. При его изменении (или при изменении любого другого реквизита) в строке табличной части должны подтягиваться данные из справочника номенклатура. Все данные строкового и числового типа тащу с сервера например так:

&НаКлиенте
Процедура ИсходныеДанныеВысотаПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.ИсходныеДанные.ТекущиеДанные;
СтрокаТабличнойЧасти.Толщина = ПолучитьТолщинуКромки(СтрокаТабличнойЧасти.КромочныйМатериал);

.........
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьТолщинуКромки(Номенклатура)
Возврат Номенклатура.Толщина;
КонецФункции

С булевым такое не прокатывает. Единственное до чего додумался - ввести в справочник номенклатура доп.реквизит тип строка и заполнять его значение ДА/НЕТ в зависимости от состояния флажка. А затем получать ДА/НЕТ через функцию. Но это как-то коряво! Наверняка должно быть более изящное решение. Спасибо!

wise

Цитата: beztrud от 03 июн 2014, 21:19С булевым такое не прокатывает.

как это ?
и ЧТО возвращает, например, [Номенклатура.Услуга] ??
в отладчике... КАКОЙ ТипЗнч?
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

beztrud

{Обработка.ОбработкаПластика.Форма.Форма.Форма(156)}: Значение не является значением объектного типа (Кант)
   Возврат Номенклатура.Кант;

cska-fanat-kz

Реквизит типа булево абсолютно ничем не отличается от реквизитов типа строка или число.
Лучше приведите код где вы получаете реквизит этого типа.
А то как получать реквизит номенклатуры на сервере - мы и так знаем ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

beztrud


&НаКлиенте
Процедура ИсходныеДанныеВысотаПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.ИсходныеДанные.ТекущиеДанные;
Если СтрокаТабличнойЧасти.КромочныйМатериал.Пустая()
Тогда
Предупреждение("Необходимо выбрать кромочный материал", ,"Внимание!");
Иначе
СтрокаТабличнойЧасти.Толщина = ПолучитьТолщинуКромки(СтрокаТабличнойЧасти.КромочныйМатериал);
СтрокаТабличнойЧасти.ШиринаКромки = ПолучитьШиринуКромки(СтрокаТабличнойЧасти.КромочныйМатериал);
СтрокаТабличнойЧасти.Свес = ПолучитьСвес(СтрокаТабличнойЧасти.КромочныйМатериал);
СтрокаТабличнойЧасти.ПрипускНаПодрезку = ПолучитьПрипускНаПодрезку(СтрокаТабличнойЧасти.КромочныйМатериал);
                СтрокаТабличнойЧасти.Кант=ПолучитьКант(СтрокаТабличнойЧасти.КромочныйМатериал);
                    КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьКант(Номенклатура)
Возврат Номенклатура.Кант;
КонецФункции

Добавлено: 04 июн 2014, 19:58


Извиняюсь за беспокойство, сам разобрался, все работает!!!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск