Как сравнить поле из ТЗ с значением поля из запроса
Привет. Ребят а как сравнить значение столбца из ТЗ с значением столбца из запроса ? Не ругайтесь я учусь)
надо чтобы Если СтрТаб.Пломба = ВыборкаДетальныеЗаписи.Пломба
надо чтобы Если СтрТаб.Пломба = ВыборкаДетальныеЗаписи.Пломба
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДвижениеПломб.ВидОперации КАК ВидОперации,
| ДвижениеПломбПломбы.Пломба КАК Пломба
|ИЗ
| Документ.ДвижениеПломб.Пломбы КАК ДвижениеПломбПломбы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДвижениеПломб КАК ДвижениеПломб
| ПО ДвижениеПломбПломбы.Ссылка = ДвижениеПломб.Ссылка
|ГДЕ
| ДвижениеПломб.ВидОперации = &ВидОперации
| И НЕ ДвижениеПломб.ПометкаУдаления" ;
ВидОперации = Перечисления.ВидыОперацийДвиженийПломб.Испорчена;
Запрос.УстановитьПараметр("ВидОперации", ВидОперации);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
n=0;
Для каждого СтрТаб из УчётПломб Цикл
n=n+1;
Если СтрТаб.Пломба = Тогда
Сообщить( + "уже испорчена") ;
Иначе
ПломбыУтрата=Документы.ДвижениеПломб.СоздатьДокумент();
ПломбыУтрата.Дата=СтрТаб.Дата;
ПломбыУтрата.ВидОперации=Перечисления.ВидыОперацийДвиженийПломб.Испорчена;
ПломбыУтрата.Подразделение=ПолучитьКодУчасткаНаСервере();
ПломбыУтрата.Отправитель=СтрТаб.Исполнитель;
док=ПломбыУтрата.Пломбы.Добавить();
док.Пломба=СтрТаб.ПломбаС;
ПломбыУтрата.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
КонецЦикла;
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
самое простое - цикл по выборке из запроса с поиском нужной строки из ТЗ по значению Выборка.Пломба
сложнее - результат запроса в ТЗ, ее и УчётПломб во временные таблицы в запрос и выбрать из ТЗ, что надо (или наоборот) с соединением из УчётПломб по Пломбе
готовый результат в документ
ну и по запросу, документ соединяется сам с собой, имхо, это лишнее
можно использовать конструкцию ДвижениеПломбПломбы.Ссылка.ВидОперации и соединения не потребуется
кроме этого не понятно почему в запросе "НЕ ДвижениеПломб.ПометкаУдаления" а далее документ проводится "ПломбыУтрата.Записать(РежимЗаписиДокумента.Проведение)"
логичнее было бы и в запросе использовать только проведенные документы
сложнее - результат запроса в ТЗ, ее и УчётПломб во временные таблицы в запрос и выбрать из ТЗ, что надо (или наоборот) с соединением из УчётПломб по Пломбе
готовый результат в документ
ну и по запросу, документ соединяется сам с собой, имхо, это лишнее
можно использовать конструкцию ДвижениеПломбПломбы.Ссылка.ВидОперации и соединения не потребуется
кроме этого не понятно почему в запросе "НЕ ДвижениеПломб.ПометкаУдаления" а далее документ проводится "ПломбыУтрата.Записать(РежимЗаписиДокумента.Проведение)"
логичнее было бы и в запросе использовать только проведенные документы
(11) что мешает выполнить запрос после получения ТЗ, но перед обработкой ТЗ
и вариант с временными таблицам все же выглядит более предпочтительным в таком случае
получили ТЗ, выполнили запрос, поместили во временную таблицу, закинули туда же ТЗ, выбрали методом исключения - получили результат только то, что должно было остаться для формирования документов
и вариант с временными таблицам все же выглядит более предпочтительным в таком случае
получили ТЗ, выполнили запрос, поместили во временную таблицу, закинули туда же ТЗ, выбрали методом исключения - получили результат только то, что должно было остаться для формирования документов
(14) перед формированием документа проверить, что есть уже с такой пломбой
самое простое
самое простое
ВЫБРАТЬ
| ДвижениеПломбПломбы.Ссылка.ВидОперации КАК ВидОперации,
| ДвижениеПломбПломбы.Пломба КАК Пломба
|ИЗ
| Документ.ДвижениеПломб.Пломбы КАК ДвижениеПломбПломбы
|ГДЕ
| ДвижениеПломб.ВидОперации = &ВидОперации
| И ДвижениеПломбПломбы.Пломба = &Пломба
| И НЕ ДвижениеПломб.ПометкаУдаления
где &Пломба = СтрТаб.Пломба
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот