Ошибка «Метод объекта не обнаружен» при обработке табличной части

1. user1427827 02.03.21 15:46 Сейчас в теме
Помогите пожалуйста новичку
Есть Справочник в котором есть табличная часть(ТабличнаяЧасть1) состоящая из реквизит1; реквизит2; реквизит3;
Задача нужно перед сохранение проверить есть ли в какой либо строке «реквизит2» со значением «основной продукт» если нет то отказ в записи.
вот что своял:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЗ = Объект.ТабличнаяЧасть1();
	Потеряшка = ТЗ.Найти ("основной продукт","Реквизит2");
	Если Потеряшка = Неопределено тогда
		Сообщить("НЕТ ОСНОВНОЙ ПОЗИЦИИ!");
\\Отказ = истина; 
		КонецЕсли;
КонецПроцедуры
Показать


В итоге получаю ошибку
{Справочник.Наборы.Форма.ФормаЭлемента.Форма(50)}: Метод объекта не обнаружен (Найти)
Потеряшка = ТЗ.Найти ("основной продукт","Реквизит2");
По теме из базы знаний
Найденные решения
6. spacecraft 02.03.21 16:55 Сейчас в теме
(1)
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЧ = Объект.ТабличнаяЧасть1;
    Потеряшки = ТЧ.НайтиСтроки (Новый Структура("Реквизит2","основной продукт"));
    Если Потеряшки.Количество() = 0 тогда
        Сообщить("НЕТ ОСНОВНОЙ ПОЗИЦИИ!");
        КонецЕсли;
КонецПроцедуры
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. Nubsdale 02.03.21 15:54 Сейчас в теме
(1) А если табличную часть обойти через "Для каждого" ?
6. spacecraft 02.03.21 16:55 Сейчас в теме
(1)
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЧ = Объект.ТабличнаяЧасть1;
    Потеряшки = ТЧ.НайтиСтроки (Новый Структура("Реквизит2","основной продукт"));
    Если Потеряшки.Количество() = 0 тогда
        Сообщить("НЕТ ОСНОВНОЙ ПОЗИЦИИ!");
        КонецЕсли;
КонецПроцедуры
2. Климов Сергей 02.03.21 15:53 Сейчас в теме
&НаСервере выполняйте проверку
4. user1427827 02.03.21 16:28 Сейчас в теме
(2)т.е. нужно создать Функцию &НаСервере
5. KVIKS 396 02.03.21 16:51 Сейчас в теме
(4)Да, ТЗ отрабатывает только на сервере, точнее то что в ТЗ = табличная часть, Функция табличной части отрабатывается только на сервере. Для каждой функции и метода в синтаксис помощнике написано внизу где она может срабатывать (клиент, сервер, сом-соединение и тд).
7. 17808849 58 03.03.21 07:10 Сейчас в теме
(4) не надо создавать новые процедуры, когда есть стандартные.
В тонком клиенте обработать табличную часть можно только на сервере.
Вызывать сервер с клиента, это затратно в плане ресурсов.
Для данной проверке можно использовать стандартную процедуру "ПередЗаписьюНаСервере".

По поводу перебора циклом:
Время на обход цикла "для каждого" в разы больше метода табличной части "НайтиСтроки"
8. SlavaKron 03.03.21 09:28 Сейчас в теме
(7)
Время на обход цикла "для каждого" в разы больше метода табличной части "НайтиСтроки"
Это если на сервере.
9. 17808849 58 03.03.21 11:02 Сейчас в теме
(8)
я на обход цикла "для каждого" в разы бо

Разницы нет на сервере или клиенте, если взять за данность, что мощности и загруженности одинаковые. (ну или сервер и клиент один и тот же компьютер)
10. SlavaKron 03.03.21 11:28 Сейчас в теме
(9) Я про то, что НайтиСтроки на клиенте делает серверный вызов.
11. 17808849 58 03.03.21 11:31 Сейчас в теме
(10)
НайтиСтроки

Найти строки не доступен на клиенте в принципе
12. SlavaKron 03.03.21 11:34 Сейчас в теме
(11) Ошибаетесь. В общем-то ответ, помеченный правильным, как раз использует этот метод на клиенте.
Прикрепленные файлы:
13. 17808849 58 03.03.21 11:35 Сейчас в теме
(12) Табличная часть (Tabular section)
НайтиСтроки (FindRows)

Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
14. SlavaKron 03.03.21 11:38 Сейчас в теме
(13) Понятно, мы о разных объектах ведем речь.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)