нужно создать в ТЧ событие при изменении ячейки(выбор из справочника). должна измениться другая ячейка. как получить значение в измененой ячейке?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) aleks-lit, тогда что-то вроде:
&НаКлиенте
Процедура ФизЛицоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Таблица.ТекущиеДанные;
СтрокаТабличнойЧасти.Адрес = ПолучитьАдрес(СтрокаТабличнойЧасти.ФизЛицо); //ПолучитьАдрес - это метод выполняемый на сервере,
//код получения значения (Адреса) на ваше усмотрение
КонецПроцедуры
(6) Release, сделал так:
не выводится. уже пробовал вывести нули. тоже самое, т.е. в СтрокаТабличнойЧасти.АдресПлательщика =строка(адрес00);
адресОО - есть "00000000000000000000", а не заполняет в ячейку. И сам запрос не работает.
&НаКлиенте
Процедура Таблица1ФИОПлательщикаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Таблица1.ТекущиеДанные;
адрес00=ПолучитьАдрес(СтрокаТабличнойЧасти.ФИОПлательщика); //ПолучитьАдрес - это метод выполняемый на сервере,
СтрокаТабличнойЧасти.АдресПлательщика =строка(адрес00); //"00000000000000000000" видно, но в ячейку не выводится((((
КонецПроцедуры
&НаСервере
функция ПолучитьАдрес(значение)
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| Плательщики.Ссылка КАК Наименование,
| АдресПлательщика1.Представление КАК АдресПлательщика1,
| Плательщики.Водопотребление КАК Водопотребление,
| Плательщики.ПоСчетчику КАК ПоСчетчику,
| Плательщики.НомерСчетчикаКухня КАК Номерсчетчик1,
| Плательщики.НомерСчетчикаВанная КАК Номерсчетчик2,
| Плательщики.Отопление КАК Отопление,
| Плательщики.ОтапливаемаяПлощадь КАК ОтоплениеПлощадь,
| Плательщики.Счетчик1 КАК Счетчик1,
| Плательщики.Счетчик2 КАК Счетчик2,
| Плательщики.ЛицевойСчет КАК ЛицевойСчет,
| ВзаиморасчетыСПлатильщикамиОстатки.ДолгОстаток КАК ДолгОстаток,
| ПоказанияСчетчиковСрезПоследних.ПоказанияСчетчика1 КАК ПоказанияСчетчика12,
| ПоказанияСчетчиковСрезПоследних.ПоказанияСчетчика2 КАК ПоказанияСчетчика22,
| Плательщики.КоличествоЖильцов КАК КоличествоЖильцов
|ИЗ
| Справочник.Платильщики КАК Плательщики
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Платильщики.КонтактнаяИнформация КАК АдресПлательщика1
| ПО Плательщики.Ссылка = АдресПлательщика1.Ссылка
| И (АдресПлательщика1.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (АдресПлательщика1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресКвартирыПлатильщика))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСПлатильщиками.Остатки КАК ВзаиморасчетыСПлатильщикамиОстатки
| ПО Плательщики.ЛицевойСчет = ВзаиморасчетыСПлатильщикамиОстатки.КодПлатильщика
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПоказанияСчетчиков.СрезПоследних КАК ПоказанияСчетчиковСрезПоследних
| ПО Плательщики.ЛицевойСчет = ПоказанияСчетчиковСрезПоследних.КодПлательщика
|ГДЕ
| Плательщики.ПометкаУдаления = ЛОЖЬ
| И Плательщики.Наименование = &плательщик" ;
Запрос.УстановитьПараметр("плательщик",значение);
РезультатЗапроса=Запрос.Выполнить();
выборка=РезультатЗапроса.Выбрать() ;
адрес= "00000000000000000000";//Выборка.АдресПлательщика1;// поставил, потому что запрос не работает. этот
//запрос сделал из запроса заполняющего всю таблицу(прекрасно работает), путем добавления
// И Плательщики.Наименование = &плательщик"
//возможно, нужно получить ссылку вместо наименования?
Возврат адрес; //тут при остановке видно значение "00000000000000000000"
Конецфункции
Показатьне выводится. уже пробовал вывести нули. тоже самое, т.е. в СтрокаТабличнойЧасти.АдресПлательщика =строка(адрес00);
адресОО - есть "00000000000000000000", а не заполняет в ячейку. И сам запрос не работает.
(7) В запросе ты параметр в наименовании указал, а передаёшь ссылку. Конечно ничего не найдет;
Проверь СтрокаТабличнойЧасти.АдресПлательщика какой тип имеет;
Что бы получить всё, достаточно вернуть не только адрес, а всю полученную выборку и её уже обрабатывать в процедуре при изменении.
Только смотри, что бы в выборке была всего одна строка).
Проверь СтрокаТабличнойЧасти.АдресПлательщика какой тип имеет;
Что бы получить всё, достаточно вернуть не только адрес, а всю полученную выборку и её уже обрабатывать в процедуре при изменении.
Только смотри, что бы в выборке была всего одна строка).
Форма (Form)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:
ОбработкаВыбора(<ЗначениеВыбора>, <Источник>)
Параметры:
<ЗначениеВыбора>
Тип: Произвольный.
Результат выбора в подчиненной форме. В случае множественного выбора возвращается массив выбранных значений.
<Источник>
Тип: Произвольный.
Форма - источник события.
Описание:
Возникает при выборе объекта в одной из подчиненных форм или при вызове в одной из подчиненных форм метода
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:
ОбработкаВыбора(<ЗначениеВыбора>, <Источник>)
Параметры:
<ЗначениеВыбора>
Тип: Произвольный.
Результат выбора в подчиненной форме. В случае множественного выбора возвращается массив выбранных значений.
<Источник>
Тип: Произвольный.
Форма - источник события.
Описание:
Возникает при выборе объекта в одной из подчиненных форм или при вызове в одной из подчиненных форм метода
(8) aleks-lit,
1) почему Запрос косячный - трудно проверить - непонятно что за конфа (видимо самописная)
2) можно возвращать ТЗ (по сути все данные запроса ТЗ = РезультатЗапроса.Выгрузить) или структуру (может даже проще):
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("Адрес", ЗначениеАдреса/Выборка.Адрес);
СтруктураАдреса.Вставить("Счетчик", ЗначениеСчетчика/Выборка.Счетчик);
Возврат СтруктураАдреса;
и &НаКлиенте разбирать: Сообщить(СтруктураАдреса.Адрес + " " + СтруктураАдреса.Счетчик);
3) точно не помню, но какой-то косяк был с обращение непосредственно к данным ячейки, хотя должно работать
&НаКлиенте
Процедура Таблица1ФИОПлательщикаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Таблица1.ТекущиеДанные;
СтрокаТабличнойЧасти.АдресПлательщика = "0000"; // - у меня без проблем меняет
КонецПроцедуры
1) почему Запрос косячный - трудно проверить - непонятно что за конфа (видимо самописная)
2) можно возвращать ТЗ (по сути все данные запроса ТЗ = РезультатЗапроса.Выгрузить) или структуру (может даже проще):
СтруктураАдреса = Новый Структура;
СтруктураАдреса.Вставить("Адрес", ЗначениеАдреса/Выборка.Адрес);
СтруктураАдреса.Вставить("Счетчик", ЗначениеСчетчика/Выборка.Счетчик);
Возврат СтруктураАдреса;
и &НаКлиенте разбирать: Сообщить(СтруктураАдреса.Адрес + " " + СтруктураАдреса.Счетчик);
3) точно не помню, но какой-то косяк был с обращение непосредственно к данным ячейки, хотя должно работать
&НаКлиенте
Процедура Таблица1ФИОПлательщикаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Таблица1.ТекущиеДанные;
СтрокаТабличнойЧасти.АдресПлательщика = "0000"; // - у меня без проблем меняет
КонецПроцедуры
и всё таки, кто мне подскажет почему
СтрокаТабличнойЧасти.АдресПлательщика ="22222";//строка(адрес00);
не меняет значение в ячейке?
может какое другое событие?
СтрокаТабличнойЧасти.АдресПлательщика ="22222";//строка(адрес00);
не меняет значение в ячейке?
&НаКлиенте
Процедура Таблица1ФИОПлательщикаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Таблица1.ТекущиеДанные;
адрес00=ПолучитьАдрес(СтрокаТабличнойЧасти.ФИОПлательщика); //ПолучитьАдрес - это метод выполняемый на сервере,
СтрокаТабличнойЧасти.АдресПлательщика ="22222";//строка(адрес00); //
КонецПроцедуры
может какое другое событие?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот