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

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 10 07.11.19 07:21 Сейчас в теме
(1) Нужно знать конфигурацию. Где-то в номенклатуре есть признак того, что номенклатура имеет характеристики? Если такой признак есть, то логичнее его заполнять запросом в эту таблицу в скрытую колонку. При перелистывании реализовавывать проверку либо В "ПриСменеСтраницы", либо В "ОбработкаПроверкиЗаполнения"

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


или

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


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

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

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

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день