|
Ошибка отображения типов | ☑ | ||
---|---|---|---|---|
0
amadeus2010
08.10.12
✎
13:30
|
Добрый день при вызове клиентской процедуры из серверной выходит ошибка
{Документ.ЗаказПокупателя.Форма.ФормаДокументаУпр.Форма(424)}: Ошибка при вызове метода контекста (ПриИзмененииНоменклатуры) ПриИзмененииНоменклатуры(Элементы.Товары.ТекущиеДанные); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции' Вот эти процедуры ///////////////////////////////////////////////////////////////// &НаСервере Процедура ПриИзмененииНоменклатуры(Элементы) МодульОбъекта=РеквизитФормыВЗначение("Объект"); МодульОбъекта.ПриИзмененииНоменклатурыТоваров(Элементы); ЗначениеВРеквизитФормы(МодульОбъекта, "Объект"); КонецПроцедуры &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные; ПриИзмененииНоменклатуры(Элементы.Товары.ТекущиеДанные); УправлениеАкцизами.РассчитатьАкцизТабЧасти(СтрокаТабличнойЧасти, Объект); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Объект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Объект); КонецПроцедуры ///////////////////////////////////////////////////////////////////// После отображения ошибки поле номенклатура заполняется выбранным товаром. |
|||
1
Maxus43
08.10.12
✎
13:32
|
на толстом клиенте встречался, баг платформы, перезапуск службы помогал. какая платформа?
|
|||
2
DrShad
08.10.12
✎
13:32
|
класс, а вопрос в чем?
|
|||
3
DrShad
08.10.12
✎
13:33
|
(1) да причем тут баг? он передает в процедуру не тот параметр
|
|||
4
Maxus43
08.10.12
✎
13:34
|
(3) да хз, на толстом видел такой именно баг)
|
|||
5
amadeus2010
08.10.12
✎
13:35
|
(1) платформа 8.2.14.519, конфигурация УПП 1.2 не типовая
|
|||
6
amadeus2010
08.10.12
✎
13:36
|
(3) перевожу конфу на управляемое приложение, (2)не подскажите про параметр?
|
|||
7
DrShad
08.10.12
✎
13:37
|
Процедура ПриИзмененииНоменклатуры(Элементы)
ПриИзмененииНоменклатуры(Элементы.Товары.ТекущиеДанные); разницу не замечаешь? |
|||
8
amadeus2010
08.10.12
✎
13:42
|
(7)про имя процедуры и указание параметров в вызове процедуры на клиенте?
|
|||
9
DrShad
08.10.12
✎
13:45
|
(8) про тип параметра, пилять
|
|||
10
amadeus2010
08.10.12
✎
13:51
|
сделал так
////////////////////////////////////////////////////////////// &НаСервере Процедура ПриИзмененииНоменклатуры() МодульОбъекта=РеквизитФормыВЗначение("Объект"); МодульОбъекта.ПриИзмененииНоменклатурыТоваров(Элементы); ЗначениеВРеквизитФормы(МодульОбъекта, "Объект"); КонецПроцедуры &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные; ПриИзмененииНоменклатуры(); //Комкон Акцизы Начало( УправлениеАкцизами.РассчитатьАкцизТабЧасти(СтрокаТабличнойЧасти, Объект); //Комкон Акцизы Конец) ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Объект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Объект); КонецПроцедуры ////////////////////////////////////////////////////////////////////////// |
|||
11
amadeus2010
08.10.12
✎
13:59
|
теперь выдало ошибку
Документ.ЗаказПокупателя.МодульОбъекта(2944)}: Поле объекта не обнаружено (Цена) СуммаСтроки = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество + СтрокаТабличнойЧасти.СуммаАкциза; Привожу саму процедуру из общего модуля /////////////////////////////////////////////////////////////////// Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти,СтавкаНДСПоУмолчанию = Неопределено) Экспорт //Комкон Акцизы Начало( //комкон Акциз СуммаСтроки = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; СуммаСтроки = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество + СтрокаТабличнойЧасти.СуммаАкциза; //комкон Акцизы Конец) // Выполнить общие действия для всех документов при изменении номенклатуры. ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Заполняем реквизиты табличной части. Если ТипЗнч(СтавкаНДСПоУмолчанию) = Тип("ПеречислениеСсылка.СтавкиНДС") И ЗначениеЗаполнено (СтавкаНДСПоУмолчанию) Тогда СтрокаТабличнойЧасти.СтавкаНДС = СтавкаНДСПоУмолчанию; Иначе ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, "Реализация"); КонецЕсли; ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета); //Расчет скидок Если РассчитыватьАвтоматическиеСкидки() Тогда СуммаСтрокиПослеИзменения = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; мСуммаДокументаБезСкидок = мСуммаДокументаБезСкидок + СуммаСтрокиПослеИзменения - СуммаСтроки; СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить("ВидРеализации", Перечисления.ВидыСкидок.Оптовая); СтруктураПараметров.Вставить("СуммаДокумента", мСуммаДокументаБезСкидок); СтруктураПараметров.Вставить("Карта", ДисконтнаяКарта); СтруктураПараметров.Вставить("УчитыватьНДС", УчитыватьНДС); СтруктураПараметров.Вставить("СуммаВключаетНДС", СуммаВключаетНДС); СтруктураПараметров.Вставить("ВалютаРегламентированногоУчета", мВалютаРегламентированногоУчета); СтруктураПараметров.Вставить("УчетнаяПолитика", мУчетнаяПолитика); ОбработкаТабличныхЧастей.РассчитатьСкидкиПриПродаже(ЭтотОбъект, Товары, СтруктураПараметров, мМинимальныеЦены, мСписокФильтров); Иначе // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; // Рассчитываем плановую себестоимость. ОбработкаТабличныхЧастей.РассчитатьПлановуюСебестоимостьВСтрокеТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета); СтрокаТабличнойЧасти.Спецификация = УправлениеПроизводством.ОпределитьСпецификациюПоУмолчанию( СтрокаТабличнойЧасти.Номенклатура, СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры, Дата, Подразделение); ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "Товары", ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете); // Ввод состава набора УправлениеЗапасами.ДобавитьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииНоменклатурыТоваров() /////////////////////////////////////////////////////////////////////////////// |
|||
12
amadeus2010
08.10.12
✎
14:22
|
ау есть кто-нибудь? прошу помощи,помогите разобраться с ошибкой
|
|||
13
DrShad
08.10.12
✎
14:24
|
МодульОбъекта.ПриИзмененииНоменклатурыТоваров(Элементы);
вот что ты передаешь туда? |
|||
14
amadeus2010
08.10.12
✎
14:28
|
(13) пытаюсь обратиться к экспортной процедуре и передать строку таб части, но так не получается СтрокаТабличной Части или Элементы.Товары.ТекущиеДанные, так не предусмотрено это в серверной части
|
|||
15
DrShad
08.10.12
✎
14:29
|
(14) [пытаюсь обратиться к экспортной процедуре и передать строку таб части] ну и где ты пытаешься? все что ты передаешь не Строка таб части
|
|||
16
amadeus2010
08.10.12
✎
14:31
|
сделал так
///////////////////////////////////////////////////// &НаСервере Процедура ПриИзмененииНоменклатуры() МодульОбъекта=РеквизитФормыВЗначение("Объект"); МодульОбъекта.ПриИзмененииНоменклатурыТоваров(); ЗначениеВРеквизитФормы(МодульОбъекта, "Объект"); КонецПроцедуры &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные; ПриИзмененииНоменклатуры(); //Комкон Акцизы Начало( УправлениеАкцизами.РассчитатьАкцизТабЧасти(СтрокаТабличнойЧасти, Объект); //Комкон Акцизы Конец) ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Объект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Объект); КонецПроцедуры ///////////////////////////////////////////////////////////////////////// выдает ошибку {Документ.ЗаказПокупателя.Форма.ФормаДокументаУпр.Форма(215)}: Недостаточно фактических параметров МодульОбъекта.ПриИзмененииНоменклатурыТоваров(); (14) как в серверной части можно обратиться к табличной части документа? |
|||
17
DrShad
08.10.12
✎
14:33
|
(16) потому что ты без параметров обращаешься
|
|||
18
amadeus2010
08.10.12
✎
14:35
|
а что указать в качестве параметра?
|
|||
19
amadeus2010
08.10.12
✎
14:36
|
если указать Элемент или имя табличной части то выходит ошибка
|
|||
20
DrShad
08.10.12
✎
14:48
|
нужно передать строку таб части - очевидно же, что ни Элементы ни Имя ТЧ не являются строкой ТЧ
|
|||
21
pumbaEO
08.10.12
✎
14:50
|
(20)
Для ТС - это не очевидно. Для ТС - проще спросить и ныть потом о помощи, чем подумать. p.s.: ТС уже ничего не поможет, и не знаю то ли мама с папой не старались, то ли перестарались. |
|||
22
amadeus2010
08.10.12
✎
14:57
|
(20),(21)
СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные; МодульОбъекта.ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти.Номенклатура); единственное что приходит на ум, добавить в серверной части |
|||
23
DrShad
08.10.12
✎
14:59
|
(22) помогло?
|
|||
24
DrShad
08.10.12
✎
14:59
|
+(23) опять же СтрокаТабличнойЧасти.Номенклатура <> СтрокаТабличнойЧасти
|
|||
25
amadeus2010
08.10.12
✎
15:12
|
сделал так
/////////////////////////////////////////////////////////// &НаСервере Процедура ПриИзмененииНоменклатуры() СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные; МодульОбъекта=РеквизитФормыВЗначение("Объект"); МодульОбъекта.ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти.Номенклатура); ЗначениеВРеквизитФормы(МодульОбъекта, "Объект"); КонецПроцедуры //////////////////////////////////////////////////////////////// вышла ошибка "Ошибка при получении значения атрибута контекста (ТекущиеДанные) СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные;" |
|||
26
amadeus2010
08.10.12
✎
15:34
|
(24) объясните пожалуйста значение ошибки, дополнительно к (25)
Ошибка при получении значения атрибута контекста (ТекущиеДанные) СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные; Текущие данные таблицы недоступны на сервере |
|||
27
DrShad
08.10.12
✎
15:41
|
ну нет на сервере текущих данных Элементов
|
|||
28
amadeus2010
08.10.12
✎
15:45
|
(27) это я тоже понял, а как можно передать параметры табличной части на сервере? через Объект?
|
|||
29
amadeus2010
09.10.12
✎
08:07
|
(27) это я тоже понял, а как можно передать параметры табличной части на сервере? через Объект?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |