Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Элементы справочника.

Элементы справочника.
Я
   McAlex86
 
06.03.18 - 12:57
Ребята. Помогите!!!
Ситуация простая.
Имеются два справочника: Справочник1 и Справочник2.
Имеется документ (Документ1) с реквизитами: Значение1 (тип: СправочникСсылка.Справочник1) и Значение2 (тип: СправочникСсылка.Справочник1).
Необходимо чтобы в документе при выборе элемента в Значение1 этот же одноименный элемент автоматически подставлялся в Значение2.
Имена элементов в справочниках одинаковые, только код разный.
Вот как то так описал проблему).
ХЕЛП, добрые люди.
 
 
   catena
 
1 - 06.03.18 - 12:57
Что делал, что не получилось?
   McAlex86
 
2 - 06.03.18 - 13:02
Много чего делал. Весь мозг съел.
Процедура НаименованиеПриИзменении(Элемент)
ЗаполнитьНаименование();
КонецПроцедуры

&НаСервере
ЗаполнитьНаименование()
Объект.Значение2 = Объект.Значение1.Значение2;
КонецПроцедуры

Но по скольку тип Значение2 ссылка на справочник, естественно ничего не выходит.
   catena
 
3 - 06.03.18 - 13:03
(2)Синтаксис-помощник читал? Там есть волшебные методы: НайтиПоРеквизиту, НайтиПоНаименованию, НатийПоКоду. Остросюжетное чтиво, рекомендую.
   13Дима13
 
4 - 06.03.18 - 13:06
в обработчик "При изменении" реквизита 1 пишешь:
Если ЗначениеЗАполнено(реквизит1) Тогда
   Реквизит2 = ЗаполнитьРеквизит2(реквизит1.Наименование)
Иначе
 Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка");
КонецЕсли

Функция ЗаполнитьРеквизит2(НаименованиеРеквизита1)
     Возврат Справочники.Справочник2.НайтиПоНаименованию(НаименованиеРеквизита1);
КонецФункции
   McAlex86
 
5 - 06.03.18 - 13:06
(3) Читал, но в помощниках всегда все так просто
Я с 1с не близко знаком. Но вот эту задачу решить надо.
   МимохожийОднако
 
6 - 06.03.18 - 13:13
(5) ОФФ: С учетом
"Ребята. Помогите!!!
Ситуация простая.
...
Много чего делал. Весь мозг съел."
Убери эмоции, включи мозг (срыгни). 

Посмотри как сделано в типовой ЗУП по справочнику Сотрудники.

приведенный код:
Объект.Значение2 = Объект.Значение1.Значение2;
ни в какие ворота. У справочника есть метод НайтиПоНаименованию().
Ctrl-F1 почаще жми
   McAlex86
 
7 - 06.03.18 - 13:28
(4)

&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
    Если ЗначениеЗАполнено(Объект.Реквизит1) Тогда
   Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1.Наименование);
Иначе
 Реквизит2 = предопределенноезначение("Справочник.Склад.ПУстаяСсылка");
КонецЕсли
КонецПроцедуры


Функция ЗаполнитьРеквизит2(НаименованиеРеквизита1)
     Возврат Справочники.Склад.НайтиПоНаименованию(НаименованиеРеквизита1);
КонецФункции

Ошибка
{Документ.НаДваСпр.Форма.ФормаДокумента.Форма(5)}: Поле объекта не обнаружено (Наименование)
   Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1.Наименование);
   13Дима13
 
8 - 06.03.18 - 13:30
(7) Если ЗначениеЗАполнено(реквизит1) Тогда
   Реквизит2 = ЗаполнитьРеквизит2()
Иначе
 Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка");
КонецЕсли

Функция ЗаполнитьРеквизит2()
     Возврат Справочники.Справочник2.НайтиПоНаименованию(Реквизит1.наименование);
КонецФункции
   13Дима13
 
9 - 06.03.18 - 13:31
(5) ты бы хоть немного почитал книги по программированию в 1с, пригодится
   vicof
 
10 - 06.03.18 - 13:31
" Значение2 (тип: СправочникСсылка.Справочник1). "
ничего не смущает?
 
 Рекламное место пустует
   McAlex86
 
11 - 06.03.18 - 13:38
(9) обязательно буду читать. Просто возникла острая необходимость в решении данной задачи.
   Buster007
 
12 - 06.03.18 - 13:41
(11) позовите специалиста
   hhhh
 
13 - 06.03.18 - 13:43
(11) ну (8) почему не хочешь прочитать?
   McAlex86
 
14 - 06.03.18 - 14:11
(8)
&НаКлиенте
Процедура Реквизит1ПриИзменении(Элемент)
    Если ЗначениеЗАполнено(Объект.Реквизит1) Тогда
   Реквизит2 = ЗаполнитьРеквизит2(Объект.Реквизит1);
Иначе
 Реквизит2 = предопределенноезначение("Справочник.Справочник2.ПУстаяСсылка");
КонецЕсли

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

&НаСервереБезКонтекста
Функция ЗаполнитьРеквизит2(Реквизит1)
    Возврат Справочники.Справочник2.НайтиПоНаименованию(Реквизит1.Наименование);
КонецФункции

Нет результата
   Lexey_
 
15 - 06.03.18 - 14:20
(14) а что есть?
   McAlex86
 
16 - 06.03.18 - 14:23
(15) Ничего нет....в Реквизит1 выбираю из Справочника1 элемент, а в Реквизит2 выбранный элемент не заполняется автоматически
   Ёпрст
 
17 - 06.03.18 - 14:30
(0)
И зачем вам 2 элемента с одним наименованием в одном справочнике впёрлись ?
   Ёпрст
 
18 - 06.03.18 - 14:31
ну и НайтиПоНаименованию...найдет первый, если че и не факт, что это будет нужный вам.
   McAlex86
 
19 - 06.03.18 - 14:32
(17) там опечатка...справочники разные, а название элементов одинаковое
   McAlex86
 
20 - 06.03.18 - 14:32
(18) названия элементов в пределах одного справочника уникальные, без одноименных.
   Fish
 
21 - 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.Наименование);
КонецФункции
   McAlex86
 
23 - 06.03.18 - 15:06
(22) Спасибо!!!!!!!!! Получилось.
Сам себя запутал.
   McAlex86
 
24 - 06.03.18 - 15:08
Ребята, всем спасибо!!! Знал что поможете.
Обязательно буду читать литературу по 1с.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует