Выбор данных в ПолеВвода1

1. user817897 2 12.03.19 11:27 Сейчас в теме
Подскажите пожалуйста,нахожусь на форме справочника Контрагента, нужно в поле ввода1 добавить значение из справочника ХранилищеДополнительнойИнформации из реквизита ДомДоговор.
В ДомДоговор в справочнике ХранилищеДополнительнойИнформации установил тип Строка
В Справочнике Контрагента создал Реквизит Договор покупки
В поле ввода 1 данные: СправочникСсылка.ХранилищеДополнительнойИнформации
мне надо чтобы при выборе из справочника, из полеВвода 1, выибирался именно то поле которое нажму,а то выбирает наименование этой строки. как сделать это?
По теме из базы знаний
Найденные решения
31. SedovSU@mail.ru 297 12.03.19 14:41 Сейчас в теме
(30) Ошибка в том что файл не сохранен. Я вам не тоже не правильно написал не обратил внимание. Код сохранения нужно разкоментировать

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

Вот так точно будет работать
user817897; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. alex-l19041 8 12.03.19 12:11 Сейчас в теме
(1)
надо чтобы при выборе из справочника, из полеВвода 1, выибирался именно то поле которое нажму,а то выбирает наименование этой строки.
- опишите подробнее
5. user817897 2 12.03.19 12:20 Сейчас в теме
(4)извините что криво описал. Сейчас распишу.
У справочника ХранилищеДополнительнойИнформации, 4 реквизита: Объект,вид данных, имя файла,наименование ДомДоговор.
Нажимаем на полеввода1, окрывается справочник: ХранилищеДополнительнойИнформации.
Далее я выбираю нужную мне строку(клацая мышкой на любое поле этой строки),и у меня записывается в полеввода1 данные которые были в строке(поле: наименование) ,а мне нужны данные поля ДомДоговор чтобы записались в полеввода1,а не из наименования
2. SedovSU@mail.ru 297 12.03.19 11:34 Сейчас в теме
То есть вам нужно из справочника ХранилищеДополнительнойИнформации взять реквизит ДомДоговор и прикрепить его в справочник контрагенты в реквизит ДоговорПокупки??
user817897; +1 Ответить
3. user817897 2 12.03.19 12:07 Сейчас в теме
(2)прикрепить его в поле ввода1,а поле ввода 1 уже подвязано с ДоговорПокупки
6. SedovSU@mail.ru 297 12.03.19 12:24 Сейчас в теме
Вам нужно событие НачалоВыбора у поле ввода 1. В событие пишите открытие справочника ХранилищеДополнительнойИнформации и обязательно передаете в него владельца при открытии. Владелец это ваш элемент формы поле ввода 1. Далее у элемента поле ввода 1 описываете событие ОбработкаВыбора, в эту процедуру приходит параметр с ссылкой на ХранилищеДополнительнойИнформации и в ней напишите:

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

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

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

КонецПроцедуры
7. user817897 2 12.03.19 12:31 Сейчас в теме
(6) извините,вот как это сделать:
В событие пишите открытие справочника ХранилищеДополнительнойИнформации и обязательно передаете в него владельца при открытии. Владелец это ваш элемент формы поле ввода 1.
8. SedovSU@mail.ru 297 12.03.19 12:32 Сейчас в теме
(7) На форме документа Справочник.Контрагенты у вас размещен реквизит ДоговорПокупки, на форме добавлено поле ввода для него так??? все так??
10. user817897 2 12.03.19 12:38 Сейчас в теме
9. SedovSU@mail.ru 297 12.03.19 12:37 Сейчас в теме
Если так то пишем далее.
1. Добавляем процедуру НачалоВыбора у реквизита ДоговорПокупки

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

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

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

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


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

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

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

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


Вот если по простому то так можно написать все
11. user817897 2 12.03.19 12:42 Сейчас в теме
(9) Договор покупки реквезиту установить тип Строка?
12. SedovSU@mail.ru 297 12.03.19 12:44 Сейчас в теме
(11) Ну а сейчас он у вас какого типа. Вам же нужно перенести значение из справочника ХранилищеДополнительнойИнформации в справочник Контрагенты. Так вот в справочнике ХранилищеДополнительнойИнформации там есть реквизит который вы хотите перенести он называется ДомДоговор . Так вот какого он типа, такого же типа и должен на форме контрагентов размещен реквизит. Если строка - значит строка
14. user817897 2 12.03.19 12:51 Сейчас в теме
(12) поменял тип реквизита ДоговорПокупки с ссылки на справочник, на строка и всё прошло)
13. user817897 2 12.03.19 12:49 Сейчас в теме
(9)получилось, вы крутой, спасибо большое!)))
можно ещё 2 вопроса тут же?
1. Как установить сортировку при открытии формы,чтобы выводились только строки где реквизит(Наименование) из справочника Контрагенты = реквизит(Наименование) из справочника ХранилищеДополнительнойИнформации
2.создаю каталог даты каждым днём когда создаётся новый договор, но что-то с синтакиссом видимо нарушил или не правильно пишу,что файл не влетает в созданный каталог

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

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

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

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

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

тоже не катит
15. SedovSU@mail.ru 297 12.03.19 12:55 Сейчас в теме
(13) Да не зачто, Касательно второго, обратите внимания на пути к каталогам каталог вы создаете новаяпапка = "F:\Dogovora\" + датаД; то есть, например будет F:\Dogovora\01012019. А путь к файлу у вас F:\Dogovora\IP\01012019, то есть еще под папка есть IP возможно в этом ошибка

а по первому вам нужно именно сортировку, или фильтр установить???
16. user817897 2 12.03.19 13:02 Сейчас в теме
(15) по первому - извините, фильтр надо
по второму - не внимателен я тут был,убрал,не помогло,пишет не верное имя
20. SedovSU@mail.ru 297 12.03.19 13:15 Сейчас в теме
(16) Если фильтр нужно сделать - тогда вы пишите запрос, соединяете справочник контрагенты и справочник хранилище доп. информации по наименованию. В результате вы получите список контрагентов у которых наименование совпадает с наименование справочника хранилище доп. информации. Далее устанавливает отбор по результату запрос


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


Элемент = Отбор["Ссылка"]
ЭлементОтбора.Использование	= Истина;
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлементОтбора.Значение = СписокЗначений;
Показать
21. user817897 2 12.03.19 13:16 Сейчас в теме
(20)по фильтру понял,сейчас делаю так
22. SedovSU@mail.ru 297 12.03.19 13:20 Сейчас в теме
(21) давай те пробуйте, если что пишите сюда
23. user817897 2 12.03.19 13:21 Сейчас в теме
(22)ок,уже пробую. а что по второму вопросы? написал я word.close(); всё равно та же ошибка
24. user817897 2 12.03.19 13:25 Сейчас в теме
(22)посмотрел доступ папки,права стоят все на папку,чтение и запись
25. user817897 2 12.03.19 13:28 Сейчас в теме
(22)
Запрос = Новый Запрос("ВЫБРАТЬ
		|	Контрагенты.Наименование,
		|	ХранилищеДополнительнойИнформации.Наименование КАК Наименование1
		|ИЗ
		|	Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		|		ПО ХранилищеДополнительнойИнформации.Наименование = Контрагенты.Наименование"); 
СписокЗначений = Новый СписокЗначений; 
СписокЗначений.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка")); 


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

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


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

Данный код нужно написать на форме списка контрагенты!!
17. user817897 2 12.03.19 13:09 Сейчас в теме
(15)сейчас при таком коде:
датаД = формат(ТекущаяДата(),"ДЛФ=Д");	
	новаяпапка =   "F:\Dogovora\" + датаД;

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

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


начало влетать в папку: но с такой ошибкой влетает,то есть выдаёт ошибку но при этом и файл создаёт там,из-за чего так?
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2624)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Ошибка доступа к файлу 'F:\Dogovora\12.03.2019'
18. SedovSU@mail.ru 297 12.03.19 13:12 Сейчас в теме
(17) Вот тут скорее всего ошибка в том что ком-объект еще открыт и вы к нему еще доступ хотите, вам его нужно закрыть Word.Close() а затем уже обращаться через ДвоичныеДанные
19. user817897 2 12.03.19 13:14 Сейчас в теме
(18) написал
ПутьКФайлу2 = новаяпапка;  
	Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
	Word.Close();
дог = НомеДог + " от "+ датдог+" года";	
//Сообщить(дог);	
	
	ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2); 
	// далее создаете элемент справочника Файлы
	
	Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); 
	Файл.Объект = Ссылка; 
	Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл; 
	Файл.Наименование = Наименование; 
	Файл.ИмяФайла= ПутьКФайлу2; 
	Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
	файл.ДомДоговор = дог;
		
	Файл.Записать();
Показать


и всё равно,может не туда?
26. SedovSU@mail.ru 297 12.03.19 13:30 Сейчас в теме
(19) У вас должен должен быть полный путь к файлу, который сохранился, а он имеет вид ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc

Нужно написать
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc"); 
28. user817897 2 12.03.19 14:16 Сейчас в теме
(26) написал так:
ПутьКФайлу2 = новаяпапка;  
	//Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
	ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
	Word.SaveAs(ДвоичныеДанные,0);

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

подскажите пожалуйста что не так пишу?
29. SedovSU@mail.ru 297 12.03.19 14:21 Сейчас в теме
(28) у вас код закоментирован "//Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0); ", следовательно файла нет.

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

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

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

Вот так точно будет работать
user817897; +1 Ответить
32. user817897 2 12.03.19 14:48 Сейчас в теме
(31)огонь!!! Круто!)))Спасибо большое. почитаю я как про эти двоичные данные))
33. user817897 2 12.03.19 14:49 Сейчас в теме
(31) осталось решить вопрос с фильтром.сейчас буду пробовать)
34. user817897 2 12.03.19 14:54 Сейчас в теме
(31)а вот так если без запроса,или так нельзя?
СтандартнаяОбработка = ложь;

Форма = Справочники.ХранилищеДополнительнойИнформации .ПолучитьФормуВыбора(, Элемент);
форма.СправочникСписок.Отбор.Владелец.Использование = Истина; 
Форма.СправочникСписок.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
Форма.СправочникСписок.Отбор.Владелец.Значение = Наименование;
Форма.Открыть();
35. SedovSU@mail.ru 297 12.03.19 14:55 Сейчас в теме
(34) Да конечно можно, у вас в данном случае откроется форма ХранилищеДополнительнойИнформации у которого наименование равно вашему установленному наименованию!
36. user817897 2 12.03.19 15:07 Сейчас в теме
(35) вот так получилось добиться результата)

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

спасибо Вам огромное за оказанную помощь во всём) Очень помогли мне!)
37. SedovSU@mail.ru 297 12.03.19 15:09 Сейчас в теме
(36) Ну и отлично что все у вас получилось! Да не зачто!
38. user817897 2 10.11.20 13:32 Сейчас в теме
Спасибо всем, Тема закрыта.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот