Имя: Пароль:
1C
1С v8
Колонка Булево в ДинамическомСписке упр.форм
,
0 altaykniga
 
02.11.16
11:55
В произвольном запросе дин.списка добавил поле "ЛОЖЬ КАК СоздатьДокументы", вывел это поле на упр.форму.
понятно, что интерактивно галочку поставить в поле "СоздатьДокументы" нельзя. Добавил команду "УстановитьГалку", вывел ее на форму.
в модуле команды написал:

&НаКлиенте
Процедура УстановитьГалку(Команда)
    Элементы.Список.ТекущиеДанные.СоздатьДокументы = НЕ Элементы.Список.ТекущиеДанные.СоздатьДокументы;
КонецПроцедуры


Как теперь обойти строки дин.списка программно и выполнить процедуры в зависимости от значения поля "СоздатьДокументы"?
1 altaykniga
 
02.11.16
11:57
Нашел уже процедуру Процедура СписокВТЗнаСервере(), но как это мне поможет... Никак. Причем в выгружаемую с помощью этой процедуры ТЗ значения моего поля "СоздатьДокументы" (которые я интерактивно устанавливаю) все равно не попадают...
2 разработчик 1с
 
02.11.16
11:58
на сервере
для каждого элемент из список
...
3 altaykniga
 
02.11.16
12:00
(2)

Итератор для значения не определен
Для Каждого Элемент ИЗ Список Цикл
4 разработчик 1с
 
02.11.16
12:09
у списка на форме данные реквизит список?
5 lxs
 
02.11.16
12:17
(0) ты в итоге пытаешь ся работать с динамическим списком или выгружаешь в ТЗ выборку?
6 altaykniga
 
02.11.16
13:20
(4) на форме реквизит "Список", Тип = ДинамическийСписок. Вообще взял типовую форму списка документа ЗаказНаПроизводство из УНФ 1.5.2, скопировал эту форму во внешнюю обработку
7 altaykniga
 
02.11.16
13:22
(5) в итоге нужно следующее: пользователь проставил галки в поле "СоздатьДокументы", нажал на кнопочку "СоздатьПодчиненныеДокументы". Нужно для всех документов ЗаказНаПроизводство создать программно доки: Производство, ПеремещениеЗапасов, ПриходныйОрдер
8 lxs
 
02.11.16
14:09
Через динамический делать не выйдет, да и бред это. Я бы сделал через таблицу значений. Никакого геморроя и возможность работать интерактивно с флагами списка.
9 altaykniga
 
02.11.16
14:17
(8) просто не хотелось код формы списка переписывать... я же скопировал всю форму списка ЗаказНаПроизводство во внешнюю обработку... И если сейчас изменять тип на ТаблицаЗначений, вылезет куча косяков...
10 lxs
 
02.11.16
14:23
(9) Динамический список не позволит тебе использовать флаги. Можешь попробовать использовать ВыделенныеСтроки для своей задачи, но это породит проблему косяков ручного ввода. Для твоей задачи объективно подходит только ТЗ.
11 apokrit
 
02.11.16
14:32
(0) Можно попробовать вместо ЛОЖЬ что типа
ВЫБОР КОГДА <КлючВыборкиНапримерСсылка> В (&КлючиНаКоторыхДолжнаСтоятьГалка) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ СоздатьДокументы

При установке галки помещать ключ текущей строки в параметр КлючиНаКоторыхДолжнаСтоятьГалка.

Но так запрос будет каждый раз (при изменении галки) заново выполняться.
12 lxs
 
02.11.16
14:37
(11) Динамический список не позволяет изменять интерактивно данные в колонках. Не надо пытаться изобретать сферического коня в вакууме.
"При установке галки" - при какой установке "галки", если сама эта операция невозможна?
13 d546
 
02.11.16
14:39
(12) а "галку" можно реализовать за счет условного оформления :)
14 d546
 
02.11.16
14:40
(13) если к (11) прибавить условное оформление и обработку события выбор у списка, то хороший сферический конь получить :)
15 lxs
 
02.11.16
15:22
(14) извращенец, что тут еще скажешь)
16 altaykniga
 
02.11.16
15:28
(10, 11) может добавить на форму реквизит ТаблицаЗначенийОбрабатываемыхДокументов, каждый раз, когда пользователь жмет на кнопку "УстановитьГалку/СнятьГалку"

&НаКлиенте
Процедура УстановитьГалку(Команда)
    Элементы.Список.ТекущиеДанные.СоздатьДокументы = НЕ Элементы.Список.ТекущиеДанные.СоздатьДокументы;
КонецПроцедуры

текущий документ добавляется/удаляется из ТЗ. Теперь сворачиваем ТЗ, чтобы исключить повторения документов. Когда пользователь жмет на "СоздатьДокументы", и все документы из ТЗ обрабатываются