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

Помогите найти ошибку

Автор beztrud, 03 окт 2012, 12:45

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

beztrud

1с 8.2 управляемое приложение. Вот код который работает:

&НаКлиенте
Процедура Расчет(Команда)
Элементы.Результат.ДобавитьСтроку();
СтрокаТабличнойЧасти=Элементы.Результат.ТекущиеДанные;
СтрокаТабличнойЧасти.ВысотаВставки=Объект.ВысотаШкафа-
Объект.Цоколь-Объект.Подпятник-
Объект.Горизонталь-Объект.Крышка-
Объект.Треки-Объект.ГоризонтальныйПрофиль;
Если Объект.КоличествоСтворок=2 Тогда
СтрокаТабличнойЧасти.ШиринаВставки=
Цел(((Объект.ШиринаШкафа-
Объект.ТолщинаБоков+Объект.Перехлест)/2)-
КонецЕсли;
Если Объект.КоличествоСтворок=4 Тогда
СтрокаТабличнойЧасти.ШиринаВставки=
Цел((((Объект.ШиринаШкафа-
Объект.ТолщинаБоков+(Объект.Перехлест*2))/3))-
Объект.ВертикальныйПрофиль);
КонецЕсли;
КонецПроцедуры

Если добавить в форму реквизит ТипКупе - Перечисления ТипКупе и написать условие при котором данный код отрабатывается только при условии, что Объекту ТипКупе присвоено значение перечисления Обычный и сделать отработку на сервере, то ошибок не выдает, но и табличная часть не заполняется. Вот пример неработающего кода:

&НаСервере
Процедура Расчет(Команда)
Если Объект.ТипКупе=Перечисления.ТипКупе.Обычный Тогда
Элементы.Результат.ДобавитьСтроку();
СтрокаТабличнойЧасти=Элементы.Результат.ТекущиеДанные;
СтрокаТабличнойЧасти.ВысотаВставки=Объект.ВысотаШкафа-
Объект.Цоколь-Объект.Подпятник-
Объект.Горизонталь-Объект.Крышка-
Объект.Треки-Объект.ГоризонтальныйПрофиль;
Если Объект.КоличествоСтворок=2 Тогда
СтрокаТабличнойЧасти.ШиринаВставки=
Цел(((Объект.ШиринаШкафа-
Объект.ТолщинаБоков+Объект.Перехлест)/2)-
КонецЕсли;
Если Объект.КоличествоСтворок=4 Тогда
СтрокаТабличнойЧасти.ШиринаВставки=
Цел((((Объект.ШиринаШкафа-
Объект.ТолщинаБоков+(Объект.Перехлест*2))/3))-
Объект.ВертикальныйПрофиль);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

chuevsf

ну правильно. На сервере вы заполнили, а на форму, что на клиенте, не передали.
Смотреть функцию "ЗначениеВРеквизитФормы"

пример: ЗначениеВРеквизитФормы(ДокОбъект, "Объект");


Dethmontt

ТекущиеДанные не доступны на сервере

Может как то так?

&НаКлиенте
Процедура Расчет(Команда)
Если Объект.ТипКупе = ПолучитьЗначениеПеречисления("ТипКупе","Обычный") Тогда
Элементы.Результат.ДобавитьСтроку();   
СтрокаТабличнойЧасти=Элементы.Результат.ТекущиеДанные;
СтрокаТабличнойЧасти.ВысотаВставки=Объект.ВысотаШкафа-
Объект.Цоколь-Объект.Подпятник-
Объект.Горизонталь-Объект.Крышка-
Объект.Треки-Объект.ГоризонтальныйПрофиль;
Если Объект.КоличествоСтворок=2 Тогда
СтрокаТабличнойЧасти.ШиринаВставки=
Цел(((Объект.ШиринаШкафа-
Объект.ТолщинаБоков+Объект.Перехлест)/2)-
КонецЕсли;       
Если Объект.КоличествоСтворок=4 Тогда
СтрокаТабличнойЧасти.ШиринаВставки=
Цел((((Объект.ШиринаШкафа-
Объект.ТолщинаБоков+(Объект.Перехлест*2))/3))-
Объект.ВертикальныйПрофиль);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЗначениеПеречисления(Менеджер,ЗначениеПеречисления)

    Возврат Перечисления[Менеджер][ЗначениеПеречисления];

КонецФункции
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск