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

Ошибка в форме для подбора, поле объекта не обнаружен

Автор rr1, 16 апр 2018, 23:05

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

rr1

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


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

Модуль ФормаДокумента:

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

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

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

&НаСервере
Процедура ПересчитатьНаСервере()

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

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

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

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

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

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

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

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

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

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

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

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


Модуль ФормаДляПодбора:

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

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

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

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

oleg-x

Если ФормаПодбора.ОткрытьМодально() = КодВозвратаДиалога.Oк Тогда
Первый раз вижу такую хрень. Что вообще этим ты хотел сделать?
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

wise

(0)СП говорит, что если ты ВЫБРАТЬ что-нибудь ХОТЕЛ, то

"Возвращаемое значение:
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено."

а если ПРОСТО открывал ПОСМОТРЕТЬ, то "Команда закрытия формы."
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

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

Рейтинг@Mail.ru

Поиск