Имя: Пароль:
1C
1С v8
Как обратиться програмно к элементу формы документа 8,3
0 lite777
 
15.02.19
09:28
БП 3,0 Документ ОтражениеЗП в бух Учете , В форме дока в табличной части ОтражениеНДФЛ ,есть колонка РегистрВНалоговоОргане, а реквизита в доке нет, как програмно заполнить эту колонку ? из Внешней обработки
1 ДенисЧ
 
15.02.19
09:30
Если в объекте этого реквизита нет, то заполнять только в форме...
2 Василий Алибабаевич
 
15.02.19
09:32
(1) Если у внешней обработки есть контекст формы - то можно и во внешней.
3 lite777
 
15.02.19
09:36
типа ЭлемнтыФормы.ОтражениеНДФЛ.РегистрНалОрг  ?
4 Василий Алибабаевич
 
15.02.19
09:38
(3) Не через элементы. Добавленная колонка будет колонкой реквизита.
5 lite777
 
15.02.19
09:40
можещь по подробнее ?
6 Василий Алибабаевич
 
15.02.19
09:48
7 Василий Алибабаевич
 
15.02.19
09:50
(6) Как видно из картинки - обращаться к доп. колонке можно как к обычному реквизиту.
8 Василий Алибабаевич
 
15.02.19
09:53
+ (7) Есть несколько ограничений при работе с такими данными.
1. Начальное заполнение таких колонок нужно проводить в ПриСозданииНаСервере или в ПриОткрытии.
2. Если нужно хранить такие данные - механизм сохранения нужно разрабатывать отдельно.
9 spiller26
 
15.02.19
09:54
(1) Действительно, он для отображения только.
"РегистрацияВНалоговомОргане" она только на форме.

При изменении его заполняются другие реквизиты табличной части

&НаКлиенте
Процедура НачисленныйНДФЛРегистрацияВНалоговомОрганеПриИзменении(Элемент)
    
    ТекущиеДанные = Элементы.НачисленныйНДФЛ.ТекущиеДанные;
    Если Не ЗначениеЗаполнено(ТекущиеДанные.РегистрацияВНалоговомОргане) Тогда
        ТекущиеДанные.КодПоОКАТО = Неопределено;
        ТекущиеДанные.КодПоОКТМО = Неопределено;
        ТекущиеДанные.КПП = Неопределено;
        ТекущиеДанные.КодНалоговогоОргана = Неопределено;
        Возврат;
    КонецЕсли;
    
    ЗаполнитьЗначенияСвойств(ТекущиеДанные, СведенияОРегистрацииВНалоговомОргане(ТекущиеДанные.РегистрацияВНалоговомОргане), "КодПоОКАТО,КодПоОКТМО,КПП,КодНалоговогоОргана");
    
КонецПроцедуры
10 Василий Алибабаевич
 
15.02.19
09:58
(9) Вот так :
ТекущиеДанные = Элементы.НачисленныйНДФЛ.ТекущиеДанные;
...
ТекущиеДанные.РегистрацияВНалоговомОргане

должно быть видно, что доп.колонка находится в коллекции всех реквизитов. Ничем от них не отличаясь. Конечно она в коллекции реквизитов формы есть, а в коллекции реквизитов объекта ее нет. Поэтому - смотри (2).
11 lite777
 
15.02.19
10:02
спасаибо попробую, намудрят 1с , не проще в рекивзите хранить , все равно код налоговой хранят,
12 lite777
 
15.02.19
10:04
Я создаю новую строку типа

нов2=Расх.НачисленныйНДФЛ.Добавить() ;
13 Василий Алибабаевич
 
15.02.19
10:06
(12) Типа за программную обработку подобных весЧей см : https://its.1c.ru/db/metod8dev#content:2821:hdoc
14 lite777
 
15.02.19
10:11
Текущие Данные это текущая строка в открытой форме , а у меня объект есть записанный , тип с именем Расх.
15 Василий Алибабаевич
 
15.02.19
10:15
(14) У объекта такого реквизита нет. Если работа не в контексте формы то до него не достучишься. Получай его также как в форме. Данные объекта для его получения у тебя есть.
16 lite777
 
15.02.19
10:17
Расх.Записать(РежимЗаписиДокумента.Запись) ;
          Форм=Расх.ПолучитьФорму("ФормаДокумента") ;
          Для каждого стр из Форм.ЭлементыФормы.НачисленныйНДФЛ Цикл
              стр.РегистрацияВналоговомОргане=
          
          
          КонецЦикла
17 lite777
 
15.02.19
10:18
типа такого ?
18 lite777
 
15.02.19
10:18
Чо за контекст формы ?
19 Василий Алибабаевич
 
15.02.19
10:28
(17) Нет. Так не сработает. Должно быть типа как в форме. После Расх.Записать(РежимЗаписиДокумента.Запись);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ * ИЗ    Документ.Расх.НачисленныйНДФЛ КАК Расх ГДЕ Расх.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Расх.Ссылка);
ТЧ = Запрос.Выполнить.Выгрузить();
ТЧ.Колонки.Добаить("РегистрацияВналоговомОргане");
Для Каждого текСтрока ИЗ ТЧ Цикл
  ЗаполнитьЗначенияСвойств(текСтрока, СведенияОРегистрацииВНалоговомОргане(текСтрока.РегистрацияВНалоговомОргане), "КодПоОКАТО,КодПоОКТМО,КПП,КодНалоговогоОргана");
КонецЦикла;

Как то так.
20 lite777
 
15.02.19
10:31
Спасибо!