Имя: Пароль:
1C
1С v8
Заполнение адреса
0 zzzLEXzzz
 
06.08.13
16:02
Здравствуйте, помогите пожалуйста, 1С 8.2 Управление торговлей. Имеется документ с реквизитами "Наименование" тип = СправочникСсылка.Номенклатура  и "адрес" тип = строка, как сделать так чтобы адрес автоматически заполнялся из регистра сведений "контактная информация" заранее спасибо.

P.S. только начинающий
1 Laerys
 
06.08.13
16:05
(0) адрес кого?
2 zzzLEXzzz
 
06.08.13
16:07
ой дурак, извеняюсь, Наименование" тип = СправочникСсылка.Контрагент    адрес контрагента
3 maksim358
 
06.08.13
16:08
(2) получай из выбранного контрагента
4 zzzLEXzzz
 
06.08.13
16:09
(3) как получить, подскажите пожалуйста
5 maksim358
 
06.08.13
16:11
(4) при изменении наименования пиши что то типа адрес = наименование.НужныйТеРеквизит
6 zzzLEXzzz
 
06.08.13
16:13
(5) в том то и дело что в справочнике "контрагенты" нет нужного реквизита, все адреса контрагента записаны в регистре сведений "контактная информация"
7 maksim358
 
06.08.13
16:13
получай тогда оттуда
фильтром илди запросом
8 Naumov
 
06.08.13
16:16
в общем модуле УправлениеКонтактнойИнформацией сто пудов есть функция, которая возвращает адрес.
9 zzzLEXzzz
 
06.08.13
16:16
(7) вот что только в запросе указывать?
10 maksim358
 
06.08.13
16:19
(9)     Фильтр = Новый Структура;
    Фильтр.Вставить("Объект",Склад.Ссылка);
    Фильтр.Вставить("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Адрес"));
    Адрес = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Фильтр).Значение;
11 maksim358
 
06.08.13
16:19
это как пример. покапайся чуток.
вместо склада бери своего контрагента
и регистр контактная информация те нужен
12 maksim358
 
06.08.13
16:20
хотя может пример и дурацкий, но искать в этом направлении.
13 maksim358
 
06.08.13
16:22
ну или как подсказано в (8)
14 zzzLEXzzz
 
06.08.13
16:22
(12) ща попробую покопаться, если есть у кого ещё идеи, напишите пожалуйста
15 maksim358
 
06.08.13
16:24
(14) идеи две тебе приведены. их достаточно.
16 Laerys
 
06.08.13
16:26
ВЫБРАТЬ
    КонтактнаяИнформация.Представление КАК Адрес
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Объект = &Объект
    И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
самый простой вариант
17 zbv
 
06.08.13
16:27
(14) посмотри печать какой-нибудь накладной или счет-фактуры, там должно быть получение адреса контрагента.
18 maksim358
 
06.08.13
16:28
самый простой вариант (8)
19 maksim358
 
06.08.13
16:31
ПолучитьПредставлениеАдреса(Запись) например эту функцию попробуй.
20 zzzLEXzzz
 
06.08.13
16:31
блин (( как же хочется вас всех понимать
21 maksim358
 
06.08.13
16:35
(20) открой тогда документ какой нибудь. например реализацию. найди там в печатной форме есть ли адрес. а потом в коде посмотри как его получают. и все станет ясно.
22 zzzLEXzzz
 
06.08.13
16:50
(21) а такой вопрос, как вообще правильно поле заполнить? допустим я хочу внести в это поле "1"

при изменении
Процедура АдресПриИзменении(Элемент)
        
    ЭлементыФормы.Адрес = "1";
КонецПроцедуры;

Или я вообще не в ту степь?
23 zbv
 
06.08.13
16:52
(22) событие должно быть при изменении поля Контрагент.
24 zbv
 
06.08.13
16:52
+ (23)
и просто:

Адрес = 1;
25 Laerys
 
06.08.13
16:56
(22) http://v8.1c.ru/metod/books/book.jsp?id=401
и нет проблем
26 zzzLEXzzz
 
06.08.13
16:57
(25) я уже стал заниматься, просто за заданиями директора неуспеваю
27 zzzLEXzzz
 
06.08.13
16:58
(24) получилось, теперь как бы правильно всё подставить в место "1"   )))))
28 Laerys
 
06.08.13
17:28
(27) тебе директор так же задания дает как ты нас спрашиваешь?
29 maksim358
 
07.08.13
00:01
(27) можешь запросом как тебе подсказали. находи значение и подставляй вместо 1.
30 zzzLEXzzz
 
07.08.13
17:06
Кому интересно, сделал так, всё получилось


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

Если НаборЗаписей.Количество()>0 Тогда
         Адрес = НаборЗаписей[0].Представление;
Иначе
         Адрес ="2";
КонецЕсли;
    
    
    
    
КонецПроцедуры
Независимо от того, куда вы едете — это в гору и против ветра!