Имя: Пароль:
1C
1С v8
Создать запись в регистре сведений.
0 AL_Rain
 
15.12.16
15:31
Приветствую всех.

Вопрос возник у меня. Мне надо у контрагента в его контактной информации "Телефон контрагента 1" перенести в "Факс контрагента", который ещё не создан.

Делаю так:

Запрос = Новый Запрос;                          
    Запрос.Текст = "ВЫБРАТЬ
                   |    КонтактнаяИнформация.Представление,
                   |    Контрагенты.Наименование
                   |ИЗ
                   |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
                   |        ПО КонтактнаяИнформация.Объект = Контрагенты.Ссылка
                   |ГДЕ
                   |    КонтактнаяИнформация.Вид = &Вид
                   //|  Или КонтактнаяИнформация.Вид = &Вид1)
                   |    И КонтактнаяИнформация.Тип = &Тип
                   |    И КонтактнаяИнформация.Объект = &Объект";                                      
    Запрос.УстановитьПараметр("Вид",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("000011872"));
    //Запрос.УстановитьПараметр("Вид1",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("000011872"));
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Телефон);
    Запрос.УстановитьПараметр("Объект",СсылкаНаОбъект);
        Результат = Запрос.Выполнить().Выгрузить();                    
    Для каждого Строка из Результат Цикл

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

    КонецЦикла;


Но в ответ ничего не происходит, не создаётся "Факс контрагента" с перенесённым номером. Показано на рисунке.

С другим кодом, тоже самое - ничего.


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


Подскажите, что не так делаю?

http://pixs.ru/showimage/1png_6870486_24430037.png
1 KishMish
 
15.12.16
15:36
Делаешь не так, что отбор указываешь один, а потом внутри меняешь значение по которому сделан отбор.

сделай так.

с телефоном удалить
с факсом добавить

в любом порядке.
2 AL_Rain
 
15.12.16
16:47
(1) Уточняю инфу.

Тип - телефон, в который входят Вид "Телефон контрагента 1" и "Факс контрагента".
http://pixs.ru/showimage/2png_9521670_24430767.png

Прописал код так:

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



Результат нулевой.
3 h-sp
 
15.12.16
17:03
перечитать форму надо по-видимому.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.