|
Элементы справочника. | ☑ | ||
---|---|---|---|---|
0
McAlex86
06.03.18
✎
12:57
|
Ребята. Помогите!!!
Ситуация простая. Имеются два справочника: Справочник1 и Справочник2. Имеется документ (Документ1) с реквизитами: Значение1 (тип: СправочникСсылка.Справочник1) и Значение2 (тип: СправочникСсылка.Справочник1). Необходимо чтобы в документе при выборе элемента в Значение1 этот же одноименный элемент автоматически подставлялся в Значение2. Имена элементов в справочниках одинаковые, только код разный. Вот как то так описал проблему). ХЕЛП, добрые люди. |
|||
1
catena
06.03.18
✎
12:57
|
Что делал, что не получилось?
|
|||
2
McAlex86
06.03.18
✎
13:02
|
Много чего делал. Весь мозг съел.
Процедура НаименованиеПриИзменении(Элемент) ЗаполнитьНаименование(); КонецПроцедуры &НаСервере ЗаполнитьНаименование() Объект.Значение2 = Объект.Значение1.Значение2; КонецПроцедуры Но по скольку тип Значение2 ссылка на справочник, естественно ничего не выходит. |
|||
3
catena
06.03.18
✎
13:03
|
(2)Синтаксис-помощник читал? Там есть волшебные методы: НайтиПоРеквизиту, НайтиПоНаименованию, НатийПоКоду. Остросюжетное чтиво, рекомендую.
|
|||
4
13Дима13
06.03.18
✎
13:06
|
в обработчик "При изменении" реквизита 1 пишешь:
Если ЗначениеЗАполнено(реквизит1) Тогда Реквизит2 = ЗаполнитьРеквизит2(реквизит1.Наименование) Иначе Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка"); КонецЕсли Функция ЗаполнитьРеквизит2(НаименованиеРеквизита1) Возврат Справочники.Справочник2.НайтиПоНаименованию(НаименованиеРеквизита1); КонецФункции |
|||
5
McAlex86
06.03.18
✎
13:06
|
(3) Читал, но в помощниках всегда все так просто
Я с 1с не близко знаком. Но вот эту задачу решить надо. |
|||
6
Мимохожий Однако
06.03.18
✎
13:13
|
(5) ОФФ: С учетом
"Ребята. Помогите!!! Ситуация простая. ... Много чего делал. Весь мозг съел." Убери эмоции, включи мозг (срыгни). Посмотри как сделано в типовой ЗУП по справочнику Сотрудники. приведенный код: Объект.Значение2 = Объект.Значение1.Значение2; ни в какие ворота. У справочника есть метод НайтиПоНаименованию(). Ctrl-F1 почаще жми |
|||
7
McAlex86
06.03.18
✎
13:28
|
(4)
&НаКлиенте Процедура НаименованиеПриИзменении(Элемент) Если ЗначениеЗАполнено(Объект.Реквизит1) Тогда Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1.Наименование); Иначе Реквизит2 = предопределенноезначение("Справочник.Склад.ПУстаяСсылка"); КонецЕсли КонецПроцедуры Функция ЗаполнитьРеквизит2(НаименованиеРеквизита1) Возврат Справочники.Склад.НайтиПоНаименованию(НаименованиеРеквизита1); КонецФункции Ошибка {Документ.НаДваСпр.Форма.ФормаДокумента.Форма(5)}: Поле объекта не обнаружено (Наименование) Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1.Наименование); |
|||
8
13Дима13
06.03.18
✎
13:30
|
(7) Если ЗначениеЗАполнено(реквизит1) Тогда
Реквизит2 = ЗаполнитьРеквизит2() Иначе Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка"); КонецЕсли Функция ЗаполнитьРеквизит2() Возврат Справочники.Справочник2.НайтиПоНаименованию(Реквизит1.наименование); КонецФункции |
|||
9
13Дима13
06.03.18
✎
13:31
|
(5) ты бы хоть немного почитал книги по программированию в 1с, пригодится
|
|||
10
vicof
06.03.18
✎
13:31
|
" Значение2 (тип: СправочникСсылка.Справочник1). "
ничего не смущает? |
|||
11
McAlex86
06.03.18
✎
13:38
|
(9) обязательно буду читать. Просто возникла острая необходимость в решении данной задачи.
|
|||
12
Buster007
06.03.18
✎
13:41
|
(11) позовите специалиста
|
|||
13
hhhh
06.03.18
✎
13:43
|
(11) ну (8) почему не хочешь прочитать?
|
|||
14
McAlex86
06.03.18
✎
14:11
|
(8)
&НаКлиенте Процедура Реквизит1ПриИзменении(Элемент) Если ЗначениеЗАполнено(Объект.Реквизит1) Тогда Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1); Иначе Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка"); КонецЕсли КонецПроцедуры &НаСервереБезКонтекста Функция ЗаполнитьРеквизит2(Реквизит1) Возврат Справочники.Справочник2.НайтиПоНаименованию(Реквизит1.Наименование); КонецФункции Нет результата |
|||
15
Lexey_
06.03.18
✎
14:20
|
(14) а что есть?
|
|||
16
McAlex86
06.03.18
✎
14:23
|
(15) Ничего нет....в Реквизит1 выбираю из Справочника1 элемент, а в Реквизит2 выбранный элемент не заполняется автоматически
|
|||
17
Ёпрст
06.03.18
✎
14:30
|
(0)
И зачем вам 2 элемента с одним наименованием в одном справочнике впёрлись ? |
|||
18
Ёпрст
06.03.18
✎
14:31
|
ну и НайтиПоНаименованию...найдет первый, если че и не факт, что это будет нужный вам.
|
|||
19
McAlex86
06.03.18
✎
14:32
|
(17) там опечатка...справочники разные, а название элементов одинаковое
|
|||
20
McAlex86
06.03.18
✎
14:32
|
(18) названия элементов в пределах одного справочника уникальные, без одноименных.
|
|||
21
Fish
06.03.18
✎
14:38
|
(14) Значит, в Справочник2 нет элемента с наименованием Реквизит1.Наименование.
|
|||
22
Ёпрст
06.03.18
✎
14:39
|
(20)
&НаКлиенте Процедура Реквизит1ПриИзменении(Элемент) Если ЗначениеЗАполнено(Объект.Реквизит1) Тогда Объект.Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1); Иначе Объект.Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка"); КонецЕсли КонецПроцедуры &НаСервереБезКонтекста Функция ЗаполнитьРеквизит2(Реквизит1) Возврат Справочники.Справочник2.НайтиПоНаименованию(Реквизит1.Наименование); КонецФункции |
|||
23
McAlex86
06.03.18
✎
15:06
|
(22) Спасибо!!!!!!!!! Получилось.
Сам себя запутал. |
|||
24
McAlex86
06.03.18
✎
15:08
|
Ребята, всем спасибо!!! Знал что поможете.
Обязательно буду читать литературу по 1с. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |