1С БП Корп. Внешняя обработка выводит значения по столбцу в эксель. Возможно ли получить в ней значение поля Инициатор1 (см.картинку), созданного в Документе РеализацияТоваровУслуг в ФормаПодписиТовары?
Реквизит подтягивается из СправочникСсылка.ФизическиеЛица
Пишу на форме вот так:

```1c
    НовСтр.Инициатор1 = Реализация.Инициатор1;
```

При запуске обработки пишет, что поле не обнаружено.
---
Так то оно так, ежели чего.
Но всёж таки тем не менее, однако,
Не что иное как вообще.
Дескать мол конечно, и не надо да ладно,
А то случить что и вот, на тебе пожалуйста!
Необходимо было использовать аналогичный код:
в ФормаДокументаТовары > ПередЗаписьюПосле с
```1c
    Объект.
```

в ФормаПодписиТовары > ПриИзмененииВместо с
```1c
    ЭтаФорма.
```
---
А в форму Инициатор1 откуда тянется?
---
Потому что нужно убедиться что это реквизит ! Зайди в конфигуратор, клик на объект, реквизиты
Если в списке нет Инициатор1 ... означает что это Дополнительные реквизиты и доступ к ним так просто не получишь )
---
Вот это?
---
В конфигураторе найти Документы - РеализацияТоваров - Реквизиты
Посмотреть есть ли там Инициатор1
Если нет посмотреть есть ли табличная часть ДополнительныеРеквизиты
Если есть посмотреть какие реквизиты у этой табличной части
Обращаться далее в своей обработке к этой ТабЧасти типа:

```1c
    Док = Реализация.ПолучитьОбъект();
    тчДопРеквизиты = Док.ДополнительныеРквизиты;
    Для каждого Стр из тчДопРеквизиты Цикл
    Наименование = Стр.Наименование; // "Инициатор1"
    Значение = Стр.Значение;
    КонецЦикла;
```
---
Большое спасибо за подробный ответ.
В моём случае, в вкладке Данные Документа РеализацияТоваровУслуг нет Инициатор1 в Реквизитах и в Табличной части нет ДополнительныеРеквизиты. Значит ли это, что Инициатора невозможно внести без использования расширения?
---
Скорее всего, обращение идет к реквизиту формы, а не объекта.
---
Я сделал по аналогии обращения к полю Руководитель, там прокатывает
При:

```1c
    НовСтр.Инициатор1 = Объект.Реализация.Инициатор1
```

Так тоже Поле объекта не обнаружено (Реализация)
---
Реквизит подтягивается из СправочникСсылка.ФизическиеЛица
ФИО вносит пользователь из выпадающего списка.
---
В документе "РеализацияТоваровУслуг" есть форма "ФормаДокументаОбщая", в этой форме есть процедура "ДекорацияПодписиНажатие", в этой процедуре заполняется структура "ПараметрыФормы"
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр);
....

Вот там должно быть что-то типа такого
ПараметрыФормы.Вставить("Инициатор1", ..........);

Что там написано?
---
Там было пусто,
я прописал в ФормаДокументаОбщая
&НаКлиенте
Процедура ДекорацияПодписиНажатие(Элемент)

```1c
    ПараметрыФормы.Вставить("Инициатор1", Объект.Инициатор1);
    ...
```

но пока безрезультатно.
---
При:

```1c
    НовСтр.Инициатор1 = Реализация.Объект.Инициатор1;
```

Поле объекта не обнаружено (Объект)
---
Не нужно гадать, нужно знать. Нет у объекта такого реквизита. Он существует, только когда есть форма.
В модуле формы документа ищите, как заполняется Инициатор, и переносите в свою обработку.
---
Вы просто на форму подписантов добавили реквизит и хотите из него какие-то данные считывать? Так не получится. Вам надо добавить реквизит документа "Инициатор1" и тогда эти данные будут храниться в базе данных и вы сможете к ним обращаться хоть через точку, хоть запросами. реквизит формы существует только пока инициализирована форма, как только форма закроется, то что Вы ввели в поле "Инициатор 1" исчезнет.
---
Спасибо
Возможно добавить данный реквизит в базу данных?
Достаточно того, что я прописал в ФормаДокументаОбщая как Объект.Инициатор1?
Так же обращаюсь во внешней обработке:

```1c
    НовСтр.Инициатор1 = Объект.Инициатор1;
```

При этом при открытии через внешнюю обработку пишет, что Поле объекта не обнаружено (Инициатор1)
---
Опишу все действия, которые я сделал при попытке внести новый реквизит на форму в 1С БП Корп.:

1. В конфигураторе, в доработке в Документе РеализацияТоваровУслуг в ФормаПодписиТовары создал реквизит Инициатор1 с типом данных: СправочникСсылка.ФизическиеЛица (данный справочник также добавлен в расширение, т.к. из него подтягиваются данные)
2. В конфигураторе, в доработке на форме ФормаПодписиТовары создал объект Инициатор1, перенес его на форму (при этом не поле формы Реквизит почему-то не отображалась надпись Объект)
3. В конфигураторе, в доработке в Документы - РеализацияТоваровУслуг - добавил Инициатор1 в Реквизиты (а также в ТЧ Товары)
(- Запустил промежуточную отладку - не активна кнопка ОК в вплывающем окне Подписи.)
4. В конфигураторе, в доработке на форме ПКМ Инициатор1 через Свойства создал:

```1c
    &НаКлиенте
    Процедура ДК1_Инициатор1НачалоВыбораПосле(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
    //вписал код Vitaly1C8
    Док = РеализацияТоваровУслуг.ПолучитьОбъект();
    тчДопРеквизиты = Док.ДополнительныеРеквизиты;
    Для каждого Стр из тчДопРеквизиты Цикл
    Наименование = Стр.Наименование; // "Инициатор1"
    Значение = Стр.Значение;
    КонецЦикла;
    КонецПроцедуры
```

На что при сохранении пишет:
{ДоработкаКорп Документ.РеализацияТоваровУслуг.Форма.ФормаПодписиТовары.Форма(14,9)}: Переменная не определена (РеализацияТоваровУслуг)

Я думаю, это связано с тем, что реквизит не прописался как Объект. Опытные наставники, подскажите пожалуйста, как это можно подправить?
---
Что за "РеализацияТоваровУслуг"? Скорее всего, тут нужно писать "Объект". Также "ПолучитьОбъект()" не требуется в данной ситуации, да и на клиенте он недоступен. Еще реквизит "Инициатор1" находится в табличной части "Товары", значит и обходить нужно эту табличную часть:

```1c
    Для Каждого СтрокаТовар Из Объект.Товары Цикл
    Инициатор1 = СтрокаТовар.Инициатор1;
    //...
    КонецЦикла;
```

Не забывать, что из "Инициатор1" реквизиты достать на клиенте не получится.
---
Спасибо за подсказку.
На Объект тоже ругается.
Да и тут вроде всё проще, не надо никакого цикла, ведь ФИО вносятся вручную из СправочникСсылка.ФизическиеЛица. Получается и никакого кода в модуле формы не надо, правильно?
Почему же тогда при внесении в пользовательском режиме данные не сохраняются и не активна кнопка ОК в вплывающем окне Подписи?
---
Раз это реквизит табличной части "Товары", то почему он должен редактироваться в окне "Подписи"?
---
Цель такая - через расширение в документе РеализацияТоваровУслуг внести дополнительный реквизит Инициатор1 в поле Подписи, который заносится из выпадающего списка вручную.

Возможно, весь этот код на модуле формы и не нужен, просто я понимаю что данные должны выбираться из СправочникСсылка.ФизическиеЛица, а вот где они сохранятся, у меня вопрос. Отсюда и возникла ТабличнаяЧасть.

Проблема в том, что я добавил в расширении реквизит прям в дереве конфигурации и на форме. Поэтому у меня на поле формы Реквизит Объект не присутствует. Возможность создания реквизита в самом документе на закладке Данные в расширении недоступна. Вкладка Данные доступна только в Конфигурации, а я делаю на расширении. Как быть? У меня мало понимания, как это работает.
---
Да, вы создали реквизит прямо в объекте, а не на форме, но он на форме недоступен не из-за этого. Чтобы на расширяемую форму добавить реквизит объекта, необходимо добавить сам объект в расширение (т.е объект формы. Нужно добавить форму в расширение, открыть ее, найти на закладке "Реквизиты" строку "Объект" (может по другому называться, это реквизит с галкой "Основной реквизит", он выделяется жирным). Да, такое действие надо проделать, даже если вы хотите вынести на форму реквизит, добавленный в расширении.
---
Большое спасибо за мурзилку.
Вот где оказывается собака зарыта!
Итак, (1) я перенёс в расширение СправочникФизическиеЛица и Документ РеализацияТоваровУслуг, (2) в нём насоздавал реквизитов, в т.ч. и в табличной части Услуги, табличной части Товары.
(3) Далее, в расширении в поле реквизитов ФормыПодписиТовары документа РеализацияТоваровУслуг нажимаю (Alt+Shift+F2) Добавить в расширение.
Но чуда не происходит, поле реквизит из расширения не подхватывается.
(Аналогично я пробовал подхватить реквизиты из справочника, а не из документа - тоже не видит)
---
Ну я как бы сделал всё по инструкции:

1 добавил новый реквизит в расширение:
- Добавил в расширение документ РеализацияТоваровУслуг и справочник ФизическиеЛица
- в Документе РеализацияТоваровУслуг в ФормаПодписиТовары создал реквизит Инициатор1 с типом данных: СправочникСсылка.ФизическиеЛица
2 добавил объект в расширение:
- в дереве конфигурации доработки создавал реквизиты (в т.ч. и в табличной части Услуги, табличной части Товары)
- через Alt+Shift+F2 Добавить в расширение добавил (строка Инициатор 1 стала чёрной).
3 вывел новый реквизит на форму:
- перетащил мышкой объект на форму, запустил отладку

но в режиме пользователя (см. картинку) поле Инициатор 1 заполняется, но не сохраняется.
Я не понимаю, где ошибка.
Возможно, необходимо создать отдельный справочник для поля Инициатор, но тогда он будет просто дублировать справочник ФизическиеЛица. Зачем множить сущности без необходимости.
Возможно, нужно как-то вызвать запись после или перед основным выполнением команды, либо как-то в событии это сделать.
---
Покажите скриншот этой формы в конфигураторе. Реквизит "Инициатор1" добавили в объект в расширении?
---
Реквизит "Инициатор1" добавили в объект в расширении?
В дереве конфигурации в расширении РеализацияТоваровУслуг создавал реквизиты, на всякий случай создал те же реквизиты и в табличной части Услуги и табличной части Товары.
Последовательность переноса отметил цифрами на картинке.
---
Похоже, без кода на форме мне не обойтись.
Пробовал копировать с формы "ФормаПодписиТовары" метод "ПриСозданииНаСервере" и метод "ПриЗакрытии", заполнив реквизиты формы из параметров

В модуле формы переименовал в процедуру ПриСозданииНаСервере1, иначе пишет:
Процедура или функция с указанным именем уже определена (ПриСозданииНаСервере)

В функции прописал только дополнительные реквизиты, чтобы не дублировалось и два раза не выводилось:

Код формы
```1c
    Процедура ПриСозданииНаСервере1(Отказ, СтандартнаяОбработка)

    // Заполним реквизиты формы из параметров.
    ЗаполнитьЗначенияСвойств(ЭтаФорма, Параметры,
    "Инициатор11
    |");

    ПолноеНаименованиеКонтрагента = ";

    Если ЗначениеЗаполнено(Контрагент) Тогда
    РеквизитыКонтрагента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
    Контрагент, "Наименование, НаименованиеПолное");

    Если ЗначениеЗаполнено(РеквизитыКонтрагента.НаименованиеПолное) Тогда
    ПолноеНаименованиеКонтрагента = РеквизитыКонтрагента.НаименованиеПолное;
    Иначе
    НаименованиеКонтрагента = РеквизитыКонтрагента.Наименование;
    КонецЕсли;
    КонецЕсли;

    ОбщегоНазначенияБПКлиентСервер.УстановитьПараметрОрганизацияФункциональныхОпцийФормы(ЭтотОбъект, Организация);

    // ИнтернетПоддержкаПользователей.Новости.КонтекстныеНовости_ПриСозданииНаСервере
    ИдентификаторыСобытийПриОткрытии = "ПриОткрытии";
    ОбработкаНовостейПереопределяемый.КонтекстныеНовости_ПриСозданииНаСервере(
    ЭтаФорма,
    "БП.Документ.РеализацияТоваровУслуг",
    "ФормаРеквизитыОрганизацииКонтрагентаУслуги",
    НСтр("ru='Новости: Реализация (акт, накладная, УПД)'"),
    ИдентификаторыСобытийПриОткрытии
    );
    // Конец ИнтернетПоддержкаПользователей.Новости.КонтекстныеНовости_ПриСозданииНаСервере

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

    Процедура ПриЗакрытии1(ЗавершениеРаботы)

    Если ПеренестиВДокумент И Модифицированность Тогда
    СтруктураРезультат = Новый Структура("
    | Инициатор11
    |");

    ЗаполнитьЗначенияСвойств(СтруктураРезультат, ЭтаФорма);

    ОповеститьОВыборе(СтруктураРезультат);
    КонецЕсли;

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

При отладке стрелочка встаёт в общем модуле ВерсионированиеОбъектов в функции ДанныеДляХранения(Знач Объект) на:

```1c
    МенеджерОбъекта.ПриОпределенииНастроекВерсионированияОбъектов(Настройки);
```

Возможно, я всё не то делаю и нужно через Событие, но какое выбрать? Через НачалоВыбора у меня не пошло.
---
Итак, начну с начала:
Необходимо через расширение в документе РеализацияТоваровУслуг внести дополнительный реквизит Инициатор1 в поле Подписи, который заносится из выпадающего списка вручную.
Что я сделал:
1 добавил новый реквизит в расширение:
- скопировал в расширение документ РеализацияТоваровУслуг и справочник ФизическиеЛица
- в дереве конфигурации доработки в Документе РеализацияТоваровУслуг создал реквизит Инициатор1 с типом данных: СправочникСсылка.ФизическиеЛица (в т.ч. и в табличной части Услуги, табличной части Товары)
2 добавил объект в расширение:
- в ФормаПодписиТовары через Alt+Shift+F2 Добавить в расширение добавил (строка Инициатор 1 стала чёрной).
3 вывел новый реквизит на форму:
- перетащил мышкой объект на форму
4 в расширении в модуле ФормаПодписиТовары разместил код:

```1c
    Процедура дор_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Заполним реквизиты формы из параметров.
    ЗаполнитьЗначенияСвойств(ЭтаФорма, Параметры,
    "Инициатор11
    |");
    ПолноеНаименованиеКонтрагента = ";
    КонецПроцедуры

    Процедура дор_ПриЗакрытии(ЗавершениеРаботы)
    Если ПеренестиВДокумент И Модифицированность Тогда
    СтруктураРезультат = Новый Структура("
    | Инициатор11
    |");
    ЗаполнитьЗначенияСвойств(СтруктураРезультат, ЭтаФорма);
    //ОповеститьОВыборе(СтруктураРезультат); //закомментировал, т.к. не нашёл в ФормаДокументаТовары
    КонецЕсли;
    КонецПроцедуры
```

При отладке выходит ошибка:
Метод объекта не обнаружен (ПриОпределенииНастроекВерсионированияОбъектов)
{ОбщийМодуль.ВерсионированиеОбъектов.Модуль(3022)}: МенеджерОбъекта.ПриОпределенииНастроекВерсионированияОбъектов(Настройки);
---
Это конечно не правильно, но я закомментировал строку 3022 и ошибка пропала. Но проблему это не решило.
1С:Предприятие 8.3 (8.3.23.1865) Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.148.41)
Цель - сохранить значение из выпадающего списка. В режиме пользователя поле Инициатор 1 заполняется, но не сохраняется.

Проблема с кодом модуля формы. Пользуясь инструкцией с www.koderline.ru/expert/programming/article-varianty-programmnogo-dobavleniya-elementov-na-formu пробовал такой вариант:

```1c
    Процедура доп_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    НовыйЭлемент = Элементы.Добавить("Инициатор11", Тип("ПолеФормы"));
    НовыйЭлемент.ПутьКДанным = "Инициатор11";
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ТолькоПросмотр = Истина;
    НовыйЭлемент.Видимость = Истина;
    НовыйЭлемент.Доступность = Истина;

    Элементы. Инициатор11.УстановитьДействие("ПриИзменении", "Инициатор11")
    КонецПроцедуры
```

Но тоже не сработало.
---
Пробовал добавить реквизит на Объект - всё легко добавляется без кода.
Но мой реквизит не на объекте, это реквизит формы, поэтому и пытаюсь добавить его программно.
В предыдущем коде выходит ошибка при вызове метода контекста Добавить (и на Вставить тоже), да и
```1c
    НовыйЭлемент.ПутьКДанным = Инициатор11
```
 должен быть как-то заполнен и сохранен.
Главное, я нигде не могу найти решение, будто бы никто и никогда этого не делал.
---
Ошибка в коде была связана с тем, что необходимо было также программно добавить реквизит (формы), примерно вот так:

```1c
    ДобавляемыеРеквизиты = Новый Массив;
    ТипРеквизита = Новый ОписаниеТипов("Строка"); //Ссылка?
    НовыйРеквизит = Новый РеквизитФормы(
    "Инициатор11", //Имя реквизита формы
    ТипРеквизита, //Тип
    ", //Путь (Пусто, "Объект.Инициатор11", ИмяТЧ)
    "Инициатор11"); //Заголовок
    ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
    ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); //Заставляем форму создать новые реквизиты
```

Примерно, потому что код проходит, но не срабатывает.
---
Подскажите, пожалуйста, возможно ли размещение реквизита не на объект, а на форму? Рисунок в посте (29)
Создаю реквизит на форме в дереве конфигурации, но он не отображается (как это происходит с Объектом) на форме во вкладке Реквизиты.
---
Так то оно так, ежели чего.
Но всёж таки тем не менее, однако,
Не что иное как вообще.
Дескать мол конечно, и не надо да ладно,
А то случить что и вот, на тебе пожалуйста!
Необходимо было использовать аналогичный код:
в ФормаДокументаТовары > ПередЗаписьюПосле с
```1c
    Объект.
```

в ФормаПодписиТовары > ПриИзмененииВместо с
```1c
    ЭтаФорма.
```