|
Вопрос по СпискуЗначений | ☑ | ||
---|---|---|---|---|
0
Tumakota
07.08.13
✎
16:14
|
Как получить объект из списка значений, т.е есть список документов при нажтии кнопки мне надо получить все печатные формы этих документов, но для этого мне надо получить кадый объект в цикле.
|
|||
1
Нуф-Нуф
07.08.13
✎
16:16
|
поток мыслей детектед (с)
|
|||
2
Defender aka LINN
07.08.13
✎
16:17
|
(0) Надо - получай.
|
|||
3
Tumakota
07.08.13
✎
16:26
|
Ну так вот и я не знаю как получить, не спрашивал бы если бы знал
|
|||
4
pessok
07.08.13
✎
16:27
|
в модуле объекта документов есть функция подготовитьструктурупечатныхформ() вот в ее сторону и кури
|
|||
5
pessok
07.08.13
✎
16:28
|
+(4) когда ж они уже в типовых вынесут это в модуль менеджера, эх...
|
|||
6
Tumakota
07.08.13
✎
16:31
|
Если НЕ ЗначениеЗаполнено(Дк) Тогда
Возврат; КонецЕсли; // Сформировать дерево макетов печати Для каждого значения из Дк цикл СтруктураВнутреннихПечатныхФорм = ДК.ПолучитьОбъект().ПолучитьСтруктуруПечатныхФорм(); ДеревоМакетовПечати = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Дк, СтруктураВнутреннихПечатныхФорм,,,Ложь); ТаблицаШаблоны.Очистить(); Для каждого ТекущаяСтрока Из ДеревоМакетовПечати.Строки Цикл Если ТипЗнч(ТекущаяСтрока.Расшифровка) = Тип("Структура") Тогда Стр=ТаблицаШаблоны.Добавить(); Стр.Код = СокрЛП(ТекущаяСтрока.Расшифровка.СсылкаНаВнешнююОбработку.Код); Стр.Наименование = ТекущаяСтрока.Текст; Стр.Расшифровка = ТекущаяСтрока.Расшифровка; КонецЕсли; КонецЦикла; КонецЦикла; Вот код, ДК был как просто ссылка на документы, надо было переделать на то что бы вибарть не по одному документу а по не скольким. Я сделал ДК "СпискомЗначений", делаю цикл в котором выбираю по очереди каждый документ. Только потом не знаж как достать печатнные формы, так как не знаю как получитьобъект() |
|||
7
Tumakota
07.08.13
✎
16:42
|
Что не кто мне может подсказать?
|
|||
8
pessok
07.08.13
✎
16:45
|
(7) что тебе надо сделать?
|
|||
9
pessok
07.08.13
✎
16:46
|
спрашиваю, потому что поток сознания в (0) и своеобразный код в (6) не дает этого понимая. только ты объясни словами, а-ля: "хочу вывести для пользователя список всех возможных печатных форм"
|
|||
10
Жан Пердежон
07.08.13
✎
16:51
|
(5) в типовых это уже в виде команд сделано, так что видимо никогда
|
|||
11
Tumakota
07.08.13
✎
16:52
|
Есть Поле - ДК, с типом значения список, Выбираю документы ну к примеру 4 реализации 5 счетов фактур, нажимаю кнопку и он внизу должен вывести в таблицу список всех печатных форм для документов! Если я делаю поле ДК не как список значений, а просто ссылку на документы то этот код, работает идеально, но мне надо переделать так чтобы можно было не по одному документу выбирать а по несколько штук
|
|||
12
pessok
07.08.13
✎
16:56
|
(10) не все типовые еще на УФ :) и кто мешает код команд выполнять в модуле менеджера, тащем-та? :)
|
|||
13
pessok
07.08.13
✎
16:59
|
(11) вот, больше похоже на истину.
создай массив, в который будешь помещать ТипЗнч(ЭлементДК) создай массив, в который будешь помещать ссылки уникальных типов если ТипЗнч(ЭлементДК) уже есть в первом массиве, то пропускай строку, если нет - пиши ЭлементДК во второй массив. после окончания цикла обходи циклом второй массив, получай объект из ссылок (для твоего примера это будут только две ссылки, но большего и не надо) и для каждого из этих объектов выполняй ДК.ПолучитьОбъект().ПолучитьСтруктуруПечатныхФорм(), а потом циклом по структуре выводи |
|||
14
pessok
07.08.13
✎
17:00
|
//если ТипЗнч(ЭлементДК) уже есть в первом массиве, то //пропускай строку, если нет - пиши ЭлементДК во второй массив.
и ТипЗнч(ЭлементДК) в первый массив, есессна |
|||
15
Tumakota
07.08.13
✎
17:03
|
(14) Примерчик как это выглядит можешь подсказать буду очень признателен!
|
|||
16
pessok
07.08.13
✎
17:08
|
МассивТипов = Новый Массив;
МассивСсылок = Новый Массив; Для Каждого ЭлСписка Из СЗ Цикл Если МассивТипов.Найти(ТипЗнч(ЭлСписка.Знчение)) <> Неопределено Тогда Продолжить Иначе МассивТипов.Добавить(типЗнч(ЭлСписка.Значение)); МассивСсылок.Добавить(ЭлСписка.Значение) КонецЕсли; КонецЦикла; Для Каждого ЭлМассива Из МассивСсылок Цикл Об = ЭлМассива.ПолучитьОбъект(); Для Каждого ТекСтр Из Об.ПолучитьСтруктуруПечатныхФорм() Цикл Сообщить(ТекСтр.Значение); КОнецЦикла КонецЦикла |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |