|
проверка результата запроса на пустую ячейку | ☑ | ||
---|---|---|---|---|
0
SerGo-116
12.08.15
✎
18:38
|
Добрый вечер!
Обхожу в цикле результат запроса, и необходимо проверить одну ячейку результата запроса на пустоту, пробовал уже все что знал и Пустая() и Null и "" ничего не получается. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетОтПоставщикаТовары.Наименование, | СчетОтПоставщикаТовары.Номенклатура, | СчетОтПоставщикаТовары.Количество, | СчетОтПоставщикаТовары.ПрайсоваяЦенаБезНДС, | СчетОтПоставщикаТовары.ЗакупочнаяЦенаБезНДС, | СчетОтПоставщикаТовары.СрокПоставки, | СчетОтПоставщикаТовары.Вес, | СчетОтПоставщикаТовары.Объем, | СчетОтПоставщикаТовары.Аналог, | СчетОтПоставщикаТовары.СтоимостьТранспортировкиЗаЕд, | СчетОтПоставщикаТовары.Ссылка.Поставщик, | СчетОтПоставщикаТовары.Ссылка.НомерСчетаОтПоставщика, | СчетОтПоставщикаТовары.Ссылка.ДатаСчетаОтПоставщика, | СчетОтПоставщикаТовары.Ссылка.СрокАктуальностиСчета, | СчетОтПоставщикаТовары.Примечание |ИЗ | Документ.СчетОтПоставщика.Товары КАК СчетОтПоставщикаТовары |ГДЕ | СчетОтПоставщикаТовары.Ссылка.Проведен | И СчетОтПоставщикаТовары.Ссылка.Валюта = &Валюта | И СчетОтПоставщикаТовары.Ссылка.Основание.Основание.Основание.Основание = &Заявка"; Запрос.УстановитьПараметр("Валюта", Валюта); Запрос.УстановитьПараметр("Заявка", Заявка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); НовДок = Документы.КоммерческоеПредложение.СоздатьДокумент(); НовДок.Дата = ТекущаяДата(); НовДок.Валюта = Валюта; НовДок.Клиент = Заявка.Клиент; НовДок.КонтактноеЛицоКлиента = Заявка.КонтактноеЛицоКлиента; НовДок.Организация = Заявка.Организация; НовДок.Основание = Заявка; НовДок.Ответственный = ПараметрыСеанса.ТекущийПользователь; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НовСтр = НовДок.Товары.Добавить(); НовСтр.Наименование = ВыборкаДетальныеЗаписи.Наименование; НовСтр.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; НовСтр.Количество = ВыборкаДетальныеЗаписи.Количество; НовСтр.ПрайсоваяЦенаБезНДС = ВыборкаДетальныеЗаписи.ПрайсоваяЦенаБезНДС; НовСтр.ЗакупочнаяЦенаБезНДС = ВыборкаДетальныеЗаписи.ЗакупочнаяЦенаБезНДС; НовСтр.СрокПоставки = ВыборкаДетальныеЗаписи.СрокПоставки; НовСтр.Вес = ВыборкаДетальныеЗаписи.Вес; НовСтр.Объем = ВыборкаДетальныеЗаписи.Объем; НовСтр.ДоставкаРасходы = ВыборкаДетальныеЗаписи.СтоимостьТранспортировкиЗаЕд; НовСтр.Аналог = ВыборкаДетальныеЗаписи.Аналог; НовСтр.Поставщик = ВыборкаДетальныеЗаписи.Поставщик; НовСтр.Основание = ВыборкаДетальныеЗаписи.НомерСчетаОтПоставщика + " от " + Формат(ВыборкаДетальныеЗаписи.ДатаСчетаОтПоставщика,"ДФ=dd.MM.yyyy"); Если Не ВыборкаДетальныеЗаписи.Примечание = """" Тогда Если Не ЗначениеЗаполнено(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; ИначеЕсли ЗначениеЗаполнено(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = НовДок.ПримечаниеКТовару + Символы.ПС + ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; КонецЕсли; КонецЕсли; Если Не ЗначениеЗаполнено(НовДок.РекомендуемыйСрокАктуальности) Тогда НовДок.РекомендуемыйСрокАктуальности = ВыборкаДетальныеЗаписи.СрокАктуальностиСчета; КонецЕсли; Если НовДок.РекомендуемыйСрокАктуальности > ВыборкаДетальныеЗаписи.СрокАктуальностиСчета Тогда НовДок.РекомендуемыйСрокАктуальности = ВыборкаДетальныеЗаписи.СрокАктуальностиСчета; КонецЕсли; КонецЦикла; |
|||
1
SerGo-116
12.08.15
✎
18:39
|
вот именно тот отрезок кода
Если Не ВыборкаДетальныеЗаписи.Примечание = """" Тогда Если Не ЗначениеЗаполнено(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; ИначеЕсли ЗначениеЗаполнено(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = НовДок.ПримечаниеКТовару + Символы.ПС + ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; КонецЕсли; КонецЕсли; |
|||
2
Defender aka LINN
12.08.15
✎
18:49
|
Процедур, которые проверяют заполненность аргумента в СП значится ровно две - для строк и для всего остального.
|
|||
3
SerGo-116
12.08.15
✎
18:53
|
(2) Что нужно использовать в данном случае. Уже пробовал Неопределенно и ПустаяСтрока()
|
|||
4
Pavlov_vu
12.08.15
✎
18:57
|
(1) совсем не бережешь кавычки :)
|
|||
5
SerGo-116
12.08.15
✎
18:59
|
(4) Есть такое :), но проблема не в них...
|
|||
6
Рэйв
12.08.15
✎
19:02
|
>> СчетОтПоставщикаТовары.Ссылка.Основание.Основание.Основание.Основание ....
(0)Ты слишком рано на мисту пришел. Подучиться надо еще... |
|||
7
SerGo-116
12.08.15
✎
19:08
|
(6) Мы мои труды оцениваем, или все такое что-то путное скажите касаемо проблемы с которой столкнулся...
По-поводу Основание... - базу пишу для себя в кратчайший срок поэтому и пишу простым способ а не по учебнику. С тем, что учиться надо абсолютно согласен, учиться надо всегда... |
|||
8
Михаил Козлов
12.08.15
✎
19:28
|
(7) В отладчике не пробовали посмотреть что в выборке?
|
|||
9
SerGo-116
12.08.15
✎
19:31
|
(8) В выборке ничего просто пусто...
А можно ли в цикле анализировать выборку на Истину/Ложь Булево? Вот пример кода, никогда с этим не сталкивался Если ВыборкаДетальныеЗаписи.ЕстьПримечание = Истина Тогда Если Не ПустаяСтрока(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; ИначеЕсли ПустаяСтрока(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = НовДок.ПримечаниеКТовару + Символы.ПС + ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; КонецЕсли; КонецЕсли; |
|||
10
Михаил Козлов
12.08.15
✎
19:38
|
(9) Если выборка пустая, значит нет нужных документов:
ГДЕ СчетОтПоставщикаТовары.Ссылка.Проведен И СчетОтПоставщикаТовары.Ссылка.Валюта = &Валюта И СчетОтПоставщикаТовары.Ссылка.Основание.Основание.Основание.Основание = &Заявка Не понял, что понимается под проверкой выборки на истину/ложь? В выборке значения полей, которые Вы указали в запросе. |
|||
11
Defender aka LINN
12.08.15
✎
19:42
|
(3) Неопределено, как нам символизирует наличие отсутствия скобок - не совсем процедура. Я бы даже сказал - вообще не процедура.
|
|||
12
Рэйв
12.08.15
✎
19:45
|
(11)Вот ты на 100 как минимум постов себе сделал задел:-)
|
|||
13
Рэйв
12.08.15
✎
19:46
|
(11)>>вообще не процедура.
Ржунемогу:-) |
|||
14
Рэйв
12.08.15
✎
19:47
|
Молодец:-)
|
|||
15
Рэйв
12.08.15
✎
19:49
|
:-)))
|
|||
16
SerGo-116
12.08.15
✎
19:51
|
(10) Имеется ввиду
Если ВыборкаДетальныеЗаписи.ЕстьПримечание = Истина Тогда ЕстьПримечание - реквизит табличной части документа (Булево), могу ли я его цикле проанализировать на Истину/Ложь |
|||
17
Рэйв
12.08.15
✎
19:53
|
Вобщем извините:-) Дефендеру +100 к карме:-)
Я ушел и не мешаю |
|||
18
SerGo-116
12.08.15
✎
19:57
|
(11) Наличие/отсутствие скобок никак не символизирует.
Если Вы про эти скобки - ПустаяСтрока(), то имеется ввиду Если Не ПустаяСтрока(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; ИначеЕсли ПустаяСтрока(НовДок.ПримечаниеКТовару) Тогда НовДок.ПримечаниеКТовару = НовДок.ПримечаниеКТовару + Символы.ПС + ВыборкаДетальныеЗаписи.Номенклатура + " - " + ВыборкаДетальныеЗаписи.Примечание; КонецЕсли; |
|||
19
Sanek_GAL
12.08.15
✎
22:55
|
(16) если в "ВыборкаДетальныеЗаписи.ЕстьПримечание" булево - то можно:
Если ВыборкаДетальныеЗаписи.ЕстьПримечание Тогда ... КонецЕсли сравнение с истина или ложь в условии ставить не надо - для ЛОЖЬ ставь отрицание НЕ в условии и все |
|||
20
MSOliver
12.08.15
✎
23:07
|
(0) ЗначениеЗаполнено(<Значение>)
Параметры: <Значение> (обязательный) Тип: Произвольный. Значение для проверки. Возвращаемое значение: Тип: Булево. Для значений типа Булево всегда возвращается Истина. Для значений типа Строка возвращается Истина, если в строке есть непробельные символы. Для массивов и коллекций возвращается Истина, если в них есть хотя бы 1 элемент. Для Неопределено и Null всегда возвращается Ложь. Описание: Функция проверяет, отличается ли переданное значение от значения по умолчанию того же типа. Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение. |
|||
21
MSOliver
12.08.15
✎
23:15
|
(2) да как бы больше...
ЭтоАдресВременногоХранилища(<Адрес>) Параметры: <Адрес> (обязательный) Тип: Строка. Адрес файла во временном хранилище, который необходимо проверить. Возвращаемое значение: Тип: Булево. Описание: Проверяет, является ли переданный адрес адресом файла во временном хранилище. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |