Перебрать документы

1. palmyra2016 11.02.20 21:10 Сейчас в теме
Здравствуйте, в программировании 1с совсем новичок, прошу небольшой подсказки.
В обработке на форму положил реквизит типом которого является ДокументСсылка, т.е при кнопке выбора дает возможность отобрать определенный документ: Расходная, Приходная, Перемещение и т.д. После того как будет сделан выбор, мне нужно будет например перебрать все документы Расходная Накладная - эта комбинация будет производиться отдельной командой, собственно в чем вопрос, как из выбранного мной значения передать эти данные в другую процедуру.
Заранее спасибо.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Daemonold 19 12.02.20 01:36 Сейчас в теме
(1)
Мне видится решение следующим способом:
Через функцию "ТипЗНЧ(тутНашРеквизит) получить тип документа.
В запросе ограничить этим типом.
2. Ildar13 11.02.20 23:02 Сейчас в теме
У вас поле "Путь документ" связано с реквизитом Объект.ПутьДокумент. Вот его и надо будет передавать в другую процедуру
6. palmyra2016 12.02.20 08:31 Сейчас в теме
(2)Здравствуйте, можно поподробней пожалуйста, желательно на синтаксисе языка, как его грамотно туда передать.
4. t278 56 12.02.20 02:39 Сейчас в теме
Запрос = Новый Запрос;
	Запрос.Текст =  "ВЫБРАТЬ
	                |	инк_Лог.Ссылка
	                |ИЗ
	                |	Документ.инк_Лог КАК инк_Лог
	                |ГДЕ
	                |	инк_Лог.КакойОбъект.ПометкаУдаления = ИСТИНА
	                |	И инк_Лог.ПометкаУдаления = ЛОЖЬ
	                |	И ТИПЗНАЧЕНИЯ(инк_Лог.КакойОбъект) В (&Тип)";
	
	//ТЗ = Запрос.Выполнить().Выгрузить();
	
	Запрос.УстановитьПараметр("Тип", тутНашРеквизит.Типы()[0]);  //  
	ТЗ = Запрос.Выполнить().Выгрузить();    
	ДЛя Каждого  Стр Из ТЗ цикл
		ОбъектБД = Стр.ССылка.ПолучитьОбъект();
			ОбъектБД.ПометкаУдаления = Истина;
			ОбъектБД.Записать();
	КонецЦикла;
Показать


это мой код в 8.2
5. burgomister 59 12.02.20 04:40 Сейчас в теме
t278 - ваш вариант хороший, конечно. Только зачем выгружать в ТЗ ? Если документов много - жрёт память и тормозит. Лучше просто обходить результат запроса.
7. markw 12.02.20 08:41 Сейчас в теме
Вот это вот поле, которое ссылается на объект.ПутьДокумент с типом ДокументСсылка требует от вас выбора конкретного документа. Т.е. после выбора типа вам покажут список документов выбранного типа.
Если вам нужно только выбрать тип, а потом пройтись по документам другой кнопкой, например, то я бы делал иначе.
Сделал бы реквизит ФОРМЫ, а не обработки ТипДокумента, тип для него установил бы произвольный.
Далее при создании на сервере формы заполнил бы его следующим образом:
Для Каждого Док Из Метаданные.Документы Цикл
		ИмяТипа = "ДокументСсылка." + Док.Имя;
		Элементы.ТипДокумента.СписокВыбора.Добавить(Тип(ИмяТипа));
	КонецЦикла;
	Элементы.ТипДокумента.СписокВыбора.СортироватьПоЗначению();

А для поля на форме, к которому привязан данный реквизит установил бы выбор из списка.
В итоге получаем выпадающий список с типами документов. Если список кажется слишком большим, то сделал бы отдельную форму для выбора.

Затем, если бы хотел обойти документы или наложить отбор на динамический список вместо вот этого Найти (в таком бы случае динамический список бы менялся сразу после выбора типа) можно уже используя значение этого нашего поля ТипДокумента.
На динамический список можно передачей параметра в запрос или через ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(Список.Отбор, "ТипДок", ТипДокумента, ЗначениеЗаполнено(ТипДокумента)); из БСП
Для использования в коде можно сразу брать ТипДокумента как реквизит формы.
8. palmyra2016 12.02.20 09:02 Сейчас в теме
(7)"после выбора типа вам покажут список документов выбранного типа. " - а я выделяю их все
9. markw 12.02.20 09:12 Сейчас в теме
(8) и выбирается первый попавшийся... в этом поле может быть только один документ.
Если выбран хотя бы один документ, то через ТипЗнч что мешает получить его тип и использовать где-то еще?
10. user1357043 12.02.20 09:18 Сейчас в теме
Как-то всё у вас сложно... Насколько я понял, нужно, чтобы выполнился обход всех документов указанного пользователем типа. Не проще на форму вывести список всех типов (например, как предложено в (7)), а потом его в запросе подставлять? Например так:
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ." + ИмяДокумента;
Либо без запроса:
Для каждого Ссылка из Документы[ИмяДокумента] Цикл...
Если нужна возможность выбора нескольких типов, то не просто поле, а список значений с пометкой.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот