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

Привязка бригады к машине

Автор Kise, 13 июн 2021, 11:22

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

Kise

Здравствуйте, я начинающий 1с программист и я только учусь, но передо мной встала задача привязки бригады, состоящей из водителя, грузчика1 и грузчика2, к машине.
Я сформировал бригаду документом и записал данные в регистр сведений. Далее я привязал запросом автозаполнение грузчика1 про выборе машины. Данные я взял из регистра сведений
Код:
&НаСервереБезКонтекста
Функция ПолучитьБригадуПриМашине(Машина)
   //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   СформированныеБригады.Грузчик1 КАК Грузчик1,
      |   СформированныеБригады.Грузчик2 КАК Грузчик2,
      |   СформированныеБригады.Водитель КАК Водитель
      |ИЗ
      |   РегистрСведений.СформированныеБригады КАК СформированныеБригады
      |ГДЕ
      |   СформированныеБригады.Машина = &Ссылка";
   
   Запрос.УстановитьПараметр("Ссылка", Машина);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
      Если ВыборкаДетальныеЗаписи.Следующий() тогда
      Возврат ВыборкаДетальныеЗаписи.Грузчик1;         
   КонецЕсли;
   
   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА







КонецФункции

&НаКлиенте
Процедура МашинаПриИзменении(Элемент,Машина)
Объект.Грузчик1=ПолучитьБригадуПриМашине(Объект.Машина);   
КонецПроцедуры

Как видоизменить код, чтобы при выборе машины заполнялись и другие поля: Грузчик2 и Водитель. Пробовал по разному и искал в интернете, но все безуспешно. Подскажите как лучше сделать.

antoneus

Можно так. Сделать ПолучитьБригадуПриМашине не функцией, а процедурой с контекстом - почему нет.

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

КонецПроцедуры

&НаКлиенте
Процедура МашинаПриИзменении(Элемент)
    ПолучитьБригадуПриМашине();   
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск