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

Результат в форму

Автор xdoker, 04 окт 2017, 06:14

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

xdoker

Есть внешняя обработка, в ней три поля: "Организация", "Подразделение, "Сотрудник". Суть в том, что после выбора организации и подразделения в поле ввода сотрудник должен быть выбор сотрудников указанного подразделения. Запрос сделал, результат есть, но как вывести результат запроса в поле "Сотрудник"?

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

Выводит полный список сотрудников....(

Oldman06


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

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

&НаКлиенте
Процедура СотрудникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ДанныеВыбора = ПолучитьДанныеВыбораСотрудников();
   
КонецПроцедуры


И непонятно по регистру "КадроваяИсторияСотрудниковСрезПоследних". Наверное есть какой-то признак, что Сотрудник на данный момент является сотрудником данного Подразделения? В условии чего-то не хватает.

xdoker

Вполне возможно Вы правы. Проверю.
Добавлено: 05 окт 2017, 05:57


Ошибка: Недостаточно фактических параметров

Oldman06

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

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

xdoker

Благодарю. Сейчас гляну.
Добавлено: 05 окт 2017, 21:41


Не работает... Посмотрите обработку пожалуйста.

Oldman06

Вы хотя бы, какие книжки по 1С-программированию почитайте, конфигурации типовые покопайте ... Код - *опа. Я немного в модуле формы по-шаманил. Проверьте. Мне негде. У меня кадровый учет в бухгалтерии никто не ведет.

xdoker

опять недостаточно фактических параметров.
Спасибо за рекомендацию: книги я скачал(хрусталева), но времени не хватает почитать. А код-*опа - это да, я и не сомневался (опыта не хватает).

AIFrame

Суть в двух словах:
1. Результат запроса в СписокЗначений
2. Используем метод .ПоказатьВыборЭлемента + оповещение
3. Обрабатываем оповещение.
См обработку, пометил // ЗДЕСЬ то, что нужно было сделать.

xdoker

Цитата: AIFrame от 06 окт 2017, 19:58
Суть в двух словах:
1. Результат запроса в СписокЗначений
2. Используем метод .ПоказатьВыборЭлемента + оповещение
3. Обрабатываем оповещение.
См обработку, пометил // ЗДЕСЬ то, что нужно было сделать.

Благодарю за помощь. Теперь выводит какой-то список, но не сотрудников выбранного подразделения. В общем надо делать посмотреть...

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск