Проверка на заполнение

1. SprayTM 07.11.19 06:53 Сейчас в теме
В таблицу значений заносятся данные через запрос из регистра сведений. Далее необходимо проводить сопоставление номенклатур контрагента и собственной. Как при смене страницы можно организовать проверку заполнения характеристики номенклатуры, если она есть в собственном справочнике?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
13. ZergKRSK 129 07.11.19 07:34 Сейчас в теме +0.15 $m
(12)
Для Каждого СтрокаТаблицы Из ТаблицаСопоставления Цикл
	Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда
		Если ЕстьХарактеристики(СтрокаТаблицы.Номенклатура) и НЕ ЗначениеЗаполнено(СтрокаТаблицы.ХарактеристикаНоменклатуры) Тогда
			Сообщить("В строке №" + СтрокаТаблицы.НПП + " ведется учет по характеристике номенклатуры!");
		Иначе
			
		КонецЕсли;
	КонецЕсли;
КонецЦикла;
		
Функция ЕстьХарактеристики(Номенклатура)
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
	               |	ХарактеристикиНоменклатуры.Ссылка
	               |ИЗ
	               |	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
	               |ГДЕ
	               |	ХарактеристикиНоменклатуры.Владелец = &Владелец";
	Запрос.УстановитьПараметр("Владелец", Номенклатура);
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат Ложь;
	Иначе
		Возврат Истина;
	КонецЕсли;
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 129 07.11.19 07:13 Сейчас в теме
(1) не очень понятно что нужно. Надо проверить зелёную колонку "Характеристика номенклатуры" на заполненность?
3. SprayTM 07.11.19 07:15 Сейчас в теме
(2) Да. В случае, если для номенклатуры из этой текущей строки есть какая-то характеристика, но она не заполнена, то выдать ошибку
4. uk09 07.11.19 07:20 Сейчас в теме
(3) Добрый день! ЗначениеЗаполнено() не подходит ? Есть конкретный массив данных для сверки ?
5. ZergKRSK 129 07.11.19 07:21 Сейчас в теме
(3) ну можно пробежаться построчно, берем номенклатуру и запросом ищем есть ли по ней хотя бы одна характеристика. Если есть и поле "Характеристика" не заполнена - выдавать сообщение.
7. SprayTM 07.11.19 07:22 Сейчас в теме
Что-то вроде такого?

Для Каждого СтрокаТаблицы Из ТаблицаСопоставления Цикл
		Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда
			Если Тогда
				
			Иначе
				Сообщить("В строке №" + СтрокаТаблицы.НПП + " ведется учет по характеристике номенклатуры!");
				Возврат;
		КонецЕсли;
	КонецЦикла;
Показать
9. ZergKRSK 129 07.11.19 07:26 Сейчас в теме
10. SprayTM 07.11.19 07:28 Сейчас в теме
11. ZergKRSK 129 07.11.19 07:29 Сейчас в теме
(10) характеристики хранятся в справочнике "ХарактеристикиНоменклатуры", а владельцем этого справочника является справочник "Номенклатура" ?
12. SprayTM 07.11.19 07:30 Сейчас в теме
13. ZergKRSK 129 07.11.19 07:34 Сейчас в теме +0.15 $m
(12)
Для Каждого СтрокаТаблицы Из ТаблицаСопоставления Цикл
	Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда
		Если ЕстьХарактеристики(СтрокаТаблицы.Номенклатура) и НЕ ЗначениеЗаполнено(СтрокаТаблицы.ХарактеристикаНоменклатуры) Тогда
			Сообщить("В строке №" + СтрокаТаблицы.НПП + " ведется учет по характеристике номенклатуры!");
		Иначе
			
		КонецЕсли;
	КонецЕсли;
КонецЦикла;
		
Функция ЕстьХарактеристики(Номенклатура)
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
	               |	ХарактеристикиНоменклатуры.Ссылка
	               |ИЗ
	               |	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
	               |ГДЕ
	               |	ХарактеристикиНоменклатуры.Владелец = &Владелец";
	Запрос.УстановитьПараметр("Владелец", Номенклатура);
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат Ложь;
	Иначе
		Возврат Истина;
	КонецЕсли;
КонецФункции
Показать
14. SprayTM 07.11.19 07:40 Сейчас в теме
(13) Спасибо, код рабочий)
15. ZergKRSK 129 07.11.19 07:41 Сейчас в теме
(14) у меня УПП, там всё тоже самое))
6. dandykry 9 07.11.19 07:21 Сейчас в теме
(1) Нужно знать конфигурацию. Где-то в номенклатуре есть признак того, что номенклатура имеет характеристики? Если такой признак есть, то логичнее его заполнять запросом в эту таблицу в скрытую колонку. При перелистывании реализовавывать проверку либо В "ПриСменеСтраницы", либо В "ОбработкаПроверкиЗаполнения"

Если ПроверитьЗаполнение() Тогда


или

Для Каждого СтрокаТЧ из Таблица Цикл
Если Не значениеЗаполнено(СтрокаТЧ .Характеристика) и СтрокаТЧ.ХарактеристикиИспользуются Тогда
Сообщить("Ошибка");
Прервать
КонцЕсли
КонецЦикла
8. uk09 07.11.19 07:26 Сейчас в теме
(1)
необходимо проводить сопоставление номенклатур контрагента и собственной


Это (номенклатуры контрагента и собственной) - сопоставляемые значения? Берутся из одного справочника ?
Тогда - РегистрСведенийНаборЗаписей.Прочитать()
отбор выстроить с учетом заполненной характеристики
Оставьте свое сообщение

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