Имя: Пароль:
1C
1С v8
Ошибка в форме для подбора, поле объекта не обнаружено
0 ilyuza95
 
17.04.18
17:11
Есть Документ ПродажаТоваров. Ошибок при сохранении конфигурации не возникает, но после выбора в форме для подбора товар\услугу, выходит ошибка:

{Документ.ПродажаТоваров.Форма.ФормаДокумента.Форма(74)}: Поле объекта не обнаружено (Oк)
   Если ФормаПодбора.ОткрытьМодально() = КодВозвратаДиалога.Oк Тогда

Все команды и кнопки в формах прописаны вроде как правильно, переписывались несколько раз уже. Все равно одна и та же ошибка

Модуль ФормаДокумента:
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
    Стр = Элементы.Товары.ТекущиеДанные;
    Стр.Сумма = Стр.Количество * Стр.Цена;
    Объект.СуммаДокумента=Объект.Товары.Итог("Сумма");
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЦенуНоменклатуры(Дата, Контрагент,Номенклатура)
        Отбор=Новый Структура("Контрагент, Номенклатура", Контрагент, Номенклатура);
    Запись = РегистрыСведений.ЦеныПоставщиков.ПолучитьПоследнее(Дата,Отбор);
    Возврат Запись.Цена;
КонецФункции

&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
    Стр = Элементы.Товары.ТекущиеДанные;
    Стр.Цена=ПолучитьЦенуНоменклатуры(Объект.Дата, Объект.Контрагент, Стр.Номенклатура);
    ТоварыКоличествоПриИзменении(Элемент);
КонецПроцедуры

&НаСервере
Процедура ПересчитатьНаСервере()
    
    Документ = РеквизитФормыВЗначение("Объект");
    Документ.Пересчитать();
    ЗначениеВРеквизитФормы(Документ, "Объект");
    
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    ПараметрыОпций = Новый Структура("КонтактноеЛицо", Объект.Контрагент);
    УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыОпций);
    
КонецПроцедуры

&НаСервере
Процедура КонтрагентПриИзмененииСервер()
    Документ = РеквизитФормыВЗначение("Объект");
    Документ.Пересчитать();
    ЗначениеВРеквизитФормы(Документ, "Объект");
КонецПроцедуры

   &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    ПараметрыОпций = Новый Структура("КонтактноеЛицо", Объект.Контрагент);
    УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыОпций);

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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Объект.СуммаДокумента=Объект.Товары.Итог("Сумма");
КонецПроцедуры

&НаСервере
Функция ПоместитьТоварыВХранилище()
    Возврат ПоместитьВоВременноеХранилище(Объект.Товары.Выгрузить(,"Номенклатура,Количество"), УникальныйИдентификатор);
КонецФункции    

&НаСервере
Процедура ПолучитьТоварыИзХранилища(Адрес)
    Объект.Товары.Загрузить(ПолучитьИзВременногоХранилища(Адрес));
КонецПроцедуры

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


Модуль ФормаДляПодбора:
&НаКлиенте
Процедура ОкВыполнить(Команда)
    ЗаписатьПодборВХранилище();
    Закрыть(КодВозвратаДиалога.Ок);
КонецПроцедуры

&НаСервере
Процедура ЗаписатьПодборВХранилище()
    ПоместитьВоВременноеХранилище(Товары.Выгрузить(), Параметры.Адрес);
КонецПроцедуры

&НаКлиенте
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Номенклатура = Элемент.ТекущаяСтрока;
    Строки = Товары.НайтиСтроки(Новый Структура("Номенклатура", Номенклатура));
    Если Строки.Количество() > 0 Тогда
        Строки[0].Количество =     Строки[0].Количество + 1;
    Иначе
        Стр = Товары.Добавить();
        Стр.Номенклатура = Номенклатура;
        Стр.Количество = 1;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Список.Параметры.УстановитьЗначениеПараметра("Склад",Параметры.Склад);
КонецПроцедуры
1 cw014
 
17.04.18
17:52
Отладчик на эту строку пробовал ставить?