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

Подтягивание данных из другого справочника

Автор Provodnik, 27 июл 2016, 15:37

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

Provodnik

Здравствуйте.
Не могу решить 2 проблемы
1-
Есть 2 справочника- слушатели и профессии
Для слушателей создана форма группы (см.вложение 02)
на которой есть после выбора профессии и стоимости
Справочник профессии содержит реквизиты - Наименование и стоимость
Как сделать так, чтобы при работе с формой при выборе профессии, автоматически в поле стоимость заносились соответствующие данные из справочника профессии?

2-
Как получить список элементов, который содержит группа? (см.вложение 01)



Provodnik

Пробовал сделать для первого так:

Процедура СтоимостьОбучения();
Объект.СтоимостьОбуч = Справочники.ПрофессииСпецильности.НайтиПоРеквизиту(Объект.СтоимостьОбучения);
КонецПроцедуры


&НаКлиенте
Процедура ПрофессияСпециальностьПриИзменении(Элемент)
СтоимостьОбучения();
КонецПроцедуры

Не прокатило
Цитата: Provodnik от 27 июл 2016, 15:37
Здравствуйте.
Не могу решить 2 проблемы
1-
Есть 2 справочника- слушатели и профессии
Для слушателей создана форма группы (см.вложение 02)
на которой есть после выбора профессии и стоимости
Справочник профессии содержит реквизиты - Наименование и стоимость
Как сделать так, чтобы при работе с формой при выборе профессии, автоматически в поле стоимость заносились соответствующие данные из справочника профессии?

2-
Как получить список элементов, который содержит группа? (см.вложение 01)

Fedor_Safonchik

&НаСервере
Процедура СтоимостьОбучения();
     НайденнаяЗаписьВСправочникеПрофессииСпецильности = Справочники.ПрофессииСпецильности.НайтиПоНаименованию(Объект.ПрофессияСпециальность);
           Объект.СтоимостьОбуч = НайденнаяЗаписьВСправочникеПрофессииСпецильности.РеквизитСоСТоимостьюОбученияВСправочнике[ПрофессииСпецильности];
КонецПроцедуры


&НаКлиенте
Процедура ПрофессияСпециальностьПриИзменении(Элемент)
    СтоимостьОбучения();
КонецПроцедуры

Попробуйте конечно так, должно работать, но это всё таки извращение какое-то,

Provodnik

Благодарю за ответ, но ошибка

{Справочник.Слушатели.Форма.ФормаГруппы.Форма(5)}: Получение элемента по индексу для значения не определено
     Объект.СтоимостьОбуч = НайденЗапВСправочникеПрофСпец.СтоимостьОбучения[Справочники.ПрофессииСпецильности];

Цитата: Fedor_Safonchik от 27 июл 2016, 16:31
&НаСервере
Процедура СтоимостьОбучения();
     НайденнаяЗаписьВСправочникеПрофессииСпецильности = Справочники.ПрофессииСпецильности.НайтиПоНаименованию(Объект.ПрофессияСпециальность);
           Объект.СтоимостьОбуч = НайденнаяЗаписьВСправочникеПрофессииСпецильности.РеквизитСоСТоимостьюОбученияВСправочнике[ПрофессииСпецильности];
КонецПроцедуры


&НаКлиенте
Процедура ПрофессияСпециальностьПриИзменении(Элемент)
    СтоимостьОбучения();
КонецПроцедуры

Попробуйте конечно так, должно работать, но это всё таки извращение какое-то,

Fedor_Safonchik

Объект.СтоимостьОбуч = НайденЗапВСправочникеПрофСпец.СтоимостьОбучения;

Вот так напишите и будет счастье)

Provodnik

:zebzdr: я определенно счастлив. Спасибо большое
А по второму вопросу ничего не подскажете?
Цитата: Fedor_Safonchik от 27 июл 2016, 17:06
Объект.СтоимостьОбуч = НайденЗапВСправочникеПрофСпец.СтоимостьОбучения;

Вот так напишите и будет счастье)

Fedor_Safonchik

Цитата: Provodnik от 27 июл 2016, 17:09А по второму вопросу ничего не подскажете?

А где Вам необходимо получить список элементов группы ?

Provodnik

При нажатии на кнопку должен открыться макет, который будет содержать список
Пока добился только этого (см. вложение 03).
Естественно, если выбрать человека то таблица будет заполняться полностью. На скриншоте была выбрана группа
Цитата: Fedor_Safonchik от 27 июл 2016, 17:11
Цитата: Provodnik от 27 июл 2016, 17:09А по второму вопросу ничего не подскажете?

А где Вам необходимо получить список элементов группы ?
Добавлено: 27 июл 2016, 17:27


Собственно макет
Цитата: Fedor_Safonchik от 27 июл 2016, 17:11
Цитата: Provodnik от 27 июл 2016, 17:09А по второму вопросу ничего не подскажете?

А где Вам необходимо получить список элементов группы ?

Fedor_Safonchik

Я так понимаю, печатная форма была создана конструктором печатных форм,

Можно увидеть код из модуля менеджера ?

Provodnik

Да, Вы абсолютно правы. Вот код.

Процедура СписокСлушателей(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(СписокСлушателей)     

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

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры

Цитата: Fedor_Safonchik от 27 июл 2016, 17:31
Я так понимаю, печатная форма была создана конструктором печатных форм,

Можно увидеть код из модуля менеджера ?

Теги:

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

Рейтинг@Mail.ru

Поиск