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

Как подставить в табл.часть значение реквизита выбранного элемента справочника?

Автор detka_cccp, 21 фев 2012, 11:00

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

Dethmontt

Собственно вы сами ответили на свой вопрос!!!
Значит реквизит "Посещения" в справочнике для этого не подходит - используйте регистр сведений...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sergejK74

Или оборотный регистр накопления.

Попробуй сократить
КодКлиента = Клиент.Код;
ОбьектКлиент = Справочники.Клиенты.НайтиПоКоду(КодКлиента).ПолучитьОбъект();
Кнопочка Спасибо - слева!

detka_cccp

Спасибо за помощь, с Посещениями разобрался.
Однако возникла необходимость разсчета зарплаты сотрудникам, иным способом, нежели я написал в конфигурации ((( . Теперь придется переделывать, и тут без вашей помощи чувствую не обойтись.
Итак, есть накладная, у нее есть ТЧ2. Задача - при открытии формы накладной, из справочника сотрудники, заполнить ТЧ2 всеми сотрудниками, реквизит1 которых равен "наработе".
Пишу такой код:

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

Естественно, первый блин комом! Ошибок не выдает, но и ТЧ2 не заполняется результатами.
Чувствую что намудил со строкой, я ж ее не добавил вроде как, да и не записал. Подскажите как тут быть?

detka_cccp

ТабИсполнители и я грубо обозначил ТЧ2 чтоб не было путаниц.

sergejK74

НоваяСтрока = ТабИсполнители.Добавить();
НоваяСтрока.Человек = Результат.Человек;


Кнопочка Спасибо - слева!

detka_cccp

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

Подскажите пожалста в чем у меня беда? (ПС - про прокладку между рулем и сиденьем просьба не упоминать))))

detka_cccp

Двойное равно там случайно встало, это я уже методом тыка пытаюсь )

sergejK74

Статус ИЗ  Справочник.Мойщики - тип действительно строка? Ручками статус в справочник записываешь или все таки выбираешь из спавочника или перечисления?
Кнопочка Спасибо - слева!

detka_cccp

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

sergejK74

Зачем тогда ты ссылку на элемент справочника Статус со строкой сравниваешь? В справочнике наверняка есть предопределенные значения? Или хотябы стандартные реквизиты Код и Наименование на худой конец. Это прозрачный намек.
Кнопочка Спасибо - слева!

Теги:

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

Рейтинг@Mail.ru

Поиск