Имя: Пароль:
1C
1С v8
Как вытащить данные из Справочника
Ø (Волшебник 02.05.2017 18:34)
0 kat2504
 
02.05.17
15:35
Есть таблица Оборудование
В ней есть столбцы Фото, Описание, Группа
Надо при изменении столбца Наименование (которое выбирается из Справочника Номенклатура), автоматически заполнялись эти столбцы
В справочнике Номенклатура, есть реквизиты: Фото --- ФайлКартинки, Описание --- Комментарий, Группа --- Родитель
1 torgm
 
02.05.17
15:37
(0) а зачем?
2 zippygrill
 
02.05.17
15:37
уууу сложно будет
3 dezss
 
02.05.17
15:38
А как наименование выбирается из Справочник.Номенклатура?
Ссылку не завезли?
4 Ц_У
 
02.05.17
15:40
(2) да еще и без фото, вообще не реально
5 Timon1405
 
02.05.17
15:45
(4) почему же без фото
>>В ней есть столбцы "Фото", описание, группа
6 kat2504
 
02.05.17
15:46
А как наименование выбирается из Справочник.Номенклатура?
Ссылку не завезли?

Для выбора наименования заводилась ссылка на Номенклатуру
  Тип   СправочникСсылка.Номенклатура
7 dezss
 
02.05.17
15:48
(6) ну вот при заполнении этого самого наименования из той же ссылки и заполнять все остальное...
8 kat2504
 
02.05.17
15:55
Ну вот я и хочу чтобы остальные поля автоматически из этого справочника заполнялись, а не в ручную набивать это все
9 dezss
 
02.05.17
15:56
(8) ну так надо же написать для этого код, который это будет делать в тот момент, когда выбирается наименование номенклатуры.
а если это уф, там можно просто реквизитов добавить...
10 Ц_У
 
02.05.17
15:56
(5) ну раз фото есть, тогда должно автоматом все заполняться
11 kat2504
 
02.05.17
16:03
Ну вот мне и нужен код, поэтому я и прошу помощи.
12 dezss
 
02.05.17
16:10
(11) лучше все таки пригласить программиста, чтобы он на месте все посмотрел и сделал...
13 Buster007
 
02.05.17
16:25
(11) где твоя попытка и где в этой попытке проблемное место, из-за которого не получается сделать желаемое?
14 kat2504
 
02.05.17
17:18
&НаКлиенте
Процедура ОборудованиеНаименованиеПриИзменении(Элемент)
    
    СтрокаТабличнойЧасти = Элементы.Оборудование.ТекущиеДанные;
    
    СтруктураДанные = Новый Структура;
    СтруктураДанные.Вставить("Наименование", СтрокаТабличнойЧасти.Номенклатура);
        
    СтруктураДанные = ПолучитьДанныеНаименованиеПриИзменении(СтруктураДанные);
    
    СтрокаТабличнойЧасти.ЕдиницаИзмерения = СтруктураДанные.ЕдиницаИзмерения;
    СтрокаТабличнойЧасти.Фото = СтруктураДанные.ФайлКартинки;
    СтрокаТабличнойЧасти.Описание = СтруктураДанные.Комментарий;
    СтрокаТабличнойЧасти.Группа = СтруктураДанные.Родитель;
    
    
КонецПроцедуры


Пробовала так!

Тогда при проверке выдает ошибку

{Документ.КоммерческоеПредложение.Форма.ФормаДокумента.Форма(15,20)}: Процедура или функция с указанным именем не определена (ПолучитьДанныеНаименованиеПриИзменении)
    СтруктураДанные = <<?>>ПолучитьДанныеНаименованиеПриИзменении(СтруктураДанные); (Проверка: Тонкий клиент)
15 h-sp
 
02.05.17
17:21
(14) ну вы определите функцию ПолучитьДанныеНаименованиеПриИзменении, почему вы ее не определили?
16 dezss
 
02.05.17
17:22
(14) а описание этой процедуры или функции есть?
17 kat2504
 
02.05.17
17:26
(15) А можно конкретнее?
18 h-sp
 
02.05.17
17:31
(17) чего конкретнее. Вам пишет

Процедура или функция с указанным именем не определена (ПолучитьДанныеНаименованиеПриИзменении)

ваша задача, вспомнить где и когда вы определяли эту функцию.
19 kat2504
 
02.05.17
17:34
(18) Я её не определяла, но через эту функцию идет выборка в других документах.
20 dezss
 
02.05.17
17:36
(19) рукалицо....
ну так тогда и функцию эту надо скопировать из других документов!!!
21 Windyhead
 
02.05.17
17:56
Очень хоцетца спросить про зряплату, а то у многих здесь комплексы ))
или ТС за компот работает?
22 kat2504
 
