|
Проверка правильности ввода номенклатуры в расходном ордере в УНФ | ☑ | ||
---|---|---|---|---|
0
amadeus2010
09.01.14
✎
12:16
|
Добрый день подскажите пожалуйста можно ли в УНФ при заполнении документа Расходная накладная на основании документа Заказ сделать подобную проверку
Если Объект.Номенклатура<> Заказ.Номенклатура тогда Сообщить "Введите правильное значение" КонецЕсли; У заказчика дело обстоит так складчик получает документ Заказ и на его основании заполняет документ Расходная накладная или с помощью сканера штрихкода забивает товар в документ, тогда в этом случае есть риск что он может считать или забить не тот товар который указан в Заказе, как можно сделать проверку которая сообщит что он забил не тот товар что надо? |
|||
1
Wobland
09.01.14
✎
12:18
|
тч1 полное тч2 где тч1 есть нулл или тч2 есть унлл
|
|||
2
amadeus2010
09.01.14
✎
12:33
|
т.е
Если РасходнаяНакладная.Запасы.Номенклатура.НаименованиеПолное<>РасходнаяНакладная.Заказ.Запасы.Номенклатура.НаименованиеПолное тогда Сообщить "Введите номенклатуру" правильно я понял? Теперь это надо будет ввести как проверку в НоменклатураПриИзменении? |
|||
3
Wobland
09.01.14
✎
12:34
|
(2) это тебе идея запроса на разность двух таблиц
|
|||
4
amadeus2010
09.01.14
✎
12:53
|
(3) можно сделать проверку в процедуре ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
или обработкапроведения на правильность заполнения реквизитов с включением проверки (2)только вот как правильно создать условие проверки? |
|||
5
Wobland
09.01.14
✎
13:02
|
если не заполненохорошо() тогда
отказ=истина; возврат; |
|||
6
amadeus2010
09.01.14
✎
13:09
|
по (5) не совсем понял, можете уточнить пожалуйста
|
|||
7
Wobland
09.01.14
✎
13:12
|
уточняю. почему бы не внедрить в обработку проведения вот такую проверку?
|
|||
8
amadeus2010
09.01.14
✎
13:18
|
а что тогда включить в заполненохорошо()?
|
|||
9
Wobland
09.01.14
✎
13:19
|
(8) запрос с обходом результата и матерной руганью
|
|||
10
amadeus2010
09.01.14
✎
15:54
|
создал подобную процедуру для проверки номенклатуры
////////////////////////////////////////////////////// Процедура ПроверкаНоменклатуры() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяЗапасы.Номенклатура.НаименованиеПолное, | ЗаказПокупателяЗапасы.Номенклатура.Наименование |ИЗ | Документ.РасходнаяНакладная КАК РасходнаяНакладная, | Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы |ГДЕ | РасходнаяНакладная.Запасы.Номенклатура.НаименованиеПолное ЕСТЬ NULL | Или ЗаказПокупателяЗапасы.Номенклатура.Наименование ЕСТЬ НЕ NULL "; Запрос.УстановитьПараметр("NULL", NULL); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.Номенклатура.НаименованиеПолное<> ВыборкаДетальныеЗаписи.Номенклатура.Наименование Тогда Сообщить("Введенная номенклатура не соответствует Заказу"); КонецЕсли; КонецЦикла; /////////////////////////////////////////////////// |
|||
11
amadeus2010
09.01.14
✎
16:33
|
есть кто-нибудь?
|
|||
12
amadeus2010
09.01.14
✎
16:51
|
Немного изменил прежний запрос на такой
/////////////////////////////////////////////////// Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяЗапасы.Номенклатура.Наименование, | ЗаказПокупателяЗапасы.Номенклатура.Наименование |ИЗ | Документ.РасходнаяНакладная.Запасы КАК РасходнаяНакладнаяЗапасы | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы | ПО РасходнаяНакладнаяЗапасы.Номенклатура.Наименование = ЗаказПокупателяЗапасы.Номенклатура.Наименование |ГДЕ | РасходнаяНакладнаяЗапасы.Номенклатура.НаименованиеПолное ЕСТЬ NULL | Или ЗаказПокупателяЗапасы.Номенклатура.Наименование ЕСТЬ НЕ NULL "; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.Номенклатура.Наименование<> ВыборкаДетальныеЗаписи.Номенклатура.Наименование Тогда Сообщить("Введенная номенклатура не соответствует Заказу"); КонецЕсли; КонецЦикла; ///////////////////////////////////////////////////// |
|||
13
Wobland
09.01.14
✎
17:06
|
даю справку. внутреннее соединение не может выдать нулл по определению
|
|||
14
Wobland
09.01.14
✎
17:07
|
даю ещё одну справку. разные элементы справочника с одинаковыми наименованиями в общем случае возможны
|
|||
15
amadeus2010
09.01.14
✎
17:11
|
я в Процедура ЗапасыНоменклатураПриИзменении(Элемент) добавил такой код
////////////////////////////////////////////////////// Если СтрокаТабличнойЧасти.Номенклатура<> Объект.Заказ Тогда Сообщить("Номенклатура отличается от указанной в заказе покупателя, пожалуйста еще раз внимательно посмотрите заявку"); КонецЕсли; ///////////////////////////////////////////////// после этого при введении новой номенклатуры отличной от в документе Заказ покупателя выходит сообщение об ощибке. Возможно ли блокировать запись документа на основе этого условия? |
|||
16
Wobland
09.01.14
✎
17:18
|
>СтрокаТабличнойЧасти.Номенклатура<> Объект.Заказ
переменные, конечно, можно любыми словами называть, но сдаётся мне, тут всегда будет истина |
|||
17
amadeus2010
09.01.14
✎
17:33
|
(16) считаете что в независимости от вводимой номенклатуры всегда будет выдаваться подобное сообщение?
если так тогда как посоветуете изменить запрос в (12) |
|||
18
Wobland
09.01.14
✎
17:38
|
>СтрокаТабличнойЧасти.Номенклатура<> Объект.Заказ
ну не равна ж-па силе тяжести, хоть ты тресни. всегда советую употребить полное соединение, обходить результат с руганью и отказывать. или не отказывать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |