Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Уважаемые форумчане. Проблема очень простая.... не подскажете как назначить ссылку для строки табличной части формы программно на клиенте. Когда тип реквизита строка, то текст без проблем вставляется. Ну на пример так:
пробовал через команду ПолучитьОбъект но он для сервера.
И дело в том, что текст той ссылки которую нужно вбить в строку ТЧ он списке точно будет присутствовать... в противном случае сделаю через попытку, что бы не было ошибки.
Нужно просто следующее: На пример, когда как обычно... открываешь форму с реквизитом тип которой ссылка. Нажимаешь на кнопку... и выходит список выбора. Потом нажимаешь на кнопку выбрать. И текст наименования выбранного вставляется в реквизит ссылки. Мне нужна, та же самая операция только программно, для реквизита ссылки табличной части.
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Petre @ Сегодня, 15:22
, Обалдею клянусь ... сделать до предела простую фишку, это оказывается ЦЕЛАЯ ПРОБЛЕМА! Блин...! Идти на сервер? интересно пешком идти, или на машине ... а может еще на самолете? Или может и того мало ... может нужно на спутнике? Блиин! Просто вклинить текст в эту ячейку табличной части .... больше ничего ...
Ладно! Извините за эмоции! Просто достало уже... на ерунде стопориться.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Gigi @ 22.05.17, 16:09)
И текст наименования выбранного вставляется в реквизит ссылки.
Не понятно, если у вас поле содержит ссылку как вы туда текст вставите, и зачем его вставлять? Честно, прочитал несколько раз, так и не понял что же надо сделать.
Цитата(Gigi @ 22.05.17, 17:24)
Не знаю, на сколько правильный путь, но не сработало.
И не сработает, потому что вы Предопределенное значение это что-то что уже предопределено в конфигурации, а не значение какого-то реквизита, в этой функции не может быть более двух точек, и после второй должно быть наименование предопределенного элемента а не реквизит.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 2908
Из: Київ, Україна
Спасибо сказали: 1159 раз
Рейтинг: 1244.5
Цитата(Gigi @ 22.05.17, 17:24)
сделать до предела простую фишку, это оказывается ЦЕЛАЯ ПРОБЛЕМА!
Почему же "проблема"? Это совсем пустяк, но без сервера никак (открою тайну: данные хранятся на сервере). Во-вторых, не совсем понятно, что вы хотите сделать. Вы говорите, что хотите получить ссылку на справочник, но непонятно, какую именно. Вам ведь не все равно, какой элемент должен быть, не так ли? Вот эти условия и вкладывайте в запрос. А что дальше? А дальше:
Если Выборка.Следующий() Тогда МояСсылка = Выборка.Ссылка; КонецЕсли;
Вот теперь делайте с вашей ссылкой что хотите.
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
//======================================================== Если Элементы.Таб_Точка.ТекущиеДанные = неопределено тогда Форма = ПолучитьФорму("Справочник.ТОЧКА_тест1.ФормаОбъекта"); Иначе Форма = ПолучитьФорму("Справочник.ТОЧКА_тест1.ФормаОбъекта", новый Структура("Ключ", Элементы.Таб_Точка.ТекущиеДанные.Точка)); КонецЕсли; Форма.Объект.ОбъектПринадИмя=ТекущийОбъектИмя; Форма.Открыть(); //Строка = Объект.Таб_Точка.ТекущиеДанные(); //Строка.ТочкаИмя = НайденнаяСсылка; //======================================================== КонецПроцедуры
Суть в том, что просто хочу что бы для пользователей ввод данных в ТЧ был в таком режиме ... как указанно в процедуре. Т.е. при нажатии добавить появлялась форма элемента справочника и созданный новый элемент вставлялся в новую строку табличной части. Текст новой записи в списк удалось сохранить. Осталось только это текст ВКЛИНИТЬ В ПОЛЕ ТАБЛИЧНОЙ ЧАСТИ. ЧТО ТУТ НЕ ПОНЯТНОГО? Я ЖЕ ВЫШЕ ГОВОРИЛ... приводил пример..
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Gigi @ 22.05.17, 18:11)
ЧТО ТУТ НЕ ПОНЯТНОГО?
Вообще нихрена не понятно, до сих пор. Из того что понятно можно предположить, что-то такое, но если это добавление новой строки - работать не будет, т.к. не понятна задача в целом.
&НаСервереБезКонтекста Функция ПолучитьЗначениеРеквизитаОбъекта(вхОбъект) Возврат вхОбъект.ОбъектПринадИмя; КонецФункции
&НаКлиенте Процедура ФормаОткрытиеОбработка(СсылкаРеузльтат, СтрокаТЧ) Экспорт Если ЗначениеЗаполнено(СсылкаРеузльтат) И СтрокаТЧ <> Неопределено Тогда // Либо СсылкаРеузльтат это и есть ссылка на выбранный справочник СтрокаТЧ.ИмяРеквизитаКоторомуНадоПрисвоить = ПолучитьЗначениеРеквизитаОбъекта(СсылкаРеузльтат); КонецЕсли; КонецПроцедуры
Если СтрокаТЧ = Неопределено Тогда ОткрытьФорму("Справочник.ТОЧКА_тест1.ФормаОбъекта",,ЭтаФорма,,,,Оповещение); Иначе ОткрытьФорму("Справочник.ТОЧКА_тест1.ФормаОбъекта",Новый Структура("Ключ", СтрокаТЧ.Точка),ЭтаФорма,,,,Оповещение); КонецЕсли; КонецПроцедуры
Цитата(Gigi @ 22.05.17, 18:11)
Мне просто нужно так же Вголопить просто ТЕКСТ в реквизит ссылки. ПРОСТО ВКЛИНИТЬ ТЕКСТ!
Не понимаю что это значит. Кто-то понимает?
Это что-то типа: я несу на тарелке помидор, но это должен быть огурец?
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Цитата(logist @ 22.05.17, 18:17)
Не понимаю что это значит. Кто-то понимает?
Это что-то типа: я несу на тарелке помидор, но это должен быть огурец?
Гуууууу..... О Господи .... я просто удивляюсь почему я опять не понят... ведь речь то не о сильно сложном. .. просто о какой то кодовой мелочи. И выше написанный код тоже че то не сработал ... может он не подходит, а может вполне подходит, просто может я не правильно адаптировал его для своего конкретного случая. Поэтому .... ладно! Объясню уже конкретно... и очень прошу от Вас помощи ... и даже не спрашивайте почему мне это нужно .. это долго объяснять. Так вот, допустим мы имеем табличную часть "Таб_Точка" в справочнике... это не важно, но допустим с именем "Абоненты". и допустим в ТЧ: "Таб_Точка" у нас есть реквизиты: "Реквизит1" и "Реквизит2". Тип первого строка, а второго ссылка. При чем, что уже важно, адрес ссылки второго:
СправочникСсылка.ТОЧКА_тест1
Это то, как указанно во вкладке "данные" в пункте "тип". И допустим в объекте: "Справочники.ТОЧКА_тест1" пользователем созданы элементы списка с наименованиями: "ВАСЯ", "Ваня","ПЕТЯ" Что нужно? Нужно элементу текущей строки табличной части:
СтрокаТЧ = Элементы.Таб_Точка.ТекущиеДанные;
реквизиту: "Реквизит2". ПРИСВОИТЬ КОНКРЕТНОЕ УКАЗАННОЕ В КОДЕ ЗНАЧЕНИЕ ССЫЛКИ!!!! ДА... ЗНАЧЕНИЕ ССЫЛКИ ... ВСЕГО ЛИШЬ ... и ничего сверх того! Допустим значение: "ПЕТЯ"
И СДЕЛАТЬ ЭТО ПРОГРАММНО! КОДОВЫМ СПОСОБОМ!!!
С реквизитом типа строка в данном случае: "Реквизит1" кодовым путем значение всавляеться командой:
таким маккаром естественно нельзя... и понятное дело, что тут элементу нужно присвоить значение ссылки из справочника в данном случае: "Справочники.ТОЧКА_тест1". И допустим нужное значение это "ПЕТЯ". И весь вопрос всего лишь в том, как это сделать?
В общем, буду очень признателен если кто даст пример решения. С текущими конкретными именами элементов и объектов.
Поэтому, если проблему с Вашей помощью смогу решить то, наверно открою бутылку шампанского и отпраздную.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Gigi @ 23.05.17, 0:27)
я просто удивляюсь почему я опять не понят
потому что вы пишите кучу бесполезного текста который сбивает с толку, вместо того что бы четко описать задачу и предоставить какие-то исходные метаданные.
Цитата(Gigi @ 23.05.17, 0:27)
ПРИСВОИТЬ КОНКРЕТНОЕ УКАЗАННОЕ В КОДЕ ЗНАЧЕНИЕ ССЫЛКИ!!!! ДА... ЗНАЧЕНИЕ ССЫЛКИ ... ВСЕГО ЛИШЬ ... и ничего сверх того!
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
logist @ Сегодня, 0:44
, Да не я развожу пустую дискуссию, она мне просто ужас как не нужна. Мне нужно одно единственное РЕШЕНИЕ ВОПРОСА и ничего кроме... А решение:
Под переменной "ЗначениеКотороеСодержитСсылку" имеется ввиду какая нибудь константа наименования созданного и существующего элемента списка? Если так то, я ТАК УЖЕ ПРОБОВАЛ. О чем в самом начале изложил. Допустим мне нужно вставить существующее наименование: "значние1" И допустим делаю так:
ТАК НЕ РАБОТАЕТ! Блиин! Ошибку не выдает. но ничего не вставляет. А если текущее поле ТЧ занято, то просто стирает содержимое. Блиин! То ли я че не так объяснил... то ли не пойму ... но по моему два плюс два везде четыре.
Ладно... щас уже не настаиваю, но если будет время .. пожалуйста ...
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Gigi @ 23.05.17, 1:30)
Под переменной "ЗначениеКотороеСодержитСсылку" имеется ввиду какая нибудь константа наименования созданного и существующего элемента списка?
Под переменной имеет ввиду ссылка на ваш справочник, как её получить в эту переменную я не могу догадаться до сих пор, потому что из рассказов не могу ничего понять. Выложите скрины метаданных, стрелочками укажите что куда должно попадать.
Личные бесплатные консультации не даю, для этого есть форум!
И не будет работать. Вы пытаетесь присвоить реквизиту с типом ссылка значение с типом строка.
Что я понял: Есть табличная часть "Таб_Точка" В ней есть два реквизита - "Реквизит1" с типом строка и "Реквизит2" с типом ссылка (и если я правильно понял то ссылка на справочник).
Вопросы???? 1. Какие действия делает пользователь? (Например, вбивает текст в "Реквизит1" или нажимает сочетание клавиш или что то другое. Что?) 2. Что должно произойти после этих действий? (Например, присваивается значение ссылки реквизиту "Реквизит2", создается элемент справочника и присваивается его ссылка реквизиту "Реквизит2". Что?)
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
Vidocq05 @ Сегодня, 9:56
,
Цитата(Vidocq05 @ 23.05.17, 9:56)
И не будет работать. Вы пытаетесь присвоить реквизиту с типом ссылка значение с типом строка.
Это опять не по теме, но еще раз спасибо Вам за реакцию. Которая ужас как нужна. Вообще это нормальный сайт. Пока не один мой вопрос не остался без реакции на этом сайте. На других форумах не так .... обижаются когда психую Так вот, что касается проблемы, над которой уже второй день ломаю голову... над этой ерундой.
Цитата(Vidocq05 @ 23.05.17, 9:56)
В ней есть два реквизита - "Реквизит1" с типом строка и "Реквизит2" с типом ссылка (и если я правильно понял то ссылка на справочник).
Совершенно верно! Правильно поняли!
Цитата(Vidocq05 @ 23.05.17, 9:56)
Вопросы???? 1. Какие действия делает пользователь? (Например, вбивает текст в "Реквизит1" или нажимает сочетание клавиш или что то другое. Что?) 2. Что должно произойти после этих действий? (Например, присваивается значение ссылки реквизиту "Реквизит2", создается элемент справочника и присваивается его ссылка реквизиту "Реквизит2". Что?)
1) В этом вопросе Вы может скажете... зачем нужно делать по своему, тогда как есть стандартные средства. Но дело в том, что пользователи не сильно ловкие юзеры. И поэтому пытаюсь сделать максимально легко. Как для детей )))) . Прежде всего, в "реквизит1" пользователь ничего не вводит.И там ручной ввод не доступен. Туда значение вставляется автоматический после того как "реквизит2" определен. Так вот, что делает пользователь в общих чертах? Он открывает форму элемента с табличной частью. Где в командной панели последней отсутствуют стандартные кнопки для ТЧ в управляемых формах. А только те, которые я сам определил. Или все те же кнопки, но способ создания новой строки ТЧ и ее заполнение не как обычно. Допустим для теста, рассмотрим кнопку "добавить" ... новую строку в ТЧ. Как только пользователь на нее нажал, должно быть не как обычно... когда появляется новая пустая строка ТЧ. И уже после чего пользователь в текущей только созданной новой строке, когда нажимает на выбор и так назначает ссылку на элемент справочника. И делает это, или выбрав из списка или до этого, через форму выбора создав новую и ее же выбрав. Т.е. должно быть не так, а по другому. Следующим образом: В командной панели ТЧ допустим пользователь нажал на кнопку "добавить". И что должно произойти? Первое - появиться новая строка ТЧ. Второе - тут-же должно появиться или ФормаВыбора или ФормаЭлемента (лучше ФормаВыбора где можно и выбрать и создать новый элемент). Так вот, в этой появившейся форме пользователь должен или выбрать значение уже существующего элемента справочника, или создать новый. И что бы он не сделал результат должен быть в чем? В том, что бы, после окончания редактирования строки ТЧ, выбранное им уже существующее значение ссылки "Реквизита2", или выбранное там же ... в форме выбора ...созданное новое значение элемента, должен вставляться в текущее поле "ревизита2". А "Ревизит1" как уже говорил данные вставляются автоматический после определения "Реквизита2". И с Ревизитом1 нет проблем. потому, что у него тип Строка. И установить авто-ввод в поле этого реквизите удается без проблем. О нем можно вообще забыть. Меня интересует только "Ревизит2". И для выше подробно описанной цели сделал сегодня решил так:
//=== главная процедура открытия и получения значений от формы &НаКлиенте Процедура ТЧ_СоздатьВыбратьВставить(Элемент) КлючПарамметры = Новый Структура("Ключ", , Элементы.Таб_Точка.АвтоВводНезаполненного); Форма = ПолучитьФорму("Справочник.ТОЧКА_тест1.ФормаВыбора", КлючПарамметры); Форма.Открыть(); //Форма.ОткрытьМодально(); // Как быть дальше.... КонецПроцедуры
Но как выбранное значение вбить не знаю. Ужас сколько написал .... Я не хотел все так подробно объяснять. Потому, что итак сколько уже просто дискуссии вокруг да около но нет решения. И коротко и лаконично задать вопрос и получить ответ... где такая мечта. Потому, что есть нюансы. Поэтому, если уже теперь проблему с Вашей помощью решу то, наверно уже точно накрою стол с бокалам вина и отпраздную )))).
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
logist @ Сегодня, 13:46
,
Цитата(logist @ 23.05.17, 13:46)
Только не используйте стандартную команду добавить строку в ТЧ, создайте отдельную команду обработчик которой будет КнопкаДобавитьСтроку
Спасибо ... я сделал так, но че-то дело не доходит до отладки ... уже в модуле платформа ругается. А именно на эту часть:
&НаКлиенте Процедура КнопкаДобавитьСтроку(Команда) Оповещение = Новый ОписаниеОповещения("КнопкаДобавитьСтрокуОбработка", ЭтаФорма); ОткрытьФорму("Справочник.ТОЧКА_тест1.ФормаВыбора",,ЭтаФорма,,,,Оповещение); КонецПроцедуры
И реагирует так:
Цитата
{Справочник.ОткрытьФорму.Форма.ФормаЭлемента.Форма(4,24)}: Тип не определен (ОписаниеОповещения) Оповещение = Новый <<?>>ОписаниеОповещения("КнопкаДобавитьСтрокуОбработка", ЭтаФорма); (Проверка: Тонкий клиент) {Справочник.ОткрытьФорму.Форма.ФормаЭлемента.Форма(5,67)}: Слишком много фактических параметров (ОткрытьФорму) ОткрытьФорму("Справочник.ТОЧКА_тест1.ФормаВыбора",,ЭтаФорма,,,<<?>>,Оповещение); (Проверка: Тонкий клиент)
Блин.... почему?... вот, что значит недостаток теории. Это я про себя. Но, с другой стороны, как уже достала эта платформа со своими капризами. Так не хочет ... сяк не устраивает.. какой тип еще ей нужен...? Вечно со своими капризами. Так что, не пойму почему платформа капризничает на кнопку: "КнопкаДобавитьСтроку(Команда)". Вроде нормальный вариант решения. Извините ... блин.. но пока все равно праздновать нечего Так что, опять буду признателен!
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Gigi @ 23.05.17, 15:19)
И реагирует так:
Извиняюсь, не заменил что тема про платформу 8.2, там действительно такого нет. Озвучьте версию вашей платформы, а так же включена ли поддержка модальных окон (вдруг платформа 8.3.х.х)
Сообщение отредактировал logist - 23.05.17, 15:08
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0
logist @ Сегодня, 16:08
,
Цитата(logist @ 23.05.17, 16:08)
Извиняюсь, не заменил что тема про платформу 8.2, там действительно такого нет. Озвучьте версию вашей платформы, а так же включена ли поддержка модальных окон (вдруг платформа 8.3.х.х)
Платформа 8.2. В ней и работаю. И думаю созданное в 8.2 будет работать в 8.3. Кроме по моему одной детали, с которой тоже сталкивался. Имею ввиду галочку "поддержка модальных окон". Обычно она по умолчанию в 8.3 отключена. Так что платформа 8.2 И поэтому опять прощу Вас о кодовой помощи. А то, весь день вожусь и никак... а стол уже накрыт и вино стоит, но к сожалению пока нечего праздновать Та же самая цель только кодовая помощь для 8.2 Буду признателен!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!