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

Вывод результат запроса из регистра сведений в табличной части документа

Автор Александр Ярмола, 28 окт 2016, 11:53

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

Александр Ярмола

Нада чтобы при выборе водителя вставляло автоматически автомобиль
Что я не так делаю....

&НаКлиенте
Процедура ВодійПриИзменении(Элемент)
      // Вставить содержимое обработчика.
      СТЧ = Элементы["ТЧасть"].ТекущиеДанные;
       Водій = СТЧ.Водій;
      Авто = СТЧ.Авто;
      ВибратьАвто(Водій,Авто);
КонецПроцедуры
&НаСервере
Процедура ВибратьАвто(Водій,Авто);
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ЗакріпленняВодіїв.Техніка,
      |   ЗакріпленняВодіїв.НомернийЗнак
      |ИЗ
      |   РегистрСведений.ЗакріпленняВодіїв КАК ЗакріпленняВодіїв
      |ГДЕ
      |   ЗакріпленняВодіїв.Водій = &Водій";
      Запрос.УстановитьПараметр("Водій", Водій);
   Автомоб = Запрос.Выполнить().Выгрузить();
   Если Автомоб.Количество()=1 Тогда
      Авто=Автомоб[0].Техніка;   
   Иначе      
      Автомоблі=Автомоб.ВыбратьСтроку("Виберіть техніку");       
   Если Автомоблі <> Неопределено Тогда
      Авто=Автомоблі.Техніка;
   Иначе
      Авто="";
   КонецЕсли;
   КонецЕсли;
   КонецПроцедуры


cska-fanat-kz

1) я бы сделал процедуру ВибратьАвто() - функцией
2) точки останова отключили за неуплату?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Александр Ярмола

Первое попробовал, ничего не изменилось, а второе не понял... Спасибо за ответ..:(

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Александр Ярмола

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

&НаКлиенте
Процедура ВодійПриИзменении(Элемент)
      // Вставить содержимое обработчика.
      СТЧ = Элементы["ТЧасть"].ТекущиеДанные;
       Водій = СТЧ.Водій;
      Авто = СТЧ.Авто;
      ВибратьАвто(Водій,Авто);
КонецПроцедуры

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

:dfbsdfbsdf:
Добавлено: 01 ноя 2016, 11:28


эсли это не табчасть то у меня все выходит...
Добавлено: 01 ноя 2016, 11:31


Вот пример того как работает в шапке...
&НаКлиенте
Процедура ВодійПриИзменении(Элемент)
      // Вставить содержимое обработчика.
      ВибратьАвто();
      
     Объект.НомерАвто = ОбщийМодульДокументамиСервер.ПолучитьНомернийЗнак(Объект.МаркаАвто);

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

   Запрос.УстановитьПараметр("Водій", Водій);
   Автомоб = Запрос.Выполнить().Выгрузить();
   Если Автомоб.Количество()=1 Тогда
      Объект.МаркаАвто=Автомоб[0].Техніка;   
   Иначе      
      Автомоблі=Автомоб.ВыбратьСтроку("Виберіть техніку");       
   Если Автомоблі <> Неопределено Тогда
      Объект.МаркаАвто=Автомоблі.Техніка;
   Иначе
      Объект.МаркаАвто="";
   КонецЕсли;
   КонецЕсли;
   КонецПроцедуры


cska-fanat-kz

Цитата: Александр Ярмола от 01 ноя 2016, 11:21СТЧ = Элементы["ТЧасть"].ТекущиеДанные;
       Водій = СТЧ.Водій;
      Авто = СТЧ.Авто;
      ВибратьАвто(Водій,Авто);

вот здесь подумайте, как переделать

Цитата: Александр Ярмола от 01 ноя 2016, 11:21Иначе      
      Автомоблі=Автомоб.ВыбратьСтроку("Виберіть техніку");       
   Если Автомоблі <> Неопределено Тогда
      Авто=Автомоблі.Техніка;
   Иначе
      Авто="";

"ВыбратьСтроку()" - это работа с пользователем (должен выбрать строку), на стороне сервера не делается.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Александр Ярмола

У меня же в шапке такая же процедура, и все работает... :xfbnsdfb:
Добавлено: 01 ноя 2016, 13:20


ИЗ Объектами получается...:xfbnsdfb:

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

alex0402


Цитата: Александр Ярмола от 01 ноя 2016, 13:18У меня же в шапке такая же процедура, и все работает...

на файловой базе может и будет работать. на клиент-сервер - точно нет.
Спасибо за Сказать спасибо


Теги:

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

Рейтинг@Mail.ru

Поиск