Как сравнить поле из ТЗ с значением поля из запроса

1. user1296699 06.04.23 13:44 Сейчас в теме
Привет. Ребят а как сравнить значение столбца из ТЗ с значением столбца из запроса ? Не ругайтесь я учусь)
надо чтобы Если СтрТаб.Пломба = ВыборкаДетальныеЗаписи.Пломба

Запрос = Новый Запрос;
	Запрос.Текст = 
	
"ВЫБРАТЬ
|	ДвижениеПломб.ВидОперации КАК ВидОперации,
|	ДвижениеПломбПломбы.Пломба КАК Пломба
|ИЗ
|	Документ.ДвижениеПломб.Пломбы КАК ДвижениеПломбПломбы
|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДвижениеПломб КАК ДвижениеПломб
|		ПО ДвижениеПломбПломбы.Ссылка = ДвижениеПломб.Ссылка
|ГДЕ
|	ДвижениеПломб.ВидОперации = &ВидОперации
|	И НЕ ДвижениеПломб.ПометкаУдаления" ;

ВидОперации = Перечисления.ВидыОперацийДвиженийПломб.Испорчена;
		
Запрос.УстановитьПараметр("ВидОперации", ВидОперации);

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
  
  n=0;
Для каждого СтрТаб из УчётПломб Цикл
    n=n+1;
	
	Если     СтрТаб.Пломба =   	Тогда

	Сообщить(                + "уже испорчена") ;

Иначе
    ПломбыУтрата=Документы.ДвижениеПломб.СоздатьДокумент();
	ПломбыУтрата.Дата=СтрТаб.Дата;
    ПломбыУтрата.ВидОперации=Перечисления.ВидыОперацийДвиженийПломб.Испорчена;	
	ПломбыУтрата.Подразделение=ПолучитьКодУчасткаНаСервере();
	ПломбыУтрата.Отправитель=СтрТаб.Исполнитель;

	
	док=ПломбыУтрата.Пломбы.Добавить();
	док.Пломба=СтрТаб.ПломбаС;
    ПломбыУтрата.Записать(РежимЗаписиДокумента.Проведение);	

	

КонецЕсли;	
			
	КонецЦикла;

Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 06.04.23 14:08 Сейчас в теме
Надо приравнять к Виду операции. Кстати а что за объект УчетПломб? И выборку почему то не используешь. Плюс документ создаещь на каждую запись стртаб..... :)
3. user1296699 06.04.23 14:12 Сейчас в теме
(2)Учет это ТЗ, а документы да все разные
4. lefthander 06.04.23 14:14 Сейчас в теме
(3)В том смысле зачем Вам выборка если вы ее не используете. Что бы получить значение выборки ее надо обойти с командой Следующий() ;)
6. user1296699 06.04.23 14:16 Сейчас в теме
(4)да я понимаю...допустим я тз еще одну создам помещу туда результат, вопрос тот же как сравнить мне именно в цикле
5. user1296699 06.04.23 14:14 Сейчас в теме
(2)НЕ могу прировнять к виду операции , т.к. у самой пломбы нет такого значения, оно появляется только в документе движение пломб
7. VictorRGB2 13 06.04.23 14:16 Сейчас в теме
самое простое - цикл по выборке из запроса с поиском нужной строки из ТЗ по значению Выборка.Пломба
сложнее - результат запроса в ТЗ, ее и УчётПломб во временные таблицы в запрос и выбрать из ТЗ, что надо (или наоборот) с соединением из УчётПломб по Пломбе

готовый результат в документ

ну и по запросу, документ соединяется сам с собой, имхо, это лишнее
можно использовать конструкцию ДвижениеПломбПломбы.Ссылка.ВидОперации и соединения не потребуется
кроме этого не понятно почему в запросе "НЕ ДвижениеПломб.ПометкаУдаления" а далее документ проводится "ПломбыУтрата.Записать(РежимЗаписиДокумента.Проведение)"
логичнее было бы и в запросе использовать только проведенные документы
8. user1296699 06.04.23 14:19 Сейчас в теме
(7)с временными таблицами то нет проблем, у меня задача ....просто мне надо чтобы при нажатии второй раз на кнопку уже существующие документы не дублировались
9. user1296699 06.04.23 14:21 Сейчас в теме
(7)т.е. у меня из ТЗ создаётся документ, а мне нужно его проверить не существует ли он уже
10. VictorRGB2 13 06.04.23 14:23 Сейчас в теме
(9) документы должны обладать набором реквизитов. по которым можно однозначно сказать - это уникальный документ или дубль существующего
проверяйте документ по условиям, нашли - значит есть, пропускаем, не нашли - создаем новый
11. user1296699 06.04.23 14:27 Сейчас в теме
(10)вся его уникальность как раз в номере пломбы который есть в ТЗ и в уже созданных документах из которых я беру его запросом
12. VictorRGB2 13 06.04.23 14:31 Сейчас в теме
(11) что мешает выполнить запрос после получения ТЗ, но перед обработкой ТЗ
и вариант с временными таблицам все же выглядит более предпочтительным в таком случае
получили ТЗ, выполнили запрос, поместили во временную таблицу, закинули туда же ТЗ, выбрали методом исключения - получили результат только то, что должно было остаться для формирования документов
13. user1826630 06.04.23 14:31 Сейчас в теме
(11)
уникальность как раз в номере пломбы
Тогда зачем номер пломбы находится в табличной части документа? А не в реквизитах шапки?
14. user1296699 06.04.23 14:35 Сейчас в теме
(13)так то есть уникальный код документа но он мне ничего не дает я создаю новые по порядку, т.е. я могу создать сто разных документов по одной пломбе, а мне надо это запретить
15. VictorRGB2 13 06.04.23 14:52 Сейчас в теме
(14) перед формированием документа проверить, что есть уже с такой пломбой
самое простое

ВЫБРАТЬ
|    ДвижениеПломбПломбы.Ссылка.ВидОперации КАК ВидОперации,
|    ДвижениеПломбПломбы.Пломба КАК Пломба
|ИЗ
|    Документ.ДвижениеПломб.Пломбы КАК ДвижениеПломбПломбы
|ГДЕ
|    ДвижениеПломб.ВидОперации = &ВидОперации
|    И ДвижениеПломбПломбы.Пломба = &Пломба 
|    И НЕ ДвижениеПломб.ПометкаУдаления

где &Пломба = СтрТаб.Пломба
Показать
16. user1296699 06.04.23 14:59 Сейчас в теме
(15) ааа, типо если результат пустой тогда далее?
17. VictorRGB2 13 06.04.23 15:43 Сейчас в теме
18. user1296699 17.04.23 13:50 Сейчас в теме
Забыл ответ выбрать. Вообщем решилось все . ТЗ пришлось во временную таблицу и уже с запросами играться. Весм спасибо
Оставьте свое сообщение
Вакансии
Разработчик 1С
Ростов-на-Дону
зарплата от 230 000 руб. до 260 000 руб.
Полный день

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

Аналитик 1C
Самара
зарплата от 160 000 руб. до 180 000 руб.
Полный день

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

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