Здравствуйте, в программировании 1с совсем новичок, прошу небольшой подсказки.
В обработке на форму положил реквизит типом которого является ДокументСсылка, т.е при кнопке выбора дает возможность отобрать определенный документ: Расходная, Приходная, Перемещение и т.д. После того как будет сделан выбор, мне нужно будет например перебрать все документы Расходная Накладная - эта комбинация будет производиться отдельной командой, собственно в чем вопрос, как из выбранного мной значения передать эти данные в другую процедуру.
Заранее спасибо.
В обработке на форму положил реквизит типом которого является ДокументСсылка, т.е при кнопке выбора дает возможность отобрать определенный документ: Расходная, Приходная, Перемещение и т.д. После того как будет сделан выбор, мне нужно будет например перебрать все документы Расходная Накладная - эта комбинация будет производиться отдельной командой, собственно в чем вопрос, как из выбранного мной значения передать эти данные в другую процедуру.
Заранее спасибо.
Прикрепленные файлы:
По теме из базы знаний
- Всякие полезности
- Удаление документов по организации, очистка неиспользованных номенклатуры и контрагентов
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Универсальное удаление движений регистров накопления по всем непроведенным документам
- Загрузка из файла JSON в документы Перенос данных сведений о доходах сотрудников
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| инк_Лог.Ссылка
|ИЗ
| Документ.инк_Лог КАК инк_Лог
|ГДЕ
| инк_Лог.КакойОбъект.ПометкаУдаления = ИСТИНА
| И инк_Лог.ПометкаУдаления = ЛОЖЬ
| И ТИПЗНАЧЕНИЯ(инк_Лог.КакойОбъект) В (&Тип)";
//ТЗ = Запрос.Выполнить().Выгрузить();
Запрос.УстановитьПараметр("Тип", тутНашРеквизит.Типы()[0]); //
ТЗ = Запрос.Выполнить().Выгрузить();
ДЛя Каждого Стр Из ТЗ цикл
ОбъектБД = Стр.ССылка.ПолучитьОбъект();
ОбъектБД.ПометкаУдаления = Истина;
ОбъектБД.Записать();
КонецЦикла;
Показатьэто мой код в 8.2
Вот это вот поле, которое ссылается на объект.ПутьДокумент с типом ДокументСсылка требует от вас выбора конкретного документа. Т.е. после выбора типа вам покажут список документов выбранного типа.
Если вам нужно только выбрать тип, а потом пройтись по документам другой кнопкой, например, то я бы делал иначе.
Сделал бы реквизит ФОРМЫ, а не обработки ТипДокумента, тип для него установил бы произвольный.
Далее при создании на сервере формы заполнил бы его следующим образом:
А для поля на форме, к которому привязан данный реквизит установил бы выбор из списка.
В итоге получаем выпадающий список с типами документов. Если список кажется слишком большим, то сделал бы отдельную форму для выбора.
Затем, если бы хотел обойти документы или наложить отбор на динамический список вместо вот этого Найти (в таком бы случае динамический список бы менялся сразу после выбора типа) можно уже используя значение этого нашего поля ТипДокумента.
На динамический список можно передачей параметра в запрос или через ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(Список.Отбор, "ТипДок", ТипДокумента, ЗначениеЗаполнено(ТипДокумента)); из БСП
Для использования в коде можно сразу брать ТипДокумента как реквизит формы.
Если вам нужно только выбрать тип, а потом пройтись по документам другой кнопкой, например, то я бы делал иначе.
Сделал бы реквизит ФОРМЫ, а не обработки ТипДокумента, тип для него установил бы произвольный.
Далее при создании на сервере формы заполнил бы его следующим образом:
Для Каждого Док Из Метаданные.Документы Цикл
ИмяТипа = "ДокументСсылка." + Док.Имя;
Элементы.ТипДокумента.СписокВыбора.Добавить(Тип(ИмяТипа));
КонецЦикла;
Элементы.ТипДокумента.СписокВыбора.СортироватьПоЗначению();
А для поля на форме, к которому привязан данный реквизит установил бы выбор из списка.
В итоге получаем выпадающий список с типами документов. Если список кажется слишком большим, то сделал бы отдельную форму для выбора.
Затем, если бы хотел обойти документы или наложить отбор на динамический список вместо вот этого Найти (в таком бы случае динамический список бы менялся сразу после выбора типа) можно уже используя значение этого нашего поля ТипДокумента.
На динамический список можно передачей параметра в запрос или через ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораГруппыСписка(Список.Отбор, "ТипДок", ТипДокумента, ЗначениеЗаполнено(ТипДокумента)); из БСП
Для использования в коде можно сразу брать ТипДокумента как реквизит формы.
Как-то всё у вас сложно... Насколько я понял, нужно, чтобы выполнился обход всех документов указанного пользователем типа. Не проще на форму вывести список всех типов (например, как предложено в (7)), а потом его в запросе подставлять? Например так:
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ." + ИмяДокумента;
Либо без запроса:
Для каждого Ссылка из Документы[ИмяДокумента] Цикл...
Если нужна возможность выбора нескольких типов, то не просто поле, а список значений с пометкой.
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ." + ИмяДокумента;
Либо без запроса:
Для каждого Ссылка из Документы[ИмяДокумента] Цикл...
Если нужна возможность выбора нескольких типов, то не просто поле, а список значений с пометкой.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот