Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
1

Доступность полей ввода

03.02.2015, 13:44. Просмотров 2579. Ответов 14
Метки нет (Все метки)

Есть документ (например, "Расходный кассовый ордер") с 2-мя вкладками: По одной сделке и По нескольким сделкам.
При открытии документа с одной сделкой открывается форма с вкладкой "По одной сделке", на ней расположены поля ввода, но они не активны - недоступны для редактирования.
При переключении на вкладку "По нескольким сделкам" и изменении в строке значения одного поля, а потом переключении обратно на вкладку "По одной сделке", поле значение которого было изменено в таблице становиться активным - доступным для редактирования.
Явного изменения доступности в коде нигде нет. Что может быть? Необходимо, чтобы при открытии сразу поля ввода были активны, без лишних "телодвижений".
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2015, 13:44
Ответы с готовыми решениями:

Доступность выбранных полей в СКД в зависимости от параметра
Добрый день. Есть булеватый параметр Если он - правда, то надо в СКД показывать 2 столбца если...

Доступность и не доступность флажка на форме
На форме установлен флажок. При определенных условиях необходимо, что бы он, оставаясь ВИДИМЫМ,...

Автозаполнение полей ввода
1с 8.2 Подскажите как поступить. Есть Форма с полями ФИО и Адресс. Эти данные хранятся в...

Доступность реквизитов ТЧ (8.1)
Есть табличная часть внешней обработки. В ТЧ есть реквизит "документ" составного типа и реквизиты...

Закрыть Доступность Элементов Тч
Здравствуйте. Такой вопрос, подскажите пожалуйста, как сделать, чтобы допустим если я поставил...

14
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
03.02.2015, 22:51 2
Должна быть активизирована первая запись (она-то и является "по одной сделке") в ТЧ.РасшифровкаПлатежа. При открытии она добавляется в случае отсутствия. Это штатно происходит, вообще-то. Видать, кто-то гвоздиком поковырял.

Добавлено через 2 минуты
Причём, активная запись не есть тип строка тч, а тип Текущиеданные таб.поля
0
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
04.02.2015, 08:11  [ТС] 3
Гвоздиком ковыряюсь я - еще для одного вида операции делаю разделение по одной сделке или нескольким.
При открытии строка в РасшифровкеПлатежа есть, поэтому ничего не добавляется, но и для редактирования данная строка получается недоступна. (Может я где забыла чего-то перенести )
Причём, активная запись не есть тип строка тч, а тип Текущиеданные таб.поля
а текущие данные только для чтения, доступности то ведь у них нет...

Добавлено через 10 минут
Причем поле становится активным, после того как я в ТЧ именно выберу значение (ДДС), если я просто строку ТЧ активизирую и перейду на вкладку по одной сделке, то поле доступным не будет.
0
Dethmontt
Модератор
Эксперт 1С
2679 / 2460 / 427
Регистрация: 10.03.2011
Сообщений: 8,820
Записей в блоге: 1
Завершенные тесты: 1
04.02.2015, 12:38 4
Оленька, так анализируйте событие при изменении статьи ДДС
0
04.02.2015, 12:38
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
04.02.2015, 13:00  [ТС] 5
Dethmontt, нет никаких событий в табличном поле. Если бы было все так легко, я бы не спрашивала тут...
0
Dethmontt
Модератор
Эксперт 1С
2679 / 2460 / 427
Регистрация: 10.03.2011
Сообщений: 8,820
Записей в блоге: 1
Завершенные тесты: 1
04.02.2015, 13:36 6
Оленька, Конфигурация то какая?

Добавлено через 27 секунд
Оленька, мы же не можем за вас проанализировать код...

Добавлено через 6 минут
Оленька, давайте начнем с того что вы выложите сюда листинг модуля формы

Только обязательно оформляйте тегами 1С и СПОйЛЕР
0
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
04.02.2015, 14:46  [ТС] 7
Конфигурация - УПП
Документ стандартный "Расходный кассовый ордер". На вкладке "Выдача подотчетнику" я делаю, точно также как и на вкладке "РКО" (Редактировать: Без разбиения и Списком). На форму добавлено ТабличноеПоле "РасшифровкаПлатежа1".
Что конкретно из листинга выложить? Я только в несколько стандартных процедур влезла с условием
И добавила:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Процедура Список2ПриИзменении(Элемент)
 Если Не Список2 И РасшифровкаПлатежа.Количество()>1 Тогда
  
  ТекстВопроса = "Все строки расшифровки платежа, кроме первой, будут удалены.
  |Продолжить?";
  
  Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да,);
  
  Если Ответ <> КодВозвратаДиалога.Да Тогда
   Список2=Истина;
   Возврат;
  КонецЕсли;
  
  Пока РасшифровкаПлатежа.Количество()>1 Цикл
   СтрокаУдаления=РасшифровкаПлатежа[1];
   РасшифровкаПлатежа.Удалить(СтрокаУдаления);
  КонецЦикла;
  
  ЭлементыФормы.РасшифровкаПлатежа1.ТекущаяСтрока=РасшифровкаПлатежа[0];
  СтрокаПлатеж=ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные;
    
  РассчитатьСуммуВзаиморасчетов();
    
 Иначе
    
  ЭлементыФормы.РасшифровкаПлатежа1.ТекущаяСтрока=РасшифровкаПлатежа[0];
  СтрокаПлатеж=ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные;
       
 КонецЕсли; 
  
 УстановитьВидимость();
 УправлениеДенежнымиСредствами.УстановитьНадписьСделкиПлатеж(СтрокаПлатеж, ЭтаФорма, ВидОперации);
 КонецПроцедуры
1C
1
2
3
Процедура РасшифровкаПлатежа1ПриАктивизацииСтроки(Элемент)
 СтрокаПлатеж=ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные;
КонецПроцедуры
1C
1
2
3
4
5
Процедура РасшифровкаПлатежа1ПередУдалением(Элемент, Отказ)
 Если РасшифровкаПлатежа.Количество()=1 Тогда
  Отказ=Истина;
 КонецЕсли;
КонецПроцедуры
0
Dethmontt
Модератор
Эксперт 1С
2679 / 2460 / 427
Регистрация: 10.03.2011
Сообщений: 8,820
Записей в блоге: 1
Завершенные тесты: 1
04.02.2015, 16:18 8
Оленька, а в приОткрытии вы это делаете?
1C
1
  СтрокаПлатеж=ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные;
Добавлено через 1 минуту

Не по теме:

если я правильно понял, вы взялись дорабатывать то, чего совсем не понимаете...

0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
05.02.2015, 00:26 9
смотрим данные контрола на форме:
ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СуммаВзаиморасчетов
у Вас:
1C
1
ЭлементыФормы.РасшифровкаПлатежа[B]1[/B].ТекущаяСтрока=РасшифровкаПлатежа[0];
0
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
05.02.2015, 08:49  [ТС] 10
Цитата Сообщение от Dethmontt Посмотреть сообщение
Оленька, а в приОткрытии вы это делаете?
при открытии у меня:
1C
1
2
3
4
5
6
7
Если НЕ ВидОперации = Перечисления.ВидыОперацийРКО.ВыдачаДенежныхСредствПодотчетнику Тогда
  ЭлементыФормы.РасшифровкаПлатежа.ТекущаяСтрока=РасшифровкаПлатежа[0];
  СтрокаПлатеж=ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные;
 Иначе
  ЭлементыФормы.РасшифровкаПлатежа1.ТекущаяСтрока = РасшифровкаПлатежа[0];
  СтрокаПлатеж = ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные;
 КонецЕсли;
Т.к. данная вкладка используется не только для вида операции "ВыдачаДенежныхСредствПодотчетнику"

Добавлено через 23 минуты
Цитата Сообщение от duk337 Посмотреть сообщение
смотрим данные контрола на форме: ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СуммаВзаиморасчетов
немного дописала в стандартной процедуре, т.к. данная вкладка работает не только для вида операции "ВыдачаДенежныхСредствПодотчетнику", и при других видах операции выходили ошибки:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Процедура УстановитьДанныеДляРеквизитов()
 
 Если ((ЕстьРасчетыСКонтрагентами ИЛИ ЕстьРасчетыПоКредитам) И Не Список) 
  ИЛИ ВидОперации=Перечисления.ВидыОперацийРКО.ВыдачаДенежныхСредствПодотчетнику Тогда
  
  Если НЕ ВидОперации=Перечисления.ВидыОперацийРКО.ВыдачаДенежныхСредствПодотчетнику Тогда 
   Если НЕ ЭлементыФормы.СуммаДокумента.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СуммаВзаиморасчетов" Тогда 
    ЭлементыФормы.СуммаДокумента.Данные="ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СуммаВзаиморасчетов";
   КонецЕсли;
  Иначе
   Если РасшифровкаПлатежа.Количество() > 1 Тогда
    Если НЕ ЭлементыФормы.СуммаДокумента.Данные = "СуммаДокумента" Тогда 
     ЭлементыФормы.СуммаДокумента.Данные="СуммаДокумента";
    КонецЕсли;
    
 
    Если НЕ ЭлементыФормы.КурсВзаиморасчетовПодотчетник.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.КурсВзаиморасчетов" Тогда
     ЭлементыФормы.КурсВзаиморасчетовПодотчетник.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.КурсВзаиморасчетов";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.Проект1.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.Проект" Тогда
     ЭлементыФормы.Проект1.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.Проект";
    КонецЕсли;
        
    Если НЕ ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СтатьяДвиженияДенежныхСредств" Тогда
     ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СтатьяДвиженияДенежныхСредств";
     ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.Доступность = Истина;
     ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.ТолькоПросмотр = Ложь;
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.ДокументПланированияПлатежаПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.ДокументПланированияПлатежа" Тогда
     ЭлементыФормы.ДокументПланированияПлатежаПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.ДокументПланированияПлатежа";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.КурсВзаиморасчетовПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.КурсВзаиморасчетовПлан" Тогда
     ЭлементыФормы.КурсВзаиморасчетовПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.КурсВзаиморасчетовПлан";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.СуммаПлатежаПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СуммаПлатежаПлан" Тогда
     ЭлементыФормы.СуммаПлатежаПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные.СуммаПлатежаПлан";
    Конецесли;
 
   Иначе
    Если НЕ ЭлементыФормы.СуммаДокумента.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СуммаВзаиморасчетов" Тогда 
     ЭлементыФормы.СуммаДокумента.Данные="ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СуммаВзаиморасчетов";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.КурсВзаиморасчетовПодотчетник.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.КурсВзаиморасчетов" Тогда
     ЭлементыФормы.КурсВзаиморасчетовПодотчетник.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.КурсВзаиморасчетов";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.Проект1.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.Проект" Тогда
     ЭлементыФормы.Проект1.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.Проект";
    КонецЕсли;
        
    Если НЕ ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СтатьяДвиженияДенежныхСредств" Тогда
     ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СтатьяДвиженияДенежныхСредств";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.ДокументПланированияПлатежаПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.ДокументПланированияПлатежа" Тогда
     ЭлементыФормы.ДокументПланированияПлатежаПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.ДокументПланированияПлатежа";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.КурсВзаиморасчетовПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.КурсВзаиморасчетовПлан" Тогда
     ЭлементыФормы.КурсВзаиморасчетовПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.КурсВзаиморасчетовПлан";
    КонецЕсли;
    
    Если НЕ ЭлементыФормы.СуммаПлатежаПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СуммаПлатежаПлан" Тогда
     ЭлементыФормы.СуммаПлатежаПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СуммаПлатежаПлан";
    Конецесли;
    
   КонецЕсли;
   
  КонецЕсли;
    
  ЭлементыФормы.НадписьСуммаДокумент.Данные="НадписьСуммаВзаиморасчетов";
  ЭлементыФормы.НадписьВалютаДокумент.Данные="";
  ЭлементыФормы.НадписьВалютаДокумент.Заголовок="";
  ЭлементыФормы.НадписьВалютаВзаиморасчетов.Данные="НадписьВалютаДокумент";
  ЭлементыФормы.НадписьВалютаВзаиморасчетовПодотчет.Данные="НадписьВалютаДокумент";
    
  ИнвертироватьСуммы=Истина;
  
 Иначе
  
  Если НЕ ЭлементыФормы.СуммаДокумента.Данные = "СуммаДокумента" Тогда 
   ЭлементыФормы.СуммаДокумента.Данные="СуммаДокумента";
  КонецЕсли;
  ЭлементыФормы.НадписьВалютаДокумент.Данные="НадписьВалютаДокумент";
  ЭлементыФормы.НадписьСуммаДокумент.Данные="";
  ЭлементыФормы.НадписьСуммаДокумент.Заголовок="Сумма: ";
  
  ИнвертироватьСуммы=Ложь;
    
 КонецЕсли;
  
КонецПроцедуры
Добавлено через 19 минут
Когда я на вкладке "Списком" в ЭлементыФормы.РасшифровкаПлатежа1 перевыбираю статью ДДС, то на вкладке "Без разбиения", становится доступно только поле статьи ДДС. И точно также с остальными реквизитами, если изменила Проект в ТЧ, то только после этого поле ввода "Проект" становится доступным...
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
05.02.2015, 09:55 11
Обновить() используйте.
А в логике этих "если" я не разобрался, много букав.
Не проще ещё одну панель добавить, чем данные перелинковывать?

Добавлено через 2 минуты
Хотя, так и не увидел чёткой синхронизации тч[0] и текущих данных, т.е. полей.
0
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
05.02.2015, 11:22  [ТС] 12
Цитата Сообщение от duk337 Посмотреть сообщение
Обновить() используйте.
Обновить не помогает.

Цитата Сообщение от duk337 Посмотреть сообщение
А в логике этих "если" я не разобрался, много букав.
Если честно, логика "если" мне тоже не понятна, но я написала так, как было написано в стандартной процедуре, просто мне пришлось для всех моих полей это прописывать.

Цитата Сообщение от duk337 Посмотреть сообщение
Не проще ещё одну панель добавить, чем данные перелинковывать?
Вы имеете в виду добавить еще одну панель для одной сделки?
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
05.02.2015, 12:22 13
Цитата Сообщение от Оленька Посмотреть сообщение
Обновить не помогает.
Следовательно, в момент редактирования строка неактивна. Разберитесь там с Вашей "единичкой" в ЭлементыФормы.РасшифровкаПлатежа1. У Вас два поля. В типовой этого нет. Поле РасшифровкаПлатежа одно в панели "много сделок". И если в данных стоит оно, а позиционируете Вы другое, эффекта ждать не стоит.
1
Оленька
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 540
05.02.2015, 15:14  [ТС] 14
всем спасибо
в процедуре "ПриОткрытии" изменила немного свои изменения:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Если НЕ ВидОперации = Перечисления.ВидыОперацийРКО.ВыдачаДенежныхСредствПодотчетнику Тогда
  ЭлементыФормы.РасшифровкаПлатежа.ТекущаяСтрока=РасшифровкаПлатежа[0];
  СтрокаПлатеж=ЭлементыФормы.РасшифровкаПлатежа.ТекущиеДанные;
 Иначе
  ЭлементыФормы.КурсВзаиморасчетовПодотчетник.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.КурсВзаиморасчетов";
  ЭлементыФормы.Проект1.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.Проект";
  ЭлементыФормы.СтатьяДвиженияДенежныхСредствБанк1.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СтатьяДвиженияДенежныхСредств";
  ЭлементыФормы.ДокументПланированияПлатежаПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.ДокументПланированияПлатежа";
  ЭлементыФормы.КурсВзаиморасчетовПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.КурсВзаиморасчетовПлан";
  ЭлементыФормы.СуммаПлатежаПланПодотчет.Данные = "ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные.СуммаПлатежаПлан";
    
  ЭлементыФормы.РасшифровкаПлатежа1.ТекущаяСтрока = РасшифровкаПлатежа[0];
  СтрокаПлатеж = ЭлементыФормы.РасшифровкаПлатежа1.ТекущиеДанные;
 КонецЕсли;
0
UBUNTU
209 / 134 / 29
Регистрация: 04.02.2015
Сообщений: 730
11.02.2015, 18:46 15
Оленька, Скажите, а как давно вы программируете на 1С?
0
11.02.2015, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2015, 18:46

Закрыть доступность элементов ТЧ
Здравствуйте. Такой вопрос, подскажите пожалуйста, как сделать, чтобы допустим если я поставил...

Свойство доступность у меню
Утро добное... чет ни как не соображу - Есть форма, на ней командная панель... и там есть кнопка...

Доступность элементов командной панели документа
Всем привет! Возник вопрос по назначению прав пользователям.Есть типовой документ Требование...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru