Имя: Пароль:
1C
1С v8
Адрес контрагента
0 KENT2007
 
25.06.12
12:11
Как и куда его сохранить если адрес идет одной строкой, можно прям в строку адрес без КЛАДРА?
1 ZanderZ
 
25.06.12
12:12
можно
2 Eugene_life
 
25.06.12
12:12
(0) В Контактную информацию суй
3 Coldboy
 
25.06.12
12:13
(0) регист рсведений, контактая информацию, там поля объект = контраент, тип  = адрес (факти или юрический выбери), и в поле представление надо тебе кидать.
4 Агент Инфостарта
 
25.06.12
12:15
(3) Не обязательно в представление, в значение адреса можно, как произвольную строку.
5 KENT2007
 
25.06.12
12:23
как это в коде будет выглядить
подключился к строке
   СтрокаКонтрагент.Адрес = СокрЛП(Recordset.Fields("fAddress").Value);

в таб часть попадает
6 KENT2007
 
25.06.12
12:30
помогите плиз как добавить данный в регистр сведений
7 Агент Инфостарта
 
25.06.12
12:34
(6) Конфа какая? За четыре года мог бы научиться формулировать вопросы.
8 KENT2007
 
25.06.12
12:35
конфа БП
9 KENT2007
 
25.06.12
12:35
хотя бы образец строки можно
10 ZanderZ
 
25.06.12
12:37
(8) в типовой БП адрес контрагента можно одной строкой записывать без кладра
11 KENT2007
 
25.06.12
12:37
и как указать что ардес конкретному контрагенту принадлежит?
12 KENT2007
 
25.06.12
12:38
как в коде эта срока пишется
13 ZanderZ
 
25.06.12
12:38
(11) в смысле как ??? заходишь в контрагента и указываешь адрес
14 KENT2007
 
25.06.12
12:41
есть обработка перенос данных из бизнес пак, переносит только инн кпп и банк нужно добавить адрес, вот и мучаю, к строке подключился а как дальше записать ее не пойму
15 KENT2007
 
25.06.12
12:42
Функция ДобавитьАдрес(Адрес)
   
       НовыйАдрес = РегистрСведений.КонтактнаяИнформация.
       
       
     
КонецФункции

так что ли?
16 ZanderZ
 
25.06.12
12:43
(14) адрес хранится не в карточке контрагента, а в отдельном регистре сведений "КонтактнаяИнформация", добавляй туда запись, и заполняй
17 KENT2007
 
25.06.12
12:46
в том то и дело как программно это выглядит?
18 ZanderZ
 
25.06.12
12:47
(17) ну открой обработку "РедактированиеКонтактнойИнформации" и посмотри как она записывает, адаптируй под себя код.
19 KENT2007
 
25.06.12
12:48
МенеджерЗаписи = РегистрыСведений.КакойТоРегистр.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = ПолеНаФорме;
МенеджерЗаписи.Данные = ПолеНаФормеДанные;
МенеджерЗаписи.Записать();

вот так?
20 ZanderZ
 
25.06.12
12:52
(19) типа того
21 KENT2007
 
25.06.12
12:58
что не так

Функция ДобавитьАдрес(Адрес)
       МенеджерЗаписи = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Представление = Адрес;
МенеджерЗаписи.Записать();
     
КонецФункции

пишет не удалось добавить КонтактнаяИнформация
22 KENT2007
 
25.06.12
13:02
помогите сижу у клиента в тупике
23 ZanderZ
 
25.06.12
13:06
(22) пересядь в другое место :)
читай синтакс-помощник, там все есть
24 Eugene_life
 
25.06.12
13:09
НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Прочитать();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = ПараметрыКонтрагента.ЮрАдрес;
                       НаборКИ.Записать(Ложь);
                       //
                       НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
                       НаборКИ.Прочитать();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = ПараметрыКонтрагента.ФизАдрес;
                       НаборКИ.Записать(Ложь);
25 Eugene_life
 
25.06.12
13:10
+(27) Вместо "НаборКИ.Представление = ПараметрыКонтрагента.ЮрАдрес;" подставляешь свою строку.
26 KENT2007
 
25.06.12
13:19
только на объект ругается что уже не пробывал не идет
27 Eugene_life
 
25.06.12
13:22
(26) Покажи что у тебя получилось
28 KENT2007
 
25.06.12
13:28
//МенеджерЗаписи.Записать();
   НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Прочитать();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = Адрес;
                       НаборКИ.Записать(Ложь);
                       //

                       НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
                       НаборКИ.Прочитать();
                       НаборКИ.Объект = НовыйКонтрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = Адрес;
                       НаборКИ.Записать(Ложь);
                       
                      КонецФункции
29 KENT2007
 
25.06.12
13:29
это уже сам перенос

