Ошибка «Метод объекта не обнаружен» при обработке табличной части
Помогите пожалуйста новичку
Есть Справочник в котором есть табличная часть(ТабличнаяЧасть1) состоящая из реквизит1; реквизит2; реквизит3;
Задача нужно перед сохранение проверить есть ли в какой либо строке «реквизит2» со значением «основной продукт» если нет то отказ в записи.
вот что своял:
В итоге получаю ошибку
{Справочник.Наборы.Форма.ФормаЭлемента.Форма(50)}: Метод объекта не обнаружен (Найти)
Потеряшка = ТЗ.Найти ("основной продукт","Реквизит2");
Есть Справочник в котором есть табличная часть(ТабличнаяЧасть1) состоящая из реквизит1; реквизит2; реквизит3;
Задача нужно перед сохранение проверить есть ли в какой либо строке «реквизит2» со значением «основной продукт» если нет то отказ в записи.
вот что своял:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЗ = Объект.ТабличнаяЧасть1();
Потеряшка = ТЗ.Найти ("основной продукт","Реквизит2");
Если Потеряшка = Неопределено тогда
Сообщить("НЕТ ОСНОВНОЙ ПОЗИЦИИ!");
\\Отказ = истина;
КонецЕсли;
КонецПроцедуры
ПоказатьВ итоге получаю ошибку
{Справочник.Наборы.Форма.ФормаЭлемента.Форма(50)}: Метод объекта не обнаружен (Найти)
Потеряшка = ТЗ.Найти ("основной продукт","Реквизит2");
По теме из базы знаний
- Групповая обработка справочников и документов (Управляемая форма) v 4.0 (+English version)
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Расширение для интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
- Заполнение документа "Премия" из файла Excel (Табельный номер + Сумма премии) с использованием внешней обработки заполнения табличной части и расширения. ЗУП 3.1
- API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3
Найденные решения
(1)
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЧ = Объект.ТабличнаяЧасть1;
Потеряшки = ТЧ.НайтиСтроки (Новый Структура("Реквизит2","основной продукт"));
Если Потеряшки.Количество() = 0 тогда
Сообщить("НЕТ ОСНОВНОЙ ПОЗИЦИИ!");
КонецЕсли;
КонецПроцедуры
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЧ = Объект.ТабличнаяЧасть1;
Потеряшки = ТЧ.НайтиСтроки (Новый Структура("Реквизит2","основной продукт"));
Если Потеряшки.Количество() = 0 тогда
Сообщить("НЕТ ОСНОВНОЙ ПОЗИЦИИ!");
КонецЕсли;
КонецПроцедуры
(4)Да, ТЗ отрабатывает только на сервере, точнее то что в ТЗ = табличная часть, Функция табличной части отрабатывается только на сервере. Для каждой функции и метода в синтаксис помощнике написано внизу где она может срабатывать (клиент, сервер, сом-соединение и тд).
(4) не надо создавать новые процедуры, когда есть стандартные.
В тонком клиенте обработать табличную часть можно только на сервере.
Вызывать сервер с клиента, это затратно в плане ресурсов.
Для данной проверке можно использовать стандартную процедуру "ПередЗаписьюНаСервере".
По поводу перебора циклом:
Время на обход цикла "для каждого" в разы больше метода табличной части "НайтиСтроки"
В тонком клиенте обработать табличную часть можно только на сервере.
Вызывать сервер с клиента, это затратно в плане ресурсов.
Для данной проверке можно использовать стандартную процедуру "ПередЗаписьюНаСервере".
По поводу перебора циклом:
Время на обход цикла "для каждого" в разы больше метода табличной части "НайтиСтроки"
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)