02.05.17
17:56
(20) Можно ли вытащить данные из справочника как то проще,
типа
Стр.Описание = СтруктураДанные.Комментарий
23 Ц_У
 
02.05.17
18:00
(21) с зряплаты поржал, спасибо :)
24 h-sp
 
02.05.17
18:01
(22) нет конечно. скопипастить процедуру ПолучитьДанныеНаименованиеПриИзменении  - это два нажатия мышки. Если проще, значит вы за одно нажатие хотите?
25 Ц_У
 
02.05.17
18:07
(24) ну можно попробовать прописать спереди Документы.ИмяДокумента. может взлетит :)
26 kat2504
 
02.05.17
18:12
(24) Вы можете написать полностью как это будет?
Я пробовала по разному, фантазии уже не хватает.
Может я где то не там это пишу? В голове такая каша уже.
27 kat2504
 
02.05.17
18:26
&НаКлиенте
Процедура ЗапасыНоменклатураПриИзменении(Элемент)
    
    СтрокаТабличнойЧасти = Элементы.Запасы.ТекущиеДанные;
    
    СтруктураДанные = Новый Структура;
    СтруктураДанные.Вставить("Организация", Объект.Организация);
    СтруктураДанные.Вставить("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
    СтруктураДанные.Вставить("Характеристика", СтрокаТабличнойЧасти.Характеристика);
    СтруктураДанные.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
    
    Если ЗначениеЗаполнено(Объект.ВидЦен) Тогда
        
        СтруктураДанные.Вставить("ДатаОбработки", Объект.Дата);
        СтруктураДанные.Вставить("ВалютаДокумента", Объект.ВалютаДокумента);
        СтруктураДанные.Вставить("СуммаВключаетНДС", Объект.СуммаВключаетНДС);
        СтруктураДанные.Вставить("ВидЦен", Объект.ВидЦен);
        СтруктураДанные.Вставить("Коэффициент", 1);
        СтруктураДанные.Вставить("ВидСкидкиНаценки", Объект.ВидСкидкиНаценки);
        
    КонецЕсли;
    
    // ДисконтныеКарты
    СтруктураДанные.Вставить("ДисконтнаяКарта", Объект.ДисконтнаяКарта);
    СтруктураДанные.Вставить("ПроцентСкидкиПоДисконтнойКарте", Объект.ПроцентСкидкиПоДисконтнойКарте);        
    // Конец ДисконтныеКарты
    
    СтруктураДанные = ПолучитьДанныеНоменклатураПриИзменении(СтруктураДанные);
    
    СтрокаТабличнойЧасти.ЕдиницаИзмерения = СтруктураДанные.ЕдиницаИзмерения;
    СтрокаТабличнойЧасти.Количество = 1;
    СтрокаТабличнойЧасти.Цена = СтруктураДанные.Цена;
    СтрокаТабличнойЧасти.ПроцентСкидкиНаценки = СтруктураДанные.ПроцентСкидкиНаценки;
    СтрокаТабличнойЧасти.СтавкаНДС = СтруктураДанные.СтавкаНДС;
    СтрокаТабличнойЧасти.Содержание = "";
    СтрокаТабличнойЧасти.Спецификация = СтруктураДанные.Спецификация;
    
    СтрокаТабличнойЧасти.ТипНоменклатурыЗапас = СтруктураДанные.ЭтоЗапас;
    
    СЦентр_УправлениеРемонтамиКлиент.ПроверитьКоличествоЕдиницуИзмеренияИнвентарногоТовара(Элементы.Запасы.ТекущиеДанные);
    
    РассчитатьСуммуВСтрокеТабличнойЧасти();
    
    СЦентр_УправлениеРемонтамиКлиент.УстановитьВидимостьКолонкиХарактеристика(Элементы.Запасы, Элементы.ЗапасыХарактеристика,, СтрокаТабличнойЧасти);
    УстановитьОтметкуХарактеристикЗапасы(СтрокаТабличнойЧасти.Номенклатура, СтрокаТабличнойЧасти.НомерСтроки);
    
    // Калькуляция
    ОчиститьКалькуляцию();
    // Конец Калькуляция

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

Вот например в другом документе код такого типа, и он работатет.

Мне нужно чтобы заполнялось всего 3 строки автоматически. Я изменила названия и у меня не работает.
28 kat2504
 
02.05.17
18:27
Что от сюда мне нужно скопировать, чтобы заработало у меня?
29 Волшебник
 
модератор
02.05.17
18:34
(28) Вам нужна процедура ПолучитьДанныеНаименованиеПриИзменении. Ищите её. Ветку закрываю
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший