Имя: Пароль:
1C
1С v8
Как изменить номер документа
,
0 Dzhos
 
10.07.14
14:57
Создал Внешнюю Обработку
Которая изменяет код номера Счет-фактуры-выданной.

Номер где начинает с "СФ-" нужно заменить на "000"
по определенной дате.

в Самом предприятие она изменяет только вручную через
Дейстиве-Редактировать Номер

Так Вот
как изменить его программно ?

Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
    Выборка = Документы.СчетФактураВыданный.Выбрать(НачДата,КонДата);
    ТЗДокумента   = новый ТаблицаЗначений;
        
    Пока Выборка.Следующий() Цикл
        НоваяСтрока = ТЗДокумента.Добавить();
        
        Префикс = Лев (Выборка.Номер,3) ;
        Если   Префикс = "СФ-" Тогда
            
            НовыйНомер = "000" + Сред(Выборка.Номер,4);
            //РаботаСДиалогами.ДобавитьВМенюДействияКнопкуРедактированияНомера(Кнопка, НовыйНомер);
        Выборка.Номер = НовыйНомер;
        КонецЕсли;
            
        ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
        
    КонецЦикла;

КонецПроцедуры

Выходить ошибка

Поле объекта недоступно для записи (Номер)
как это обойти


Зарание спасибо)
1 Ёпрст
 
10.07.14
14:58
>>> Выборка.Номер = НовыйНомер;

вот этот бред выкини,ддля начала
2 Ёпрст
 
10.07.14
14:59
далее, получи объект из ссылки, присвой ему новый номер, запиши..
наслаждайся, кушай печенки
3 Dzhos
 
10.07.14
14:59
Ок(1)
4 Dzhos
 
10.07.14
14:59
Спасибо шя попробую(2)
5 Kamas
 
10.07.14
15:00
(0) 1 зачем тз(просто хочу знать)
2 где мы получаем объект (Так для справки )
3 чем объект отличается от выборки
6 barrgand
 
10.07.14
15:01
(0) Есть обработка по изменению номеров документов. Воспользуйся ей, а то сейчас наизменяешь..
7 Dzhos
 
10.07.14
15:03
не знаю))(5)
новичок еще я
8 Dzhos
 
10.07.14
15:08
Как получить объект из ссылки?(2)
9 tdm
 
10.07.14
15:10
(8) ПолучитьОбъект();
10 tdm
 
10.07.14
15:10
(6) +100500, отрыть ЛЮБОЙ итс и воспользоваться универсаной обработкой
11 Dzhos
 
10.07.14
15:23
Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
    Выборка = Документы.СчетФактураВыданный.Выбрать(НачДата,КонДата);
    // Документы.СчетФактураВыданный.
    Сообщить("Поиск Документа по номера...");
    Пока Выборка.Следующий() Цикл
        
        
        Префикс = Лев (Выборка.Номер,3) ;
        Если   Префикс = "СФ-" Тогда
            
            НовыйНомер = "000" + Сред(Выборка.Номер,4);
            ДокОбъект = Выборка.ПолучитьОбъект();
            ДокОбъект.Номер = НовыйНомер ;
            ДокОбъект.Записать();
        КонецЕсли;
    КонецЦикла;
     Сообщить("Finish");
КонецПроцедуры

Спасибо ребят)
12 Холодильник
 
10.07.14
15:25
(11) как должно выглядеть настоящее спасибо: http://finewine.ru/images/products/images/14754/cognac-delamain-pale-dry-x-o-grande-champagne_original.jpg
13 Dzhos
 
10.07.14
15:54
За каждое полученное спасибо можно в рай попасть))(12)
14 tdm
 
10.07.14
16:02
(13) универсальную таки всё равно гляньте ;)
освоишься и будешь в пару кликов подобные (11) вещи творить...а там еще и произвольный код обработчика писать можно
15 Dzhos
 
10.07.14
22:27
Хорошо)
Благодарю за совет(14)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс