Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
1

Заполнение документа данными из справочника

22.02.2016, 18:59. Просмотров 2665. Ответов 16

Здравствуйте!
Столкнулась с проблемой. Есть Справочник "ПроизводственныйДефект" который имеет реквизит ВнешнееПроявлениеНесоответствия. Есть документ "Акт", в табличной части которого имеются столбцы НаименованиеНесоответствия и ОписаниеВнешнегоПроявления, которые должны заполняться из справочника "ПроизводственныйДефект". Не могу реализовать, чтобы при выборе НаименованиеНесоответствия автоматически переносилось ВнешнееПроявлениеНесоответствия в столбец документа ОписаниеВнешнегоПроявления. В модуле формы документа имеется следующий код:

1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура СписокНесоответствующейПродукцииНаименованиеНесоответствияПриИзменении(Элемент)
строка=Элементы.СписокНесоответствующейПродукции.ТекущиеДанные; 
строка.ОписаниеВнешнегоПроявления=ПолучитьОписаниеВнешнегоПроявления(строка.НаименованиеНесоответствия);
КонецПроцедуры
   
&НаСервереБезКонтекста
Функция ПолучитьОписаниеВнешнегоПроявления(Справочники)
    Возврат Справочники.ПроизводственныйДефект.ВнешнееПроявлениеНесоответствия; 
КонецФункции
При заполнении НаименованиеНесоответствия выдает ошибку: "Поле объекта не обнаружено (ПроизводственныйДефект)". Подскажите, что не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2016, 18:59
Ответы с готовыми решениями:

Заполнение табличной части документа данными из справочника
Добрый день! Очень нужна ваша помощь ! Есть справочник Должности (на каждую должность список спец...

Заполнение таблицы документа данными справочника автоматически
Здравствуйте. Делаю простую программу на 1С и столкнулся с проблемой. У меня есть...

Заполнение документа из тч справочника, заполнение при изменении()
&НаСервере Процедура ПолучитьПродукты(Выборка) Выборка=Справочники.Блюда.Выбрать(); Пока...

Заполнение документов данными из справочника
Здравствуйте! У меня есть документы ЗачислениеВКружки и ОтчислениеИзКружков. Как сделать так, чтобы...

Заполнение реквизита тч документа из справочника
Всем доброго времени суток. Прошу помощи Часто создаваемая тема, но все же. Есть справочник...

16
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
22.02.2016, 19:43 2
Лучший ответ Сообщение было отмечено Tatiana21 как решение

Решение

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&НаКлиенте
Процедура СписокНесоответствующейПродукцииНаименованиеНесоответствияПриИзменении(Элемент)
строка=Элементы.СписокНесоответствующейПродукции.ТекущиеДанные; 
строка.ОписаниеВнешнегоПроявления=ПолучитьОписаниеВнешнегоПроявления(строка.НаименованиеНесоответствия);
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьОписаниеВнешнегоПроявления(НаименованиеНесоответствия)
ТекЭлемент = Справочники.ПроизводственныйДефект.НайтиПоНаименованию(НаименованиеНесоответствия);
Если ТекЭлемент.Пустая() Тогда
Возврат "";//?? зависит от типа значения реквизита справочника
Иначе
Возврат ТекЭлемент.ВнешнееПроявлениеНесоответствия; 
КонецЕсли;
КонецФункции
1
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
22.02.2016, 20:00  [ТС] 3
Тип реквизита ВнешнееПроявлениеНесоответствия - строка

Добавлено через 4 минуты
Что-то ничего не происходит((
0
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
22.02.2016, 20:07 4
Если ничего не происходит и нет ошибок - значит не находит элемент справочника ПроизводственныйДефект по введенному наименованию.
В документе НаименованиеНесоответствия - тип строка и соответствует наименованию справочника ПроизводственныйДефект?
0
22.02.2016, 20:07
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
22.02.2016, 20:13  [ТС] 5
В документе Наименование - тип ссылка к справочнику

Добавлено через 1 минуту
а в справочнике Наименование - это стандартный реквизит
0
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
22.02.2016, 20:13 6
Лучший ответ Сообщение было отмечено Tatiana21 как решение

Решение

ок, тогда все иначе:
1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура СписокНесоответствующейПродукцииНаименованиеНесоответствияПриИзменении(Элемент)
строка=Элементы.СписокНесоответствующейПродукции.ТекущиеДанные; 
строка.ОписаниеВнешнегоПроявления=ПолучитьОписаниеВнешнегоПроявления(строка.НаименованиеНесоответствия);
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьОписаниеВнешнегоПроявления(НаименованиеНесоответствия)
Возврат НаименованиеНесоответствия.ВнешнееПроявлениеНесоответствия; 
КонецФункции
1
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
22.02.2016, 20:40  [ТС] 7
Спасибо) У меня, кстати, заработал 1 код))) оказывается я когда экспериментировала оставила типом данных ОписаниеВнешнегоПроявления не строка как в справочнике, а ссылка к справочнику.

Добавлено через 4 минуты
А если в табличной части документа Акт также имеется столбец Причина. Он же имеется и в табличной части справочника ПроизводственныйДефект. Как мне нужно прописать, чтобы при выборе данных для заполнения столбца Причина в табличной части документа показывало только те причины, которые имеются в табличной части справочника по данному дефекту?

Добавлено через 18 минут
Кстати, тип данных Причина - СправочникСсылка.ПричинаДефекта. Справочники ПричинаДефекта и ПроизводственныйДефект не являются починенными, поскольку имеют связь многие-ко-многим.
0
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
22.02.2016, 20:51 8
Tatiana21, вы хотите отображать в ячейке Причина для каждой строки содержимое Табличной части справочника? Это вряд ли получится, надо придумывать другой подход.
0
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
22.02.2016, 20:58  [ТС] 9
Нет, мне надо: я ввела Дефект, внешнее проявление заполнилось автоматически, а когда мне нужно выбрать причину из справочника Причина, то показывает только те причины, которые имеет определенный дефект в своей табличной части. Плохо объяснила?

Добавлено через 3 минуты
То есть некий отбор причин в зависимости от дефекта. Может тоже использовать для этого некоторый промежуточный объект, типа таблицу значений? Я просто даже не представляю, как это реализовать. Или есть какой-нибудь другой выход?
0
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
22.02.2016, 21:00 10
Tatiana21, а куда вы планируете выводить эти Причины из табличной части справочника? У вас в документе две табличные части? Какие варианты? Опишите полностью структуру документа и справочника.
0
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
22.02.2016, 21:08  [ТС] 11
Справочник ПричинаДефекта имеет стандартный реквизит Наименование и реквизит ПодразделениеВиновник.
Справочник ПроизводственныйДефект имеет реквизит Наименование, реквизит ВнешнееПроявлениеНесоответствия, табличную часть ПричиныВозникновенияНесоответствия с реквизитом ПрчичинаНесоответствия (тип - СправочникСсылка.ПричинаДефекта).
Документ Акт, кроме своих реквизитов (это сейчас не важно) имеет табличную часть СписокНесоответствующейПродукции с реквизитами: НаименованиеНесоответствия (СправочникСсылка.ПроизводственныйДефект), ОписаниеВнешнегоПроявления (тип - строка, заполняется автоматически), ПричинаНесоответствия (тип - СправочникСсылка.ПричинаДефекта).
Надо: при выборе данных для заполнения табличной части документа в столбце ПричинаНесоответствия показывало только те причины, которые имеются в табличной части опреленного дефекта, хранящегося в справочнике ПроизводственныйДефект.
Как-то так.
0
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
22.02.2016, 21:36 12
Tatiana21, я вам уже ответила на этот вопрос выше: вы хотите в ячейке таблицы документа отображать содержимое табличной части справочника - такое не прокатит.
0
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 121
22.02.2016, 21:44  [ТС] 13
Так а как тогда поступить? А нельзя помещать причины по определенному дефекту в виртуальную таблицу, а затем к ней обращаться?
Или через запрос обратиться к данным справочника ПроизводственныйДефект, ввести переменную &НаименованиеНесоответствия, а потом не знаю что... Что-нибудь в таком духе можно сделать или вообще без вариантов?
0
GreenkA
Форумчанин
Эксперт 1С
2996 / 1926 / 520
Регистрация: 25.06.2009
Сообщений: 6,806
23.02.2016, 10:33 14
Tatiana21, при чем тут виртуальная таблица? Вам надо придумать другой подход в плане отображения Причин в документе.
Это могут быть две связанные табличные части в документе. В первой, например, будут реквизиты - НаименованиеНесоответствия, ОписаниеВнешнегоПроявления, во второй - ПричинаНесоответствия и ключ связи со второй таблицей - НаименованиеНесоответствия.
При добавлении строки в первую ТЧ - во вторую будут автоматически добавляться все Причины из ТЧ справочника. При этом лучше сразу организовать отбор при активизации строки первой ТЧ - отображать только соответствующие этой позиции Причины в Табличной части 2.

Если поле Причина в документе носит только информационный характер, то можно обойтись и одной ТЧ, а например, сделать поле Причина табличной части документа типа Строка и загонять туда через определенный разделитель(точка с запятой/запятая) все значения из ТЧ справочника.

Здесь все зависит от задачи и вашей фантазии.
0
xxx_73
1 / 4 / 1
Регистрация: 06.01.2014
Сообщений: 363
15.05.2018, 14:02 15
А возможно ли ИМЯ из реквизита документа вытянуть и поместить эта значение в элемент "надпись" в справочнике ? Для отображения.
0
polax
989 / 650 / 221
Регистрация: 16.01.2015
Сообщений: 2,381
15.05.2018, 14:36 16
xxx_73, Как пример:
1C
1
Элементы.ВашаНадпись.Заголовок = Строка(Объект.ДокументОснование)
0
xxx_73
1 / 4 / 1
Регистрация: 06.01.2014
Сообщений: 363
15.05.2018, 15:24 17
Цитата Сообщение от polax Посмотреть сообщение
xxx_73, Как пример:
1C
1
Элементы.ВашаНадпись.Заголовок = Строка(Объект.ДокументОснование)
В обычной форме наверно будет
Objective-C
1
 Строка( ДокументОбъект
Добавлено через 26 минут
Просто в МодулеФормы справочника не видит реквизит этого документа.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
15.05.2018, 15:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2018, 15:24

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

Заполнение на форме данными из другого документа
Здравствуйте! Перейду собственно к проблеме - имеется два документа (Допустим Док1 и Док2), в одном...

Заполнение документа данными из двух справочников
Поскажите, пожалуйста, с заполнением данными документа. Данные берутся из справочника Данные о...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru