Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Получить значения табличной части справочника ...  (Прочитано 30409 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ApB
Гость
« : 25-03-2010 06:04 » 

Бодрого времени суток!

Подскажите пожалуйста, как  решить:

В документе (Акт) есть 2 поля (НомерПроизводственногоЗаказа и Изделие) заполняемые из одного справочника (ПроизводственныеЗаказы).В кажом производственном заказе Несколько изделий, подбираемых из справочника "Изделия". В табличной части 3 поля, но требуется в "Акт" подтягивать только одгно поле - ОбознИзд. В выпадающем списке "НомерПроизводственногоЗаказа" отображаются все заказы, но в поле "Изделие" должны отображаться только Изделия, принадлежащие (входящие в производственный заказ) выбранный в поле "НомерПроизводственногоЗаказа".

Помогите кодом ... или хотябы методом, через что реализовывать!!!!!
уж не первый день разобраться не получается ибо как от реквизита к реквизиту - в нижках описано. а как в реквизит притянуть значение из табличной части - не осилил Жаль
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 25-03-2010 06:19 » 

Публикуй свой код и скриншот - подскажу. А то не могу понять что у тебя не получается...
Записан
ApB
Гость
« Ответ #2 : 25-03-2010 07:15 » 

Почему я просил подсказать метод. через который следует решаить это дело, потому как опыту - пару книжек ... и всё, а как дело дошло до боевой эксплуатации - ...(

Первый вариант:
 
Код:
&НаСервереБезКонтекста
Функция ПолучитьРеквизитВыбранногоЗначения(ВыбранноеЗначение)

Возврат ВыбранноеЗначение.Изделия;

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

&НаКлиенте
Процедура ИзделиеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

Изделия = ПолучитьРеквизитВыбранногоЗначения(ВыбранноеЗначение);

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

И получил сообщение следуюющего содержания:

{Документ.Акт.Форма.ФормаАкта.Форма(43)}: Ошибка при вызове метода контекста (ПолучитьРеквизитВыбранногоЗначения)
      Изделия = ПолучитьРеквизитВыбранногоЗначения(ВыбранноеЗначение);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'СправочникТабличнаяЧасть.ПроизводственныеЗаказы.Изделия'


По этой ошибке ничего найти не смог, хотя пти все верные

За тем попытался через запрос:

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

&НаКлиенте
Процедура ИзделиеПриИзменении(Элемент)
ОбознИзд = ОпределитьНаименованиеИзделия(ОбознИзд)
КонецПроцедуры

И получил ошибку

{Документ.Акт.Форма.ФормаАкта.Форма(57)}: Ошибка при вызове метода контекста (Выполнить): {(6, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
Выборка=Запрос.Выполнить().Выбрать();
по причине:
{(6, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ


Ещё пытался через динамический Список - и там не смог получить доступа до табличной части справочника.

В аттачах - form.png - форма документа АКТ. form_pr_zak.png - форма справочника "ПроизводственныеЗаказы" - основа для получения значений Полей "Номер производственного заказа" заполняется из справочника производственных заказов реквизит "Наименование", а поле изделие ... по идее должно получаться из справочника "ПроизводственныеЗаказы", но из табличного поля (изделия) колонки "Обозначение Изделия" (ОбознИзд). Вот в почледний пункт - мне его и не получить.

* form.png (32.04 Кб - загружено 1064 раз.)
* form_pr_zak.png (30.36 Кб - загружено 1131 раз.)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 25-03-2010 09:42 » 

Если я правильно понял - ты пытаешься присвоить одной табличной части значение другой. Такого нет.
Для заполнения таблицы значений из любой табличной части можно использовать следующую конструкцию:
Код:
<Таблица значений>.Очистить();
Для каждого Стр Из <Объект>.<Табличная часть> Цикл
СтрТЗ=<Таблица значений>.Добавить();
СтрТЗ.<Колонка 1>=Стр.<Колонка ТЧ 1>;
...
КонецЦикла;
Записан
ApB
Гость
« Ответ #4 : 25-03-2010 11:23 » 

Нет, не заместить значение табличной части, а поместить в реквизит документа значение (позволить делать выбор) из значений табличной части справочника, так как одному номеру производственного заказа принадлежит (может принадлежать) сразу несколько значений из таблицы изделия, при чём отображаться должен только перечень изделий, входящий в заказ, указанный в предидущем поле.

Мне бы понять. как достучаться до строки табличной части справочника, так как на данный момент у меня не получается просто хотябы получить значения табличной части - чтобы хотябы просто отображались в поле выбор из элементов занесённых в табличную часть справочника. этого я не могу сообразить  А черт его знает....

а написанный код, если я правильно понимаю, замещает значение в колонке.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 25-03-2010 11:47 » new

Написанный код копирует заданные колонки табличной части объекта в таблицу в таблицу значений на форме.
Если бы внимательно посмотрел - то обход табличной части построчно вот:
Код:
Для каждого Стр Из <Объект>.<Табличная часть> Цикл
    // Стр - это строка табличной части
    // В твоем случае Стр.ОбознИзд будет изделие из табл. части справочника
КонецЦикла;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines