Подскажите пожалуйста,нахожусь на форме справочника Контрагента, нужно в поле ввода1 добавить значение из справочника ХранилищеДополнительнойИнформации из реквизита ДомДоговор.
В ДомДоговор в справочнике ХранилищеДополнительнойИнформации установил тип Строка
В Справочнике Контрагента создал Реквизит Договор покупки
В поле ввода 1 данные: СправочникСсылка.ХранилищеДополнительнойИнформации
 мне надо чтобы при выборе из справочника, из полеВвода 1, выибирался именно то поле которое нажму,а то выбирает наименование этой строки. как сделать это?
---
Ошибка в том что файл не сохранен. Я вам не тоже не правильно написал не обратил внимание. Код сохранения нужно разкоментировать

```1c
    ПутьКФайлу2 = новаяпапка +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
    Word.SaveAs(ПутьКФайлу2,0);
    ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
```

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

```1c
    Процедура ПолеВводаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    ДоговорПокупки = ВыбранноеЗначение.ДомДоговор

    КонецПроцедуры
```
---
извините,вот как это сделать:
В событие пишите открытие справочника ХранилищеДополнительнойИнформации и обязательно передаете в него владельца при открытии. Владелец это ваш элемент формы поле ввода 1.
---
На форме документа Справочник.Контрагенты у вас размещен реквизит ДоговорПокупки, на форме добавлено поле ввода для него так??? все так??
---
всё верно
---
Если так то пишем далее.
1. Добавляем процедуру НачалоВыбора у реквизита ДоговорПокупки

```1c
    Процедура ДоговорПокупкиНачалоВыбора(Элемент, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь

    Форма = Справочники.ХранилищеДополнительнойИнформации .ПолучитьФормуВыбора(, Элемент);
    Форма.Открыть();

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

2. Добавляем процедуру ОбработкуВыбора у реквизита ДоговорПокупки

```1c
    Процедура ДоговорПокупкиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ХранилищеДополнительнойИнформации") Тогда
    ДоговорПокупки = ВыбранноеЗначение.ДомДоговор
    КонецЕсли

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

Вот если по простому то так можно написать все
---
Договор покупки реквезиту установить тип Строка?
---
Ну а сейчас он у вас какого типа. Вам же нужно перенести значение из справочника ХранилищеДополнительнойИнформации в справочник Контрагенты. Так вот в справочнике ХранилищеДополнительнойИнформации там есть реквизит который вы хотите перенести он называется ДомДоговор . Так вот какого он типа, такого же типа и должен на форме контрагентов размещен реквизит. Если строка - значит строка
---
поменял тип реквизита ДоговорПокупки с ссылки на справочник, на строка и всё прошло)
---
получилось, вы крутой, спасибо большое!)))
можно ещё 2 вопроса тут же?
1. Как установить сортировку при открытии формы,чтобы выводились только строки где реквизит(Наименование) из справочника Контрагенты = реквизит(Наименование) из справочника ХранилищеДополнительнойИнформации
2.создаю каталог даты каждым днём когда создаётся новый договор, но что-то с синтакиссом видимо нарушил или не правильно пишу,что файл не влетает в созданный каталог

```1c
    датаД = формат(ТекущаяДата(),"ДЛФ=Д");
    новаяпапка = "F:\Dogovora\" + датаД;

    КаталогНаДиске = Новый Файл(новаяпапка);
    Если НЕ КаталогНаДиске.Существует() Тогда
    СоздатьКаталог(новаяпапка);
    иначе
    Сообщить(");
    конецЕсли;

    ПутьКФайлу2 = "F:\Dogovora\IP\" + новаяпапка;

    Word.SaveAs(ПутьКФайлу2 + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
```

ругается на Word.SaveAs
пробовал писать так:

```1c
    Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
```

тоже не катит
---
Да не зачто, Касательно второго, обратите внимания на пути к каталогам каталог вы создаете новаяпапка = "F:\Dogovora\" + датаД; то есть, например будет F:\Dogovora\01012019. А путь к файлу у вас F:\Dogovora\IP\01012019, то есть еще под папка есть IP возможно в этом ошибка

а по первому вам нужно именно сортировку, или фильтр установить???
---
по первому - извините, фильтр надо
по второму - не внимателен я тут был,убрал,не помогло,пишет не верное имя
---
Если фильтр нужно сделать - тогда вы пишите запрос, соединяете справочник контрагенты и справочник хранилище доп. информации по наименованию. В результате вы получите список контрагентов у которых наименование совпадает с наименование справочника хранилище доп. информации. Далее устанавливает отбор по результату запрос

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ ......................");
    СписокЗначений = Новый СписокЗначений;
    СписокЗначений.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));

    Элемент = Отбор["Ссылка"]
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементОтбора.Значение = СписокЗначений;
```
---
по фильтру понял,сейчас делаю так
---
давай те пробуйте, если что пишите сюда
---
ок,уже пробую. а что по второму вопросы? написал я word.close(); всё равно та же ошибка
---
посмотрел доступ папки,права стоят все на папку,чтение и запись
---
```1c
    Запрос = Новый Запрос("ВЫБРАТЬ
    | Контрагенты.Наименование,
    | ХранилищеДополнительнойИнформации.Наименование КАК Наименование1
    |ИЗ
    | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    | ПО ХранилищеДополнительнойИнформации.Наименование = Контрагенты.Наименование");
    СписокЗначений = Новый СписокЗначений;
    СписокЗначений.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));

    Элемент = Отбор["Ссылка"];
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементОтбора.Значение = СписокЗначений;
```

написал,может конечно не правильно
такие ошибки
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3309,11)}: Переменная не определена (Отбор)
Элемент = <<?>>Отбор["Ссылка"]; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3310,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.Использование = Истина; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3311,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3312,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.Значение = СписокЗначений; (Проверка: Толстый клиент (обычное приложение))
---
Запрос = Новый Запрос("ВЫБРАТЬ
| Контрагенты.Наименование,

Тут нужно написать Контрагенты.Ссылка КАК Ссылка

Данный код нужно написать на форме списка контрагенты!!
---
сейчас при таком коде:

```1c
    датаД = формат(ТекущаяДата(),"ДЛФ=Д");
    новаяпапка = "F:\Dogovora\" + датаД;

    КаталогНаДиске = Новый Файл(новаяпапка);
    Если НЕ КаталогНаДиске.Существует() Тогда
    СоздатьКаталог(новаяпапка);
    иначе
    Сообщить(");
    конецЕсли;

    ПутьКФайлу2 = новаяпапка;
    Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
```

начало влетать в папку: но с такой ошибкой влетает,то есть выдаёт ошибку но при этом и файл создаёт там,из-за чего так?
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2624)}: Ошибка при вызове конструктора (ДвоичныеДанные)
 ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Ошибка доступа к файлу 'F:\Dogovora\12.03.2019'
---
Вот тут скорее всего ошибка в том что ком-объект еще открыт и вы к нему еще доступ хотите, вам его нужно закрыть Word.Close() а затем уже обращаться через ДвоичныеДанные
---
написал

```1c
    ПутьКФайлу2 = новаяпапка;
    Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
    Word.Close();
    дог = НомеДог + " от "+ датдог+" года";
    //Сообщить(дог);

    ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
    // далее создаете элемент справочника Файлы

    Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
    Файл.Объект = Ссылка;
    Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
    Файл.Наименование = Наименование;
    Файл.ИмяФайла= ПутьКФайлу2;
    Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
    файл.ДомДоговор = дог;

    Файл.Записать();
```

и всё равно,может не туда?
---
У вас должен должен быть полный путь к файлу, который сохранился, а он имеет вид ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc

Нужно написать

```1c
    ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
```
---
написал так:

```1c
    ПутьКФайлу2 = новаяпапка;
    //Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
    ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
    Word.SaveAs(ДвоичныеДанные,0);
```

ошибка :
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2621)}: Ошибка при вызове конструктора (ДвоичныеДанные)
 ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
по причине:
Файл не обнаружен 'F:\Dogovora\12.03.2019\1-000000491-2019 на Иванова от года.doc'

подскажите пожалуйста что не так пишу?
---
у вас код закоментирован "//Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0); ", следовательно файла нет.

Напишите так, посмотрите что получиться

```1c
    ПутьКФайлу2 = новаяпапка +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
    //Word.SaveAs(ПутьКФайлу2,0);
    ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
```
---
попробовал,получилась ошибка:
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2621)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Файл не обнаружен 'F:\Dogovora\12.03.2019\1-0000347-2019 на Иванова от года.doc'
---
Ошибка в том что файл не сохранен. Я вам не тоже не правильно написал не обратил внимание. Код сохранения нужно разкоментировать

```1c
    ПутьКФайлу2 = новаяпапка +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
    Word.SaveAs(ПутьКФайлу2,0);
    ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
```

Вот так точно будет работать
---
огонь!!! Круто!)))Спасибо большое. почитаю я как про эти двоичные данные))
---
осталось решить вопрос с фильтром.сейчас буду пробовать)
---
а вот так если без запроса,или так нельзя?
   СтандартнаяОбработка = ложь;

```1c
    Форма = Справочники.ХранилищеДополнительнойИнформации .ПолучитьФормуВыбора(, Элемент);
    форма.СправочникСписок.Отбор.Владелец.Использование = Истина;
    Форма.СправочникСписок.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
    Форма.СправочникСписок.Отбор.Владелец.Значение = Наименование;
    Форма.Открыть();
```
---
Да конечно можно, у вас в данном случае откроется форма ХранилищеДополнительнойИнформации у которого наименование равно вашему установленному наименованию!
---
вот так получилось добиться результата)

```1c
    СтандартнаяОбработка = ложь;

    Форма2 = Справочники.ХранилищеДополнительнойИнформации.ПолучитьФормуВыбора(,Элемент);
    Форма2.Отбор.Наименование.Значение = Наименование;
    Форма2.Отбор.Наименование.Использование = Истина;
    Форма2.Открыть();
```

спасибо Вам огромное за оказанную помощь во всём) Очень помогли мне!)
---
Ну и отлично что все у вас получилось! Да не зачто!
---
Спасибо всем, Тема закрыта.