Имя: Пароль:
1C
1С v8
Обработка на управляемых (список на форму).
0 lirt82
 
04.04.17
14:55
Пишу обработку для управляемой конфы, реквизитов обработки нет, на форме создал объект Результат тип СписокЗначений, и команду "Заполнить" с процедурой НаКлиенте, суть при нажатии на форму в этом СписокеЗначении должны отобразиться все напрм. ВидыДокументов.
т.е. где запустить цикл по метаданным чтоб заполнить список и потом передать его с сервера на клиент на форму?
1 DrShad
 
04.04.17
15:10
метаданные есть только на сервере
2 lodger
 
04.04.17
15:10
вопрос "где запустить цикл".
ответ "с сервера".
3 1Снеговик
 
гуру
04.04.17
15:12
Формируй список на сервере, потом ЗначениеВРеквизитФормы
4 lodger
 
04.04.17
15:13
&НаКлиенте
процедура Заполнить()
ЗаполнитьНаСервере();
конецпроцедуры

&НаСервере
процедура ЗаполнитьНаСервере()
//Цикл по Метаданные.Документы
//Результат.Добавить(ТекМетаданные);
конецпроцедуры

и не надо ЗначениеВРеквизитФормы.
5 lirt82
 
04.04.17
19:00
(4) +1, спасибо, получилось без (ЗначениеВРеквизитФормы).
6 lirt82
 
04.04.17
19:09
как теперь обработать полученный вид документа из списка значений?
т.е. на форме список видов документов с флажками, напрм. пользователь поставил флажок рядом с Реализацией, далее жмет на кнопку "Выполнить" к ней процедура напрм. выбранный вид документа помечает на удаление.
кнопку сделал
&НаКлиенте
Процедура Выполнить(Команда)
    ВыполнитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ВыполнитьНаСервере()
    
Для каждого ТекСтрока Из РезультатСписок Цикл
   Если ТекСтрока.Пометка Тогда
// тут должны получить объект и далее с ним работать, но у ТекСтроки Тип Строка а Значение "РеализацияТМЗ"            
КонецЦикла;
КонецПроцедуры
7 lodger
 
04.04.17
19:17
(6) ну... я бы может нагородил запрос вида
ШаблонЗапроса = "Выбрать
Доки.Ссылка
ИЗ
Документ.ТаблицаДоков КАК Доки"

Для каждого ТекСтрока Из РезультатСписок Цикл
Если ТекСтрока.Пометка Тогда
  Запрос = Новый Запрос;
  Запрос.Текст = СтрЗаменить(ШаблонЗапроса,"ТаблицаДоков",ТекСтрока.Значение);
  Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
    ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
    Если НЕ ДокОбъект.ПометкаУдаления Тогда
     ДокОбъект.УстановитьПометкуУдаления();
    КонецЕсли
   конеццикла
КонецЕсли;
КонецЦикла;
КонецПроцедуры
8 jsmith82
 
04.04.17
19:18
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ Таб.Ссылка ИЗ Документы.%ИмяДок КАК Таб";
Запрос.Текст = СтрЗаменить(Запрос.Текст", "%ИмяДок", ТекСтрока.Значение);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Обт = Выборка.Ссылка.ПолучитьОбъект();
Обт.ПометкаУдаления = Истина;
Обт.Записать();
КонецЦикла;
Программист всегда исправляет последнюю ошибку.