ОбработкаПроверкиЗаполнения в табличной части

1. Metabos 29 13.05.24 17:52 Сейчас в теме
Добрый день!
Есть необходимость выдавать ошибку в табличной части справочника, при незаполненной ячейке при определенном условии.
Скажите, можно это обработать с помощью ОбработкаПроверкиЗаполнения?
По теме из базы знаний
Найденные решения
4. FUXEARA 13.05.24 18:06 Сейчас в теме
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) 
	
	Индекс = ПроверяемыеРеквизиты.Найти("Товары.Характеристика");
	ПроверяемыеРеквизиты.Удалить(Индекс);

	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ    
	|	ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
	|	ТаблицаТоваров.Номенклатура КАК Номенклатура
	|ИЗ
	|	Документ.РеализацияРекламныхМетериалов.Товары КАК ТаблицаТоваров
	|ГДЕ
	|   ТаблицаТоваров.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
	|	И ТаблицаТоваров.Номенклатура.ИспользованиеХарактеристик В (ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры),
	|															  ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры),
	|															  ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры))		
	|	И ТаблицаТоваров.Ссылка = &Ссылка
	|	И ТаблицаТоваров.Ссылка.ПометкаУдаления = ЛОЖЬ";
	Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);	
	Результат = Запрос.Выполнить();
	ТекстОшибки = "";
	Если Не Результат.Пустой() Тогда  
		ТекстОшибки = "Обнаружены ошибки:" + Символы.ПС;
		Выборка = Результат.Выбрать();
		Пока ВЫборка.Следующий() Цикл 
			ТекстОшибки = ТекстОшибки + " " + Строка(Выборка.Номенклатура) + ", в строке - " + Строка(Выборка.НомерСтроки) + Символы.ПС;
		КонецЦикла;
		СообщенияПользователюБЗК.СообщитьПользователю(ТекстОшибки);  
		ОТказ = Истина;
	КонецЕсли;
КонецПроцедуры
Показать
8. spacecraft 13.05.24 22:05 Сейчас в теме
(1) Можно
(3) хмм. В СП даже такой пример приведен.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FUXEARA 13.05.24 17:55 Сейчас в теме
(1) да можно,я что-то подобное делал. Но можно и свое создать, при записи и свою процедуру проверки
3. Sashares 35 13.05.24 18:01 Сейчас в теме
(1)
при определенном условии

Нет.
8. spacecraft 13.05.24 22:05 Сейчас в теме
(1) Можно
(3) хмм. В СП даже такой пример приведен.
4. FUXEARA 13.05.24 18:06 Сейчас в теме
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) 
	
	Индекс = ПроверяемыеРеквизиты.Найти("Товары.Характеристика");
	ПроверяемыеРеквизиты.Удалить(Индекс);

	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ    
	|	ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
	|	ТаблицаТоваров.Номенклатура КАК Номенклатура
	|ИЗ
	|	Документ.РеализацияРекламныхМетериалов.Товары КАК ТаблицаТоваров
	|ГДЕ
	|   ТаблицаТоваров.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
	|	И ТаблицаТоваров.Номенклатура.ИспользованиеХарактеристик В (ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры),
	|															  ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры),
	|															  ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры))		
	|	И ТаблицаТоваров.Ссылка = &Ссылка
	|	И ТаблицаТоваров.Ссылка.ПометкаУдаления = ЛОЖЬ";
	Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);	
	Результат = Запрос.Выполнить();
	ТекстОшибки = "";
	Если Не Результат.Пустой() Тогда  
		ТекстОшибки = "Обнаружены ошибки:" + Символы.ПС;
		Выборка = Результат.Выбрать();
		Пока ВЫборка.Следующий() Цикл 
			ТекстОшибки = ТекстОшибки + " " + Строка(Выборка.Номенклатура) + ", в строке - " + Строка(Выборка.НомерСтроки) + Символы.ПС;
		КонецЦикла;
		СообщенияПользователюБЗК.СообщитьПользователю(ТекстОшибки);  
		ОТказ = Истина;
	КонецЕсли;
КонецПроцедуры
Показать
5. Sashares 35 13.05.24 18:40 Сейчас в теме
(4)Какого-то смысла это делать именно в проверке заполнения, если функционал проверки платформы не используется (да и не подходит), и проверка реализована своим кодом, имхо, не вижу.
Этот же код можно вставить и в ПередЗаписьюНаСервере, и проверять в нем.
6. FUXEARA 13.05.24 18:52 Сейчас в теме
(5) это с сохранением штатной проверки. Т е. Если моя проверка не выдает ошибок, далее проверяются все остальные реквизиты формы. Эта процедура не вся, я фрагмент выложил. Но я и писал выше, что можно это делать при записи, не обязательно в этой процедуре.
7. Metabos 29 13.05.24 20:58 Сейчас в теме
Правильно я поняла, что что для табличных частей это неприменимо? В плане встроенного функционала.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот