Имя: Пароль:
1C
1C 7.7
v7: Галочка в документе
0 Patrio_
O_Muerte
 
29.07.12
19:35
Добавил на форму документа в табличную часть галочку, согласно этой теме:
checkbox в таблице 1С

Вроде работает, но засада в том, что при попытке изменить значение галочки (снять/установить) меняется во всем документе, а не в конкретной строке.
Где могла быть допущена ошибка?
1 zak555
 
29.07.12
19:39
где код
2 zak555
 
29.07.12
19:42
на ппроцедуру, в которой будет

Если ТЗ.ТекущаяКолонка()="Птичка" Тогда

ТЗ.УстановитьЗначение(ТЗ.ТекущаяСтрока(), "Птичка", 1 - ТЗ.ПолучитьЗначение(ТЗ.ТекущаяСтрока(), "Птичка"));

конецЕсли;
3 zak555
 
29.07.12
19:56
+ надо проверить на отсутствие строк
4 Patrio_
O_Muerte
 
29.07.12
20:02
Вот модуль.
Функция Флаг1()  // вызывается из формулы текстовой колонки
   Возврат ?(Флаг1 = 1,2,1);
КонецФункции


Процедура ПриНачалеРедактированияСтроки()
 Если Форма.ТекущаяКолонка() = "ОтправитьНаЗабаланс" Тогда
       Флаг1 = ?(Флаг1 = 1,2,1);  
       СтатусВозврата(0);
   КонецЕсли;
КонецПроцедуры
5 Patrio_
O_Muerte
 
29.07.12
20:04
(2)Нет ТЗ - это табл часть документа, и в ней на форму добавлен текстовый реквизит, в формуле которого висит функция Флаг1().
6 aka AMIGO
 
29.07.12
20:05
(5)в том и причина - убери формулу из свойств этого реквизита
7 aka AMIGO
 
29.07.12
20:10
+6 вообще нельзя присваивать и функции и переменной одно и то же имя.
8 Patrio_
O_Muerte
 
29.07.12
20:17
(6)Если я убираю функцию из формулы, галочки в принципе не появляются в нужной колонке.
9 aka AMIGO
 
29.07.12
20:18
(8)ты эту галочку хочешь запоминать?
10 zak555
 
29.07.12
20:19
СтатусВозврата убери
11 aka AMIGO
 
29.07.12
20:26
(8)понятно.. не убирай ф-лу, пусть стоит, только имя поменяй.
а в свойствах ТЧ у тебя выбран "рисунок" (картинка)?
12 Rie
 
29.07.12
20:28
(7) Можно
13 Patrio_
O_Muerte
 
29.07.12
20:29
(9)Нет, это же реквизит формы, хотя если придется делать реквизит табличной части беды большой не будет.
(10)Убрал, результата нет.
14 Rie
 
29.07.12
20:29
(4) Флаг1 - это реквизит табличной части?
15 Rie
 
29.07.12
20:29
(13) Делай реквизит табличной части.
16 Patrio_
O_Muerte
 
29.07.12
20:36
(11)Поменял на Флаг12() - толку нет.
Да рисунок на табличную часть повешен - два квадратика: в одном есть галочка, в другом нет.
(14)Нет
17 Patrio_
O_Muerte
 
29.07.12
20:36
(16)Хм, попробую.
18 zak555
 
29.07.12
20:36
(16) > (14)Нет

почему ?
19 Patrio_
O_Muerte
 
29.07.12
20:50
(18)Я делал как в ссылке указано.
Там идет речь о реквизите формы.
20 Patrio_
O_Muerte
 
29.07.12
20:53
(18)И кстати у реквизита нет галочки "Использовать как пометку"
21 Rie
 
29.07.12
20:54
(18) Нет такой галочки. И правильно нет.
22 Rie
 
29.07.12
20:58
+(21) Делаешь реквизит табличной части, который хранит значение твоей галочки.
Вешаешь картинку на табличную часть в форме. Добавляешь в табличную часть на форме текстовую колонку. Называешь её, к примеру, "Галочка". В её формуле пишешь (для простоты)
ИмяРеквизитаГалочки+1
У колонки этой ставишь флажок "Отображать пиктограммы".
Описываешь предопределенную процедуру
Процедура ПриНачалеРедактированияСтроки()
   Если Форма.ТекущаяКолонка()="Галочка" Тогда
       ИмяРеквизитаГалочки = 1-ИмяРеквизитаГалочки;
   КонецЕсли;
КонецПроцедуры

Радуешься жизни.
23 Cthulhu
 
29.07.12
21:13
Привязка вывода галочки к номеру строки нужна.
1) если нет реквизита для запоминания отметки(галочки) - нужно выёживаться и в переменной модуля запоминать, например, СЗ номеров отмеченных строк (пусть будет ОтмСтрокиСЗ), а в формуле колонки с галкой, прописать, например, 1-Мин(1,ОтмСтрокиСЗ.НайтиЗначение(НомерСтроки))... и дополнительно париться с перекомпоновкой этого СЗ если строки будут смещаться или таб.часть будет штатно сортироваться (ну или отрубить такие штатные возможности изменения порятка следования строк).
2) если есть реквизит для запоминания галочки (0/1) - все гораздо прозрачнее, и, пожалуй, даже в обїяснениях не нуждается.
24 zak555
 
29.07.12
22:36
(21) галочка - число
25 Patrio_
O_Muerte
 
30.07.12
09:26
Господа, спасибо за пояснения, получилось.
26 Ёпрст
 
30.07.12
09:27
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.