|
Как пропустить документ, помеченый на удаление? | ☑ | ||
---|---|---|---|---|
0
Nemirov
07.05.20
✎
08:49
|
Студент извиняюсь заранее. Вопрос такой: Допустим есть запрос, в цикле перезаписываю документы, либо если их нет создаю. А вот если документ существует но помечен на удаление как мне его в цикле пропустить?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ОтчетОРозничныхПродажахТовары.Ссылка, | ОтчетОРозничныхПродажахТовары.Ссылка.Дата, | ВЫБОР | КОГДА ПриходныйКассовыйОрдер.Ссылка ЕСТЬ NULL | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ПроведенныеПКО, | ОтчетОРозничныхПродажахТовары.Субконто |ИЗ | Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер | ПО ОтчетОРозничныхПродажахТовары.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование |ГДЕ | ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЕстьПКО = Документы.ПриходныйКассовыйОрдер.НайтиПоРеквизиту("ДокументОснование", ВыборкаДетальныеЗаписи.Ссылка); Если НЕ ВыборкаДетальныеЗаписи.ПроведенныеПКО Тогда СуществующийДокумент = ЕстьПКО.ПолучитьОбъект(); СуществующийДокумент.Заполнить(ВыборкаДетальныеЗаписи.ссылка); Субконто = ВыборкаДетальныеЗаписи.Субконто; СуществующийДокумент.Дата = ВыборкаДетальныеЗаписи.Дата; СуществующийДокумент.ПринятоОт = ВыборкаДетальныеЗаписи.Субконто; СуществующийДокумент.Записать(РежимЗаписиДокумента.Проведение); Сообщить("" +СуществующийДокумент + " " + "Переписан",); Продолжить; КонецЕсли; |
|||
1
ДенисЧ
07.05.20
✎
08:55
|
Ну так в условии ГДЕ поставь проверку на ПометкаУдаления...
|
|||
2
Nemirov
07.05.20
✎
09:06
|
(1) Пробовал не помогает.
|
|||
3
tixis
07.05.20
✎
09:08
|
(2) не верю, покажи условие
|
|||
4
Nemirov
07.05.20
✎
09:10
|
(3) |ГДЕ
| ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | И ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ"; так делал |
|||
5
tixis
07.05.20
✎
09:17
|
И что ты этим условием хотел отрезать? У тебя левое соединенте, отчеторозничных продажах все равно попадет. Какой документ не должен попасть?
|
|||
6
Nemirov
07.05.20
✎
09:19
|
(5) Документы.ПриходныйКассовыйОрдер
|
|||
7
Nemirov
07.05.20
✎
09:20
|
(5) Если существует помеченный на удаление документ ПриходныйКассовыйОрдер то пропустить надо его.
|
|||
8
tixis
07.05.20
✎
09:20
|
Уже в обходе выборке чтоле?
|
|||
9
tixis
07.05.20
✎
09:22
|
Выбор когда есть null это не равно пометка на удаление если ято
|
|||
10
tixis
07.05.20
✎
09:22
|
(9) это я к запросу
|
|||
11
ac13
07.05.20
✎
09:24
|
не очень понятно какие документы надо выбрать, но если что-то нужно пропустить именно при обходе в цикле, то:
Пока Выборка.Следующий() Цикл Если Выборка.Документ.ПометкаНаУдаление Тогда Продолжить; КонецЕсли; КонецЦикла; |
|||
12
Fedor-1971
07.05.20
✎
09:24
|
(4) вот так соедини
Если очень хочешь именно кодом, то в результат запроса вытащи ПриходныйКассовыйОрдер.ПометкаУдаления КАК КассовыйОрдерПомеченНаУдаление
В цикле просто проверишь и будет тебе счастье |
|||
13
Fedor-1971
07.05.20
✎
09:31
|
(0) Вот это ни разу не проверка на проведение:
| ВЫБОР
Это просто признак, что кассового ордера просто нет если нужно знать проведен ли ПКО: ЕстьNull(ПриходныйКассовыйОрдер.Проведен, Ложь) КАК ПроведенПКО |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |