Имя: Пароль:
1C
1С v8
Присвоение значения реквизита в 1с 8.3
0 kobzon
 
16.03.14
13:52
Вообщем Сделал выгрузку данных из ТиСа 7.7 в УТ11. Все под 8.3.
Как я понял там Есть справочники Клиенты и партнеры. Так вот чтобы при подборе были видны клиенты, нужно в справочнике партнеры установить флаг на значение клиенты и записать изменение, а по умолчанию это не так. Как в 1с 8.3 сделать обработку, которая бы перебрала все элементы справочника и поменяла флаг на значение Клиенты?
Делаю так:


&НаКлиенте
Процедура Сообща(Команда)
            Перем НовыйКонтрагент;
        Если ИзменитьКлиента(НовыйКонтрагент) = 0 Тогда
                Сообщить("Не удалось изменить клиента");
        КонецЕсли;
КонецПроцедуры

&НаСервере
Функция ИзменитьКлиента(СтруктураСправочника)

        Перем НовыйКонтрагент,СпрПользователи;

        СпрКонтрагенты = Справочники.Партнеры;
        Выборка = СпрКонтрагенты.Выбрать();
        Пока выборка.Следующий() = 1 Цикл

        Выборка.Клиент = Истина;
        Попытка
                Выборка.Записать();
                Возврат 1;
        Исключение
                Возврат 0;
        КонецПопытки;
КонецЦикла;
КонецФункции

Но программа ругается:
{Форма.Форма.Форма(19)}: Поле объекта недоступно для записи (Клиент)
        Выборка.Клиент = Истина;
В 7-ке понимаю как сделать, а тут хоть убей. А нужно прям уже сейчас(
1 Добрый хачик
 
16.03.14
14:01
2 zak555
 
16.03.14
14:02
> Сделал выгрузку данных из ТиСа 7.7 в УТ11

через КД ?
3 kobzon
 
16.03.14
14:04
(2) Ну через встроенный помощник перехода с тис на УТ.
4 vicof
 
16.03.14
14:04
(1) +1
5 ДенисЧ
 
16.03.14
14:04
//        Выборка.Клиент = Истина;
об = Выборка.ПолучитьОбъект();
об.Клиент = Истина;
        Попытка
                об.Записать();
6 kobzon
 
16.03.14
14:10
(5) Так?

Функция ИзменитьКлиента(СтруктураСправочника)

        Перем НовыйКонтрагент,СпрПользователи;

        СпрКонтрагенты = Справочники.Партнеры;
        Выборка = СпрКонтрагенты.Выбрать();
        Пока выборка.Следующий() = 1 Цикл

     //   Выборка.Клиент = Истина;
     об = Выборка.ПолучитьОбъект();
об.Клиент = Истина;
        Попытка
                об.Записать();
                Возврат 1;
        Исключение
                Возврат 0;
        КонецПопытки;
КонецЦикла;
КонецФункции
7 zak555
 
16.03.14
14:20
(3) он разве не на кд основан ?
8 kobzon
 
16.03.14
14:26
(7) Скорее всего на нем. Там просто сначала из 7-ки выгружаешь с помощью обработки, а потом с помощью другой обработки загружаешь. Правила обмена прилагаются уже готовые.
9 zak555
 
16.03.14
14:36
(8) таи должна быть логика проставления данных птицек
10 zak555
 
16.03.14
14:36
*птичек
11 kobzon
 
16.03.14
14:40
(9) Ну я когда делал не знал про то что в УТ дублирование справочников. А то бы конечно заранее подумал.
12 kobzon
 
16.03.14
14:46
Ну вроде сделал. С этим куском чето не то было:
        Попытка
                об.Записать();
                Возврат 1;
        Исключение
                Возврат 0;
        КонецПопытки;

Оставил только об.Записать();

Ну и условие прописал:
Если об.ПрочиеОтношения = Истина Тогда
об.ПрочиеОтношения = Ложь;     
об.Клиент = Истина;
КонецЕсли;

А то блокировка получалась.

Всем спасибо! ДенисЧ - Отдельная благодарность!))