Процедура Импорт()
   Для каждого Строка Из КонтрагентыЗагрузка Цикл
       
       // пустое наименование контрагента
       Если НЕ ЗначениеЗаполнено(СокрЛП(Строка.НаименованиеКонтрагента)) Тогда
           Продолжить;
       КонецЕсли;
       
       // нет инн или не верное
       Если Не ((СтрДлина(СокрЛП(строка.ИннПолучателя)) = 12) или (СтрДлина(СокрЛП(строка.ИннПолучателя)) = 10)) Тогда
           Продолжить;            
       КонецЕсли;

       // если инн 12 а кпп нет то кпп = 0        
       Если ((СтрДлина(СокрЛП(строка.ИннПолучателя)) = 12) И (СокрЛП(Строка.КппПолучателя = ""))) Тогда
           Строка.КппПолучателя = "0";    
       КонецЕсли;
       
       //Ищем контрагента
       Контрагент = НайтиКонтрагента(Строка.ИннПолучателя,Строка.КппПолучателя);
       
       //нет контрагента
       Если Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
           Если ОбновлятьТолькоСчета Тогда
               Продолжить;
           Иначе
               Контрагент = ДобавитьКонтрагента(Строка.ПолноеНаименованиеКонтрагента,
                                               Строка.НаименованиеКонтрагента,
                                               Строка.ИннПолучателя,
                                               Строка.КппПолучателя);
           КонецЕсли;    
       КонецЕсли;
       
       //обновляем контрагента
       Если не ОбновлятьТолькоСчета Тогда
           ОбновитьКонтрагента(Контрагент, Строка.КппПолучателя, Строка.ПолноеНаименованиеКонтрагента);        
       КонецЕсли;
       
       // А есть ли расчетный счет
       
       Если (СтрДлина(Строка.СчетПолучателя) <> 20) или (СтрДлина(Строка.БикБанкаПолучателя) <> 9) Тогда
           Продолжить;    
       КонецЕсли;
       
               //ищем счет
       РасчетныйСчет = НайтиРасчетныйСчет(Строка.СчетПолучателя,Контрагент.Ссылка);
       
       // добавляем счет
       Если РасчетныйСчет = Справочники.БанковскиеСчета.ПустаяСсылка() Тогда
           ДобавитьСчет(Строка.СчетПолучателя,
                       Строка.БикБанкаПолучателя,
                       Строка.НаименованиеБанкаПолучателя,
                       Строка.КоррСчетБанкаПолучателя,
                       Контрагент);    
                   КонецЕсли;
                   
                   ДобавитьАдрес(Строка.Адрес)
       
   КонецЦикла;
   
КонецПроцедуры //Импорт
30 Eugene_life
 
25.06.12
13:32
(29) У тебя ссылка на контрагента называется Контрагент. Потому: НаборКИ.Объект = Контрагент.Ссылка;
+ поставь останов в строке где начинает читаться КИ - и проверь отладчиком все, что пишешь.
31 ZanderZ
 
25.06.12
13:34
(29) вот тут ты нашел контрагента
//Ищем контрагента

       Контрагент = НайтиКонтрагента(Строка.ИннПолучателя,Строка.КппПолучателя);
после чего проверка на существование его в базе
так вот после этой проверке вставь
НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = Контрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
                       НаборКИ.Прочитать();
                       НаборКИ.Объект = Контрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = Строка.Адрес;
                       НаборКИ.Записать(Ложь);
32 KENT2007
 
25.06.12
13:36
{Форма.Форма.Форма(216,42)}: Переменная не определена (Контрагент)
                       НаборКИ.Объект = <<?>>Контрагент.Ссылка; (Проверка: Толстый клиент (обычное приложение))
{Форма.Форма.Форма(220,42)}: Переменная не определена (Контрагент)
                       НаборКИ.Объект = <<?>>Контрагент.Ссылка; (Проверка: Толстый клиент (обычное приложение))
{Форма.Форма.Форма(223,49)}: Переменная не определена (Строка)
                       НаборКИ.Представление = <<?>>Строка.Адрес; (Проверка: Толстый клиент (обычное приложение))
33 ZanderZ
 
25.06.12
13:37
куда вставил то ?
34 Eugene_life
 
25.06.12
13:38
(33) интимный вопрос!! :D
35 Eugene_life
 
25.06.12
13:39
(32) Ну, пройдись отладчиком, проблема-то - вот она!! Нужно подсунуть ему твоего найденного контрагента!
36 KENT2007
 
25.06.12
13:41
Вроде все пошло без ошибок, после тогда как (31) всавил в процедуру загрузки, вот только адреса нет)
37 KENT2007
 
25.06.12
13:42
{Форма.Форма.Форма(498)}: Ошибка при вызове метода контекста (Записать)
                       НаборКИ.Записать(Ложь);
по причине:

по причине:
Запись с такими ключевыми полями существует! : КонтактнаяИнформация: МУП "Водоканал", Адрес, Юридический адрес (Регистр сведений: Контактная информация)
38 Eugene_life
 
25.06.12
13:43
(37) тебе нужно записывать адрес для контрагента только 1 раз - при создании нового. А ты, видимо, пытаешься его "перезаписать" каждый раз
39 ZanderZ
 
25.06.12
13:44
(37) короче переделай
НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = Контрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
                       НаборКИ.Прочитать();
                       НаборКИ.Объект = Контрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = Строка.Адрес;
                       НаборКИ.Записать(Ложь);
на
НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = Контрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = Строка.Адрес;
                       НаборКИ.Записать();
40 del123
 
25.06.12
13:47
если ты отдельной процедурой добавляешь адрес, то передавай туда и контрагента тоже, а не только адрес :)
41 KENT2007
 
25.06.12
13:50
может я не в том месте вставил код

Процедура Импорт()
   Для каждого Строка Из КонтрагентыЗагрузка Цикл
       
       // пустое наименование контрагента
       Если НЕ ЗначениеЗаполнено(СокрЛП(Строка.НаименованиеКонтрагента)) Тогда
           Продолжить;
       КонецЕсли;
       
       // нет инн или не верное
       Если Не ((СтрДлина(СокрЛП(строка.ИннПолучателя)) = 12) или (СтрДлина(СокрЛП(строка.ИннПолучателя)) = 10)) Тогда
           Продолжить;            
       КонецЕсли;

       // если инн 12 а кпп нет то кпп = 0        
       Если ((СтрДлина(СокрЛП(строка.ИннПолучателя)) = 12) И (СокрЛП(Строка.КппПолучателя = ""))) Тогда
           Строка.КппПолучателя = "0";    
       КонецЕсли;
       
       //Ищем контрагента
       Контрагент = НайтиКонтрагента(Строка.ИннПолучателя,Строка.КппПолучателя);
       
       //нет контрагента
       Если Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
           Если ОбновлятьТолькоСчета Тогда
               Продолжить;
           Иначе
               Контрагент = ДобавитьКонтрагента(Строка.ПолноеНаименованиеКонтрагента,
                                               Строка.НаименованиеКонтрагента,
                                               Строка.ИннПолучателя,
                                               Строка.КппПолучателя);
           КонецЕсли;    
       КонецЕсли;
       
       //обновляем контрагента
       Если не ОбновлятьТолькоСчета Тогда
           ОбновитьКонтрагента(Контрагент, Строка.КппПолучателя, Строка.ПолноеНаименованиеКонтрагента);        
       КонецЕсли;
       
       // А есть ли расчетный счет
       
       Если (СтрДлина(Строка.СчетПолучателя) <> 20) или (СтрДлина(Строка.БикБанкаПолучателя) <> 9) Тогда
           Продолжить;    
       КонецЕсли;
       
               //ищем счет
       РасчетныйСчет = НайтиРасчетныйСчет(Строка.СчетПолучателя,Контрагент.Ссылка);
       
       // добавляем счет
       Если РасчетныйСчет = Справочники.БанковскиеСчета.ПустаяСсылка() Тогда
           ДобавитьСчет(Строка.СчетПолучателя,
                       Строка.БикБанкаПолучателя,
                       Строка.НаименованиеБанкаПолучателя,
                       Строка.КоррСчетБанкаПолучателя,
                       Контрагент);    
                   КонецЕсли;
                   
                   
                                       //ДобавитьАдрес(Строка.Адрес)
       
   КонецЦикла;
        НаборКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
                       НаборКИ.Объект = Контрагент.Ссылка;
                       НаборКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                       НаборКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                       НаборКИ.Представление = Строка.Адрес;
                       НаборКИ.Записать();

КонецПроцедуры //Импор
42 del123
 
25.06.12
13:51
перед конеццикла вставь
43 KENT2007
 
25.06.12
13:54
все равно нет адреса
44 KENT2007
 
25.06.12
13:55
у одного адрес записался когда ошибка в (37) была
45 Eugene_life
 
25.06.12
14:09
(44) Вот сюда добавь строки по записи адреса (только сперва этот адрес получи из источника):
Если Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
           Если ОбновлятьТолькоСчета Тогда
               Продолжить;
           Иначе
               Контрагент = ДобавитьКонтрагента(Строка.ПолноеНаименованиеКонтрагента,
                                               Строка.НаименованиеКонтрагента,
                                               Строка.ИннПолучателя,
                                               Строка.КппПолучателя);
////***** записать адрес
           КонецЕсли;    
       КонецЕсли;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан