Подскажите пожалуйста,нахожусь на форме справочника Контрагента, нужно в поле ввода1 добавить значение из справочника ХранилищеДополнительнойИнформации из реквизита ДомДоговор.
В ДомДоговор в справочнике ХранилищеДополнительнойИнформации установил тип Строка
В Справочнике Контрагента создал Реквизит Договор покупки
В поле ввода 1 данные: СправочникСсылка.ХранилищеДополнительнойИнформации
мне надо чтобы при выборе из справочника, из полеВвода 1, выибирался именно то поле которое нажму,а то выбирает наименование этой строки. как сделать это?
В ДомДоговор в справочнике ХранилищеДополнительнойИнформации установил тип Строка
В Справочнике Контрагента создал Реквизит Договор покупки
В поле ввода 1 данные: СправочникСсылка.ХранилищеДополнительнойИнформации
мне надо чтобы при выборе из справочника, из полеВвода 1, выибирался именно то поле которое нажму,а то выбирает наименование этой строки. как сделать это?
По теме из базы знаний
Найденные решения
(30) Ошибка в том что файл не сохранен. Я вам не тоже не правильно написал не обратил внимание. Код сохранения нужно разкоментировать
Вот так точно будет работать
ПутьКФайлу2 = новаяпапка +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
Word.SaveAs(ПутьКФайлу2,0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
Вот так точно будет работать
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)извините что криво описал. Сейчас распишу.
У справочника ХранилищеДополнительнойИнформации, 4 реквизита: Объект,вид данных, имя файла,наименование ДомДоговор.
Нажимаем на полеввода1, окрывается справочник: ХранилищеДополнительнойИнформации.
Далее я выбираю нужную мне строку(клацая мышкой на любое поле этой строки),и у меня записывается в полеввода1 данные которые были в строке(поле: наименование) ,а мне нужны данные поля ДомДоговор чтобы записались в полеввода1,а не из наименования
У справочника ХранилищеДополнительнойИнформации, 4 реквизита: Объект,вид данных, имя файла,наименование ДомДоговор.
Нажимаем на полеввода1, окрывается справочник: ХранилищеДополнительнойИнформации.
Далее я выбираю нужную мне строку(клацая мышкой на любое поле этой строки),и у меня записывается в полеввода1 данные которые были в строке(поле: наименование) ,а мне нужны данные поля ДомДоговор чтобы записались в полеввода1,а не из наименования
Вам нужно событие НачалоВыбора у поле ввода 1. В событие пишите открытие справочника ХранилищеДополнительнойИнформации и обязательно передаете в него владельца при открытии. Владелец это ваш элемент формы поле ввода 1. Далее у элемента поле ввода 1 описываете событие ОбработкаВыбора, в эту процедуру приходит параметр с ссылкой на ХранилищеДополнительнойИнформации и в ней напишите:
Процедура ПолеВводаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДоговорПокупки = ВыбранноеЗначение.ДомДоговор
КонецПроцедуры
Если так то пишем далее.
1. Добавляем процедуру НачалоВыбора у реквизита ДоговорПокупки
2. Добавляем процедуру ОбработкуВыбора у реквизита ДоговорПокупки
Вот если по простому то так можно написать все
1. Добавляем процедуру НачалоВыбора у реквизита ДоговорПокупки
Процедура ДоговорПокупкиНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь
Форма = Справочники.ХранилищеДополнительнойИнформации .ПолучитьФормуВыбора(, Элемент);
Форма.Открыть();
КонецПроцедуры
2. Добавляем процедуру ОбработкуВыбора у реквизита ДоговорПокупки
Процедура ДоговорПокупкиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ХранилищеДополнительнойИнформации") Тогда
ДоговорПокупки = ВыбранноеЗначение.ДомДоговор
КонецЕсли
КонецПроцедуры
Вот если по простому то так можно написать все
(11) Ну а сейчас он у вас какого типа. Вам же нужно перенести значение из справочника ХранилищеДополнительнойИнформации в справочник Контрагенты. Так вот в справочнике ХранилищеДополнительнойИнформации там есть реквизит который вы хотите перенести он называется ДомДоговор . Так вот какого он типа, такого же типа и должен на форме контрагентов размещен реквизит. Если строка - значит строка
(9)получилось, вы крутой, спасибо большое!)))
можно ещё 2 вопроса тут же?
1. Как установить сортировку при открытии формы,чтобы выводились только строки где реквизит(Наименование) из справочника Контрагенты = реквизит(Наименование) из справочника ХранилищеДополнительнойИнформации
2.создаю каталог даты каждым днём когда создаётся новый договор, но что-то с синтакиссом видимо нарушил или не правильно пишу,что файл не влетает в созданный каталог
ругается на Word.SaveAs
пробовал писать так:
тоже не катит
можно ещё 2 вопроса тут же?
1. Как установить сортировку при открытии формы,чтобы выводились только строки где реквизит(Наименование) из справочника Контрагенты = реквизит(Наименование) из справочника ХранилищеДополнительнойИнформации
2.создаю каталог даты каждым днём когда создаётся новый договор, но что-то с синтакиссом видимо нарушил или не правильно пишу,что файл не влетает в созданный каталог
датаД = формат(ТекущаяДата(),"ДЛФ=Д");
новаяпапка = "F:\Dogovora\" + датаД;
КаталогНаДиске = Новый Файл(новаяпапка);
Если НЕ КаталогНаДиске.Существует() Тогда
СоздатьКаталог(новаяпапка);
иначе
Сообщить("");
конецЕсли;
ПутьКФайлу2 = "F:\Dogovora\IP\" + новаяпапка;
Word.SaveAs(ПутьКФайлу2 + НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
Показатьругается на Word.SaveAs
пробовал писать так:
Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
тоже не катит
(13) Да не зачто, Касательно второго, обратите внимания на пути к каталогам каталог вы создаете новаяпапка = "F:\Dogovora\" + датаД; то есть, например будет F:\Dogovora\01012019. А путь к файлу у вас F:\Dogovora\IP\01012019, то есть еще под папка есть IP возможно в этом ошибка
а по первому вам нужно именно сортировку, или фильтр установить???
а по первому вам нужно именно сортировку, или фильтр установить???
(16) Если фильтр нужно сделать - тогда вы пишите запрос, соединяете справочник контрагенты и справочник хранилище доп. информации по наименованию. В результате вы получите список контрагентов у которых наименование совпадает с наименование справочника хранилище доп. информации. Далее устанавливает отбор по результату запрос
Запрос = Новый Запрос("ВЫБРАТЬ ......................");
СписокЗначений = Новый СписокЗначений;
СписокЗначений.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
Элемент = Отбор["Ссылка"]
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлементОтбора.Значение = СписокЗначений;
Показать
(22)
написал,может конечно не правильно
такие ошибки
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3309,11)}: Переменная не определена (Отбор)
Элемент = <<?>>Отбор["Ссылка"]; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3310,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.Использование = Истина; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3311,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3312,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.Значение = СписокЗначений; (Проверка: Толстый клиент (обычное приложение))
Запрос = Новый Запрос("ВЫБРАТЬ
| Контрагенты.Наименование,
| ХранилищеДополнительнойИнформации.Наименование КАК Наименование1
|ИЗ
| Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО ХранилищеДополнительнойИнформации.Наименование = Контрагенты.Наименование");
СписокЗначений = Новый СписокЗначений;
СписокЗначений.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
Элемент = Отбор["Ссылка"];
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлементОтбора.Значение = СписокЗначений;
Показатьнаписал,может конечно не правильно
такие ошибки
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3309,11)}: Переменная не определена (Отбор)
Элемент = <<?>>Отбор["Ссылка"]; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3310,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.Использование = Истина; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3311,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; (Проверка: Толстый клиент (обычное приложение))
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(3312,1)}: Переменная не определена (ЭлементОтбора)
<<?>>ЭлементОтбора.Значение = СписокЗначений; (Проверка: Толстый клиент (обычное приложение))
(15)сейчас при таком коде:
начало влетать в папку: но с такой ошибкой влетает,то есть выдаёт ошибку но при этом и файл создаёт там,из-за чего так?
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2624)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Ошибка доступа к файлу 'F:\Dogovora\12.03.2019'
датаД = формат(ТекущаяДата(),"ДЛФ=Д");
новаяпапка = "F:\Dogovora\" + датаД;
КаталогНаДиске = Новый Файл(новаяпапка);
Если НЕ КаталогНаДиске.Существует() Тогда
СоздатьКаталог(новаяпапка);
иначе
Сообщить("");
конецЕсли;
ПутьКФайлу2 = новаяпапка;
Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
Показатьначало влетать в папку: но с такой ошибкой влетает,то есть выдаёт ошибку но при этом и файл создаёт там,из-за чего так?
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2624)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Ошибка доступа к файлу 'F:\Dogovora\12.03.2019'
(18) написал
и всё равно,может не туда?
ПутьКФайлу2 = новаяпапка;
Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
Word.Close();
дог = НомеДог + " от "+ датдог+" года";
//Сообщить(дог);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
// далее создаете элемент справочника Файлы
Файл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Файл.Объект = Ссылка;
Файл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
Файл.Наименование = Наименование;
Файл.ИмяФайла= ПутьКФайлу2;
Файл.Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные);
файл.ДомДоговор = дог;
Файл.Записать();
Показатьи всё равно,может не туда?
(19) У вас должен должен быть полный путь к файлу, который сохранился, а он имеет вид ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc
Нужно написать
Нужно написать
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
(26) написал так:
ошибка :
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2621)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
по причине:
Файл не обнаружен 'F:\Dogovora\12.03.2019\1-000000491-2019 на Иванова от года.doc'
подскажите пожалуйста что не так пишу?
ПутьКФайлу2 = новаяпапка;
//Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
Word.SaveAs(ДвоичныеДанные,0);
ошибка :
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2621)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc");
по причине:
Файл не обнаружен 'F:\Dogovora\12.03.2019\1-000000491-2019 на Иванова от года.doc'
подскажите пожалуйста что не так пишу?
(28) у вас код закоментирован "//Word.SaveAs(ПутьКФайлу2 +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc",0); ", следовательно файла нет.
Напишите так, посмотрите что получиться
Напишите так, посмотрите что получиться
ПутьКФайлу2 = новаяпапка +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
//Word.SaveAs(ПутьКФайлу2,0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
(29) попробовал,получилась ошибка:
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2621)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Файл не обнаружен 'F:\Dogovora\12.03.2019\1-0000347-2019 на Иванова от года.doc'
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(2621)}: Ошибка при вызове конструктора (ДвоичныеДанные)
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
по причине:
Файл не обнаружен 'F:\Dogovora\12.03.2019\1-0000347-2019 на Иванова от года.doc'
(30) Ошибка в том что файл не сохранен. Я вам не тоже не правильно написал не обратил внимание. Код сохранения нужно разкоментировать
Вот так точно будет работать
ПутьКФайлу2 = новаяпапка +"\"+ НомеДог + " на " + НаименованиеПолное +" от "+ датдог + " года.doc";
Word.SaveAs(ПутьКФайлу2,0);
ДвоичныеДанные= Новый ДвоичныеДанные(ПутьКФайлу2);
Вот так точно будет работать
(31)а вот так если без запроса,или так нельзя?
СтандартнаяОбработка = ложь;
СтандартнаяОбработка = ложь;
Форма = Справочники.ХранилищеДополнительнойИнформации .ПолучитьФормуВыбора(, Элемент);
форма.СправочникСписок.Отбор.Владелец.Использование = Истина;
Форма.СправочникСписок.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
Форма.СправочникСписок.Отбор.Владелец.Значение = Наименование;
Форма.Открыть();
(35) вот так получилось добиться результата)
спасибо Вам огромное за оказанную помощь во всём) Очень помогли мне!)
СтандартнаяОбработка = ложь;
Форма2 = Справочники.ХранилищеДополнительнойИнформации.ПолучитьФормуВыбора(,Элемент);
Форма2.Отбор.Наименование.Значение = Наименование;
Форма2.Отбор.Наименование.Использование = Истина;
Форма2.Открыть();
спасибо Вам огромное за оказанную помощь во всём) Очень помогли мне!)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот