|
не пойму как записывается значение юр. адрес, физ. адрес в контрагентах (бух.) | ☑ | ||
---|---|---|---|---|
0
lucifer
18.01.12
✎
11:35
|
Я программно создаю элементы справочника контрагенты, если до этого создавалось название, инн, кпп, окпо и все, проблем не возникало т.к. эти все реквизиты есть, а вот юр. адрес, физ. адрес, тел.
нет таких реквизитов. В конфигураторе посмотрел там ПолеКИ1 - юр. адрес ПолеКИ2 - физ. адрес ПолеКИ3 - тел. тип значение у всех строка, но таких реквизитов ПолеКИ1 - ПолеКИ3 нет как же при создании нового контрагента задать эти значения? |
|||
1
SuperMario
18.01.12
✎
11:36
|
(0) Регистр сведений контактная информация
|
|||
2
vmv
18.01.12
✎
11:42
|
регистр КИ обладает высоким уровнем абстактности там индекированные имена полей, совет - клонировать технологию записи из модулей соответсвующих объектов
|
|||
3
lucifer
18.01.12
✎
12:23
|
(2) вот копаюсь смотрю, отладчик меня привел в процедуру
ЗаписатьКонтактнуюИнформациюСравниваяСКопией (она в общем модуле УправлениеКонтактнойИнформацией) в нее передается параметр НаборЗаписей и уже циклом по нему проходится если значение было изменено то записывается в регистр сведений новое измененное значение, но вот откуда берется это НаборЗаписей не пойму, и что бы мне это проделать в коде своей обработки тоже не совсем понятно что нужно делать, все в НаборЗаписей упирается. насколько я понимаю регистр сведений это что-то типа периодических реквизитов в 7, значит я могу посмотреть значение какое было к примеру пол года назад. Странно, я отладчиком просматривал значение переменных, дату не нашел, да в этом регистре нет ничего похожего на дату. |
|||
4
lucifer
18.01.12
✎
12:46
|
ну что неужели никто не сталкивался с этим?
|
|||
5
Быдло замкадное
18.01.12
✎
12:48
|
этот регистр историю не хранит
|
|||
6
lucifer
18.01.12
✎
12:49
|
(5) ааа тогда я перепутал. А что за регистр в 8 который взял на себя ф-ции периодических реквизитов из 7 ?
|
|||
7
Анатолий Никитин
18.01.12
✎
12:49
|
В этом регистре нет даты. Пишешь в него контрагента, вид адреса и сам адрес.
|
|||
8
Быдло замкадное
18.01.12
✎
12:50
|
(6) те же регистры, но есть периодические.
|
|||
9
lucifer
18.01.12
✎
13:16
|
вот пример записи в регистр, что я вытащил из ЗаписатьКонтактнуюИнформациюСравниваяСКопией
Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); Набор.Отбор.Объект.Установить(Ссылка); //ссылка на элемент контрагента Набор.Отбор.Тип.Установить(Тип); //ссылка на эл. справочника типКонтактнойИнф. Набор.Отбор.Вид.Установить(Вид); //ссылка на эл. справочника видКонтактнойИнф. новЗапись = Набор.Добавить(); ЗаполнитьЗначенияСвойств(новЗапись, Запись); Набор.Записать(); Запись - это Для Каждого Запись Из НаборЗаписей Цикл Опять этот НаборЗаписей, вот как мне добавить значение из внешний обработки ? |
|||
10
lucifer
18.01.12
✎
13:37
|
ну помогите (
|
|||
11
lucifer
18.01.12
✎
15:21
|
что не у кого в практике не было такого, что приходилось программно создавать контрагентов
|
|||
12
Анатолий Никитин
18.01.12
✎
15:34
|
из внешней обработки ты пишешь в регистр новую запись.
Объект - это твой контрагент Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации) - тут выбираешь адрес Вид (СправочникСсылка.ВидыКонтактнойИнформации) - здесь выбираешь юр. адрес Представление - сюда пишешь сам адрес. |
|||
13
Анатолий Никитин
18.01.12
✎
15:36
|
это если ты не хочешь приводить адреса к виду кладр
|
|||
14
lucifer
18.01.12
✎
15:39
|
(12) значит эту строку
ЗаполнитьЗначенияСвойств(новЗапись, Запись); можно пропустить? |
|||
15
Анатолий Никитин
18.01.12
✎
15:43
|
я разрешаю пропустить эту строку
|
|||
16
155153144627
18.01.12
✎
16:10
|
Я делал вот так:
Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи(); АдресКлассиф = РегистрыСведений.АдресныйКлассификатор; Запись.Объект = Контрагент.Ссылка; Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; Запись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; Запись.Поле1 = СокрЛП(Текст.ПолучитьСтроку(14)); //Индекс Стр = СокрЛП(Текст.ПолучитьСтроку(6)); Стр1 = ""; Пока Найти(Стр," ")<>0 Цикл Стр1 = Стр1 + Лев(Стр,Найти(Стр," ")-1); Стр = Сред(Стр,Найти(Стр," ")+1); КонецЦикла; Запрос = Новый Запрос(); Запрос.Текст = "Выбрать |АдресКлассиф.Наименование, |АдресКлассиф.Сокращение |ИЗ |РегистрСведений.АдресныйКлассификатор как АдресКлассиф |Где |АдресКлассиф.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Стр1); //ВыборкаАК = АдресКлассиф.Выбрать(); //Пока ВыборкаАК.Следующий() Цикл // Если ВыборкаАК.Наименование = СокрЛП(Стр1) Тогда // Стр1 = Стр1 + " " + ВыборкаАК.Сокращение; // Прервать; // КонецЕсли; //КонецЦикла; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Стр1 = Выборка.Наименование + " " + Выборка.Сокращение; Прервать; КонецЦикла; Запись.Поле2 = Стр1; //Запись.Поле2 = СокрЛП(Текст.ПолучитьСтроку(6)); //Регион Стр = СокрЛП(Текст.ПолучитьСтроку(7)); Стр1 = ""; Пока Найти(Стр," ")<>0 Цикл Стр1 = Стр1 + Лев(Стр,Найти(Стр," ")-1); Стр = Сред(Стр,Найти(Стр," ")+1); КонецЦикла; //-> Запрос = Новый Запрос(); Запрос.Текст = "Выбрать |АдресКлассиф.Наименование, |АдресКлассиф.Сокращение |ИЗ |РегистрСведений.АдресныйКлассификатор как АдресКлассиф |Где |АдресКлассиф.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Стр1); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Стр1 = Выборка.Наименование + " " + Выборка.Сокращение; Прервать; КонецЦикла; //<- Запись.Поле3 = Стр1; //Запись.Поле3 = СокрЛП(Текст.ПолучитьСтроку(7)); //Район Стр = СокрЛП(Текст.ПолучитьСтроку(8)); Стр1 = ""; Если Найти(Стр," ")<>0 Тогда Стр1 = Сред(Стр,Найти(Стр," ")+1); Иначе Стр1 = Стр; КонецЕсли; //-> Запрос = Новый Запрос(); Запрос.Текст = "Выбрать |АдресКлассиф.Наименование, |АдресКлассиф.Сокращение |ИЗ |РегистрСведений.АдресныйКлассификатор как АдресКлассиф |Где |АдресКлассиф.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Стр1); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Стр1 = Выборка.Наименование + " " + Выборка.Сокращение; Прервать; КонецЦикла; //<- Запись.Поле4 = Стр1; //Запись.Поле4 = СокрЛП(Текст.ПолучитьСтроку(8)); //Город Стр = СокрЛП(Текст.ПолучитьСтроку(9)); Стр1 = ""; Если Найти(Стр," ")<>0 Тогда Стр1 = Сред(Стр,Найти(Стр," ")+1); Иначе Стр1 = Стр; КонецЕсли; //-> Запрос = Новый Запрос(); Запрос.Текст = "Выбрать |АдресКлассиф.Наименование, |АдресКлассиф.Сокращение |ИЗ |РегистрСведений.АдресныйКлассификатор как АдресКлассиф |Где |АдресКлассиф.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Стр1); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Стр1 = Выборка.Наименование + " " + Выборка.Сокращение; Прервать; КонецЦикла; //<- Запись.Поле5 = Стр1; //Запись.Поле5 = СокрЛП(Текст.ПолучитьСтроку(9)); //Населенный пункт Стр = СокрЛП(Текст.ПолучитьСтроку(10)); Стр1 = ""; Если (Найти(Стр," ")<>0) и ((Лев(Стр,1) = "у") или (Лев(Стр,1) = "У")) Тогда Стр1 = Сред(Стр,Найти(Стр," ")+1); Иначе Стр1 = Стр; КонецЕсли; //-> Запрос = Новый Запрос(); Запрос.Текст = "Выбрать |АдресКлассиф.Наименование, |АдресКлассиф.Сокращение |ИЗ |РегистрСведений.АдресныйКлассификатор как АдресКлассиф |Где |АдресКлассиф.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", Стр1); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Сокращение <> "д" Тогда Стр1 = Выборка.Наименование + " " + Выборка.Сокращение; Прервать; КонецЕсли; КонецЦикла; //<- Запись.Поле6 = Стр1; //Запись.Поле6 = СокрЛП(Текст.ПолучитьСтроку(10)); //Улица Стр = СокрЛП(Текст.ПолучитьСтроку(11)); Стр1 = ""; Если Найти(Стр," ")<>0 Тогда Стр1 = Сред(Стр,Найти(Стр," ")+1); Иначе Стр1 = Стр; КонецЕсли; Запись.Поле7 = Стр1; //Запись.Поле7 = СокрЛП(Текст.ПолучитьСтроку(11)); //Дом Стр = СокрЛП(Текст.ПолучитьСтроку(12)); Стр1 = ""; Если Найти(Стр," ")<>0 Тогда Стр1 = Сред(Стр,Найти(Стр," ")+1); Иначе Стр1 = Стр; КонецЕсли; Запись.Поле8 = Стр1; //Запись.Поле8 = СокрЛП(Текст.ПолучитьСтроку(12)); //Корпус Стр = СокрЛП(Текст.ПолучитьСтроку(13)); Стр1 = ""; Если Найти(Стр," ")<>0 Тогда Стр1 = Сред(Стр,Найти(Стр," ")+1); Иначе Стр1 = Стр; КонецЕсли; Запись.Поле9 = Стр1; //Запись.Поле9 = СокрЛП(Текст.ПолучитьСтроку(13)); //Квартира //Запись.Поле10 = ; Запись.Представление = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдреса(Запись); Запись.Записать(); Сообщить("Данные факт. адреса контрагента "+ Контрагент.Наименование + " успешно записаны!"); |
|||
17
cw014
18.01.12
✎
16:15
|
(16) многа букав
|
|||
18
155153144627
18.01.12
✎
16:21
|
С кодами принадлежности не было времени разобраться сделал просто поиском по адресному классификатору, поэтому в в улицах стоит проверка что сокращение <> "д". Луговая это и название улицы и деревни :-)
|
|||
19
lucifer
23.01.12
✎
12:02
|
что я не так делаю?
контИнф=Справочники.ВидыКонтактнойИнформации; контИнф.НайтиПоКоду("00011",ложь,,); // нахожу элемент "Юридический адрес" Если контИнф<>Справочники.ВидыКонтактнойИнформации.ПустаяСсылка() тогда Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); //*** сначала пробовал так *** //Набор.Отбор.Объект.Установить(спр); //Набор.Отбор.Тип.Установить(контИнф.ЮрАдресОрганизации.тип); //Набор.Отбор.Вид.Установить(контИнф.ЮрАдресОрганизации); //новЗапись = Набор.Добавить(); //новЗапись.Представление=СокрЛП(дбфпокупатели.UAdress); //сам адрес (строка) //****** //*** потом так *** новЗапись = Набор.Добавить(); новЗапись.Объект=спр; новЗапись.Вид=контИнф.ЮрАдресОрганизации.тип; новЗапись.Тип=контИнф.ЮрАдресОрганизации; новЗапись.Представление=СокрЛП(дбфпокупатели.UAdress); //****** Иначе Сообщить("Не нашли ВидыКонтактнойИнформации 00011"); КонецЕсли; не пашет (( |
|||
20
depthzer0
23.01.12
✎
12:11
|
Тип - это перечисление, например,
новЗапись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес |
|||
21
depthzer0
23.01.12
✎
12:13
|
т.е.
новЗапись.Вид=контИнф.ЮрАдресОрганизации; новЗапись.Тип=контИнф.ЮрАдресОрганизации.тип; |
|||
22
ssh2006
23.01.12
✎
12:18
|
(19) вторая строка
|
|||
23
hhhh
23.01.12
✎
12:23
|
(19) отбор нужен. Возьми (9) и в него вставь уже строчки из (19)
|
|||
24
lucifer
23.01.12
✎
12:32
|
(23) "отбор нужен"
//*** сначала пробовал так *** //Набор.Отбор.Объект.Установить(спр); //Набор.Отбор.Тип.Установить(контИнф.ЮрАдресОрганизации.тип); //Набор.Отбор.Вид.Установить(контИнф.ЮрАдресОрганизации); //новЗапись = Набор.Добавить(); //новЗапись.Представление=СокрЛП(дбфпокупатели.UAdress); //сам адрес (строка) //****** этот отбор? (20)"новЗапись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес" не фига (( не пашет, ошибок нет, но и адрес не появляется |
|||
25
hhhh
23.01.12
✎
12:40
|
(24) отбора по контрагенту нет, по идее тогда у вас следующий контрагент будет затирать предыдущего.
|
|||
26
ssh2006
23.01.12
✎
12:43
|
(24) вот здесь проблема
контИнф=Справочники.ВидыКонтактнойИнформации; контИнф.НайтиПоКоду("00011",ложь,,); // нахожу элемент "Юридический адрес" |
|||
27
hhhh
23.01.12
✎
12:45
|
(26) ему вроде и нужен юридический.
|
|||
28
depthzer0
23.01.12
✎
12:56
|
там предопределенное значение
новЗапись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации; новЗапись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; |
|||
29
depthzer0
23.01.12
✎
12:57
|
если Объект не организация, а Контрагент, то нужно использовать ЮрАдресКонтрагента
|
|||
30
lucifer
23.01.12
✎
14:25
|
(28) делал я так.
(25) а это не оно? Набор.Отбор.Объект.Установить(спр); |
|||
31
hhhh
23.01.12
✎
14:35
|
(30) надо как в (29)
Набор.Отбор.Объект.Установить(спр); у тебя же комментарий здесь. |
|||
32
lucifer
23.01.12
✎
14:46
|
я закоментировал что бы показать что так я сначала попробовал, не получилось, потом стал пробовать др. вариант
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |