Имя: Пароль:
1C
 
Как осуществить управление флагом из (формы списка)?
, ,
0 Олеся999
 
27.03.15
10:27
Подскажите пожалуйста как осуществить управление флагом из (формы списка)
(Галочки не к чему не привязаны нужно ставить ...для себя)
В динамическом списке ?
нужно  сделать что то вроде такого: http://lvkr.ru/f/4b8NMs/1280.jpg
1 Cube
 
27.03.15
10:29
(0) Перестань хотеть этого :)
2 Олеся999
 
27.03.15
10:32
(1) Почему? :)
3 Cube
 
27.03.15
10:53
(2) Потому что динамический список - это отчет по сути. Интерактивно с ним работать нельзя.

Для чего это всё нужно? Задачу опиши.
4 Ник второй
 
27.03.15
10:54
(0) Запросом
5 Олеся999
 
27.03.15
11:00
(3) Допустим привезли товар и отдали накладную (бумажку) на склад ...кладовщик сделал приход в своей базе .... и должен передать (бумажку) бухгалтерам ....вот они и хотят ставить галочку (если кладовщик отдал им бумажку) ну чтобы не забыть и не запутаться))))
6 Fish
 
27.03.15
11:01
(5) А какой смысл в галочках, которые к данным не привязаны? Типа прокрутил список - и все галочки слетели? :)
7 Cube
 
27.03.15
11:02
(5) Ну и сделай реквизит в документе "Оригинал документа получен". Почему твоя галочка не привязана к данным? Ведь если перезапустить 1С, то такие галочки потеряются...
8 DexterMorgan
 
27.03.15
11:04
(5) Сделай доп. реквизит "Бамажка передана", повесь команду в списке, которая проставляет реквизит
9 Олеся999
 
27.03.15
11:18
(7) (6) Ну вот нужно чтобы сохранялось ....то есть как то записывалось в документ...
Я сделала пока вот так вот  управление из формы документа http://lvkr.ru/f/t703Pd/1280.jpg
Только хочу чтобы  управление было из формы списка
10 Cube
 
27.03.15
11:20
(9) Добавляй команду формы списка. Пихай её в контекстное меню своего списка, а в коде проставляй или убирай эту галочку (ну как пометка удаления).
11 DexterMorgan
 
27.03.15
11:28
(9) ну в принципе, если очень хочешь можешь поменять событие выбор у дин списка, если поле такое - стандартная обработка = ложь и меняй программно реквизит
12 Cube
 
27.03.15
11:30
(11) Кладовщику весело будет...
13 DexterMorgan
 
27.03.15
11:31
(12) понятно что не всем доступ давать
14 DexterMorgan
 
27.03.15
11:32
(12) РольДоступна и вперед, команду же тоже не всем выводить
15 Гёдза
 
27.03.15
11:33
Можно сделать по дабл клику.
16 DexterMorgan
 
27.03.15
11:36
(15) ну я это и предложил в (11) =)
17 Олеся999
 
27.03.15
11:39
(10) Выношу на панель а флажок не активный
18 Cube
 
27.03.15
11:42
(17) Флажок не будет активным никогда. Читай (1) :)
19 Олеся999
 
27.03.15
11:47
а тогда зачем он там нужен?
20 Cube
 
27.03.15
11:50
(19) Он - индикатор. Когда твои бухи нажмут правой кнопкой по документу и в выпавшем меню выберут "Проставить/убрать эту чёртову галку", то галочка будет установлена (или снята) в документе и это будет видно в списке.
21 Олеся999
 
27.03.15
11:58
Этого нету в списке
http://lvkr.ru/f/arg7fw/800.jpg
22 Fish
 
27.03.15
11:59
(21) Ну так добавь :)
23 Cube
 
27.03.15
12:00
(21) Так, перечитываем (10) последовательно:

"Добавляй команду формы списка."
Сделано?

"Пихай её в контекстное меню своего списка"
Сделано?

"а в коде проставляй или убирай эту галочку"
Сделано?
24 Олеся999
 
27.03.15
12:07
Как я и думала http://lvkr.ru/f/GVUT2y/1024.jpg
25 Олеся999
 
27.03.15
12:07
Это же динамический список
26 DexterMorgan
 
27.03.15
12:12
(24) тебе же говорят меняй реквизит документа
27 Cube
 
27.03.15
12:12
(24) (25) )))))

&НаКлиенте
Процедура МояКоманда()

    МояКомандаНаСервере(Элементы.МойДинамическийСписок.ТекущиеДанные.Ссылка);

КонецПроцедуры

&НаСервере
Процедура МояКомандаНаСервере(СсылкаНаДокумент)

    ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
    ДокументОбъект.ДокументПроведен = НЕ ДокументОбъект.ДокументПроведен;
    ДокументОбъект.Записать();

КонецПроцедуры
28 Cube
 
27.03.15
12:13
+(27) Ошибки, если есть, сама исправишь. Вслепую писал.
29 фобка
 
27.03.15
12:14
(5) открыл форму документа поставил галку и записал. Всё
30 фобка
 
27.03.15
12:16
Не стоит разрешать пользователям идиотничать, потом же хуже будет
31 kosts
 
27.03.15
12:19
Можно добавить список на реквизиты формы (на форме можно не показывать). В этот список будешь программно добавлять свои отмеченные документы. В условном оформлении добавить оформление нужной колонки. В оформлении условие на вхождение ссылки в список и показывать текстом галочку.
32 kosts
 
27.03.15
12:21
(31) + Если вместо в нужную колонку всегда выводить текст, то на неё можно повесить гиперссылку. И отмечать/разотмечать документы можно одним кликом на гиперссылке.
33 Олеся999
 
27.03.15
12:26
(27) Написала так :

&НаКлиенте
Процедура МояКоманда()

    МояКомандаНаСервере(Элементы.МойДинамическийСписок.ТекущиеДанные.Ссылка);

КонецПроцедуры

&НаСервере
Процедура МояКомандаНаСервере(СсылкаНаДокумент)

    ДокументОбъект = Документы.ПриходнаяНакладная.ПолучитьФормуСписка();
    ДокументОбъект.ДокументПроведен = НЕ ДокументОбъект.ДокументПроведен;
    ДокументОбъект.Записать();

КонецПроцедуры

Не работает
34 DexterMorgan
 
27.03.15
12:27
МояКомандаНаСервере(Элементы.МойДинамическийСписок.ТекущиеДанные.Ссылка);

поменяй на

МояКомандаНаСервере(Элементы.МойДинамическийСписок.ТекущаяСтрока);
35 DexterMorgan
 
27.03.15
12:27
и вообще у тебя реквизит то есть такой: ДокументПроведен ?
36 Олеся999
 
27.03.15
12:28
(35) Ну конечно:)
37 Cube
 
27.03.15
12:29
(33) Удивительно, если бы работало :)))

МойДинамическийСписок - заменить надо на имя ДС в твоей форме.

А названия процедур - для примера. Ты в процедуре своей комады должна написать что-то подобное, а не тупо копипастить...
38 Cube
 
27.03.15
12:29
(34) Не всегда ТекущаяСтрока содержит ссылку, бывает, что и номер строки...
39 DexterMorgan
 
27.03.15
12:30
(38) слушай, не нужно быть телепатом, чтобы понять что у нее форма списка с основной таблицей этого документа
40 Олеся999
 
27.03.15
12:34
&НаКлиенте
Процедура МояКоманда()

    МояКомандаНаСервере(Элементы.Список.ТекущиеДанные.Ссылка);
  КонецПроцедуры

&НаСервере
Процедура МояКомандаНаСервере(СсылкаНаДокумент)

    ДокументОбъект = Документы.ПриходнаяНакладная.ПолучитьФормуСписка();
    ДокументОбъект.ДокументПроведен = НЕ ДокументОбъект.ДокументПроведен;
    ДокументОбъект.Записать();

КонецПроцедуры

Тоже не работает
41 DexterMorgan
 
27.03.15
12:36
(38) а вот если у нее ссылка не выведена на форму списка - в текущих данных ее не будет, и твой код работать не будет
42 Kondarat
 
27.03.15
12:37
Замени
ДокументОбъект = Документы.ПриходнаяНакладная.ПолучитьФормуСписка();
на
СсылкаНаДокумент.ПолучитьОбъект();
43 Cube
 
27.03.15
12:37
(40) Что говорит? У тебя процедура МояКоманда() привязана к кнопке на форме?
44 DexterMorgan
 
27.03.15
12:37
(38) А "ТекущаяСтрока" всегда при заданной основной таблице будет содержать ссылку, так что не надо
45 Cube
 
27.03.15
12:37
+(42) И это тоже.
46 Kondarat
 
27.03.15
12:38
(41) Точно?
47 Олеся999
 
27.03.15
12:41
(42) Я так тоже делала)
48 DexterMorgan
 
27.03.15
12:43
(46) Если на форму поле не выведено - в текущих данных его не будет
49 Kondarat
 
27.03.15
12:45
(48) Поставь галку у Ссылка использовать всегда и не дури людей.
50 Олеся999
 
27.03.15
12:46
(43) {Документ.ПриходнаяНакладная.Форма.ФормаСписка.Форма(5)}: Поле объекта не обнаружено (Ссылка)
    МояКомандаНаСервере(Элементы.Список.ТекущиеДанные.Ссылка);
Хотя http://lvkr.ru/f/5bvrxn/1280.jpg              


Наименование : список
51 DexterMorgan
 
27.03.15
12:47
(50) Ох неужели? Может тада все-таки поменять на ТекущуюСтроку?
52 DexterMorgan
 
27.03.15
12:48
(49) Нафига? Если в ТекущейСтроке все есть?
53 Kondarat
 
27.03.15
12:49
(52) Это в данном частном случае
54 DexterMorgan
 
27.03.15
12:50
(53) И?
55 Feunoir
 
27.03.15
12:53
(50) Поставь точку останова на эту строку, и посмотри какое значение у переменной Элементы.Список.ТекущиеДанные
56 DexterMorgan
 
27.03.15
12:54
(55) Да понятно уже что не выведено поле на форму
57 Олеся999
 
27.03.15
13:00
58 DexterMorgan
 
27.03.15
13:02
(57) Так а в чем ошибка? у тебя же определился документ
59 Cube
 
27.03.15
13:03
(57) Всё работает, я так понимаю?
60 Олеся999
 
27.03.15
13:05
(59)
&НаКлиенте
Процедура МояКоманда()

    //МояКомандаНаСервере(Элементы.Список.ТекущиеДанные.Ссылка);
    МояКомандаНаСервере(Элементы.Список.ТекущаяСтрока);
  КонецПроцедуры

&НаСервере
Процедура МояКомандаНаСервере(СсылкаНаДокумент)

    ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
    ДокументОбъект.ДокументПроведен = НЕ ДокументОбъект.ДокументПроведен;
    ДокументОбъект.Записать();

КонецПроцедуры
Так вот работает ....но почему то не обновляет ...то есть что бы увидеть что поставила галочку нужно выходить и  зайти обратно в приходную накладную
61 Гёдза
 
27.03.15
13:06
элементы.список.обновить()
62 Cube
 
27.03.15
13:07
(60) после строки

МояКомандаНаСервере(Элементы.Список.ТекущаяСтрока);

Пиши

ОбновитьОтображениеДанных();
63 Олеся999
 
27.03.15
13:16
(62) Спасибо работает
только выдает :
{Документ.ПриходнаяНакладная.Форма.ФормаСписка.Форма(14)}: Ошибка при вызове метода контекста (ОбновитьОтображениеДанных)
    ОбновитьОтображениеДанных();
по причине:
Метод недоступен на сервере

Причем написала на сервере &НаСервере
Процедура МояКомандаНаСервере(СсылкаНаДокумент)

    ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
    ДокументОбъект.ДокументПроведен = НЕ ДокументОбъект.ДокументПроведен;
    ДокументОбъект.Записать();
    ОбновитьОтображениеДанных();


КонецПроцедуры
64 Cube
 
27.03.15
13:20
(63) А я тебе сказал написать &НаКлиенте... Посмотри поле какой строки надо вставлять-то...
65 kosts
 
27.03.15
14:12
Если что, то в стандартных командах формы списка документа есть команда проведения/отмены.
2 + 2 = 3.9999999999999999999999999999999...