Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 апр 2024, 09:51

Автозаполнение столбца при выборе параметра в другом столбце

Автор Вадим Ф, 21 июн 2018, 12:05

0 Пользователей и 1 гость просматривают эту тему.

Вадим Ф

Добрый день! Извините за может глупый вопрос, но так как я только начинающий специалист по 1с, прошу помочь с одним заданием.

Был создан справочник: Станции / В нем реквизит: КодСтанции
Был создан в документе ЗаказПокупателя реквизит табличной части: Станция назначения (Справочник:Станции) и КодСтанции.

Вопрос: как написать, чтобы при заполнении станции в столбце Станция назначения код станции автоматически подтягивался в столбец Код станции.
Уже второй день сижу, не могу никак додуматься, много вариантов перелопатил.

Спасибо больше всем кто откликнется.

pavl_vs

Вадим Ф, в самом общем случае это делается в процедуре обработки события СтанцияПриИзменении(Элемент).

Приложение с обычными формами или УФ?

Вадим Ф

Спасибо что откликнулись!

Приложение с обычными формами!
Я пишу процедуру, а вот что в ней должно быть никак не могу сообразить.

MANiac

Набросал для управляемых форм...
На оригинальность не претендую и за корректность работы не ручаюсь, т.к. правильная работа возможна только в случае уникальных названий станций.
Но как вариант.
&НаКлиенте
Процедура ТабличнаяЧасть1СтанцияНазначенияПриИзменении(Элемент)
ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.КодСтанции = ВыбратьКодСтанции(Строка(ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.СтанцияНазначения));
КонецПроцедуры

&НаСервере
Функция ВыбратьКодСтанции(Станция)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Станции.КодСтанции КАК КодСтанции
|ИЗ
| Справочник.Станции КАК Станции
|ГДЕ
| Станции.Наименование = &Станция";
Запрос.УстановитьПараметр("Станция", Станция);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВыборкаДетальныеЗаписи.Следующий();
Возврат ВыборкаДетальныеЗаписи.КодСтанции;
КонецФункции

wise

(2) покажите КАК "Станция назначения" заполняется...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Вадим Ф

Вот так заполняется, можно выбрать или создать при этом указав код станции

wise

(5) у поля назначения в процедуре ПриИзминении(как сказано в (1)) пишите:
КодСтанции = СтанцияНазначения.Код;

ВСЁ... ;-)
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Поиск родных

Цитата: Вадим Ф от 21 июн 2018, 12:05
Вопрос: как написать, чтобы при заполнении станции в столбце Станция назначения код станции автоматически подтягивался в столбец Код станции.
Уже второй день сижу, не могу никак додуматься, много вариантов перелопатил.
Это самые первые и простейшие, минимальные (пару-тройку линий) кода, которые предлагают написать при изучении 1С

Скачайте бесплатную книгу Радченко
http://devtrainingforum.v8.1c.ru/forum/
Добавлено: 22 июн 2018, 05:41


Да, и Вам надо поискать предыдущие редакции (электронной) книги практическое пособие разработчика для обычных форм (т.н. для 1С 8.2 или 8.1)

Вадим Ф

Пишу вот такой код, а оно мне выдает: Значение не является значением объектного типа

Процедура УслугиСтанцияНазначенияПриИзменении(Элемент)
    КодСтанции = СтанцияНазначения.КодСтанции.;
КонецПроцедуры

Спасибо за все советы и подсказки, просто задание срочное, нет времени читать литературу, форумы не могли.
Добавлено: 22 июн 2018, 13:18


Пишу вот такой код, а оно мне выдает: Значение не является значением объектного типа

Перед этим добавил Перем СтанцияНазначения, ато ругалось что не является переменной

Процедура УслугиСтанцияНазначенияПриИзменении(Элемент)
    КодСтанции = СтанцияНазначения.КодСтанции.;
КонецПроцедуры

Спасибо за все советы и подсказки, просто задание срочное, нет времени читать литературу, форумы не могли.

Добавлено: 23 июн 2018, 10:24


Спасибо большое всем кто подсказал, а особенно MANiac
Вставил код, только подтягивал уже не КодСтацнии, а просто Код, он всеравно уникальный.
Все получилось, спасибо большое!

Процедура УслугиСтанцияНазначенияПриИзменении(Элемент)
   
   ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.КодСтанции = ВыбратьКод(Строка(ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.СтанцияНазначения));
   
КонецПроцедуры


Функция ВыбратьКод(Станция)
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Станции.Код КАК Код
        |ИЗ
        |    Справочник.Станции КАК Станции
        |ГДЕ
        |    Станции.Наименование = &Станция";
    Запрос.УстановитьПараметр("Станция", Станция);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыборкаДетальныеЗаписи.Следующий();
    Возврат ВыборкаДетальныеЗаписи.Код;
КонецФункции


Тема закрыта!

Похожие темы (5)

Рейтинг@Mail.ru

Поиск