|
Недоступны объект и реквизиты номеклатуры |
☑ |
0
wizards
13.12.16
✎
21:58
|
Добрый вечер. УТ 11.2, из формы документа мастер чека ККМ при обновлении данных информационной панели в общий модуль НоменклатураКлиентСервер передаются ТекущиеДанные.Номенклатура (Форма.Объект.Товары.НайтиПоИдентификатору(ТекущаяСтрока)) для формирования представления номенклатуры. Это происходит несколько раз, при первой передаче при выполнении Shift + F9 (Вычислить выражение) доступны реквизиты номенклатуры и соответственно в общем модуле я могу получить объект номенклатуры и добавить в представление например артикул. При последующих передачах реквизиты недоступны, как и метод ПолучитьОбъект(). Тип передаваемого значения ТекущиеДанные.Номенклатура во всех случаях "СправочникСсылка.номенклатура", на всякий случай в общем модуле поставил галку "Вызов сервера", не помогает. Кто знает, отпишитесь по сабжу.
|
|
1
Мимохожий Однако
13.12.16
✎
22:02
|
Расшифруй " При последующих передачах". Отладчиком проверял, что по этой кнопке срабатывает?
|
|
2
wizards
13.12.16
✎
22:08
|
В форме документа мастер чека ККМ несколько раз вызывается процедура
//////////////////
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьДанныеИнформационнойПанели
ТекущиеДанные = Форма.Объект.Товары.НайтиПоИдентификатору(ТекущаяСтрока);
НаименованиеТовара = "";
Если ТекущиеДанные <> Неопределено Тогда
Если ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда
НаименованиеТовара = НоменклатураКлиентСервер.ПредставлениеНоменклатуры(
ТекущиеДанные.Номенклатура,
ТекущиеДанные.Характеристика,
ТекущиеДанные.Серия);
А в общем модуле
//////////////////////////////
Функция ПредставлениеНоменклатуры(НоменклатураПредставление, ХарактеристикаПредставление, СерияПредставление = "", НазначениеПредставление = "") Экспорт
СтрПредставление = СокрЛП(НоменклатураПредставление);
Если ТипЗнч(НоменклатураПредставление) = Тип("СправочникСсылка.Номенклатура") Тогда
НоменклатураОбъект = НоменклатураПредставление.ПолучитьОбъект();
СтрПредставление = СтрПредставление + " (" + СокрЛП(НоменклатураОбъект.Артикул) + ")";
КонецЕсли;
|
|
3
Мимохожий Однако
13.12.16
✎
22:09
|
Еще раз.. Отладчиком в эту процедуру попадаешь сколько раз?
|
|
4
wizards
13.12.16
✎
22:10
|
3 раза. В первый раз доступен объект и реквизиты, в последующие нет, хотя тип значения одинаков
|
|
5
Мимохожий Однако
13.12.16
✎
22:14
|
Какой смысл вызывать трижды? Если это при проведении, то возможно не успевает завершиться транзакция.
|
|
6
wizards
13.12.16
✎
22:17
|
Это типовые процедуры. 1 раз при подборе, 2 раз при активизации строки, 3 раз при пересчете документа на клиенте
|
|
7
wizards
13.12.16
✎
22:22
|
Кажется понял в чем проблема. В процедуру ОбновитьДанныеИнформационнойПанели каждый раз передается ЭтотОбъект, в 1 случае ЭтотОбъект идет с сервера (соотв-но доступны реквизиты), во 2 и 3 случаях - с клиента
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший