Имя: Пароль:
1C
1C 7.7
v7: Сброс дробного количества при выполнении метода Провести()
0 slimuz
 
07.09.20
07:01
Добрый день.
При выполнении проведения методом Провести() в обработке, происходит сброс дробного количества (реквизит количество, точность 3), т.е. сохраняет только округленное кол-во до запятой. Обработка выполняет проведение в док. счет-фактура.
1 Kigo_Kigo
 
07.09.20
07:38
Смотри ОбработкаПроведения()
2 Злопчинский
 
07.09.20
13:08
(0) "происходит сброс дробного количества (реквизит количество, точность 3)"
1. либо кривые руки программитса (см.п.1)
2. либо не надо путать разрядность поля на форме с разрядностью реквизита в регистре/проводке.
если будет тупняк - стучись в скайп zlopun, посмотрим
3 slimuz
 
08.09.20
08:30
(1) А можете наглядно показать как применить эту обработку в этой части обработки:

    Протокол.ДобавитьСтроку("Счета-фактуры");
    СФ=СоздатьОбъект("Документ.СчетФактура");
    СФ.ВыбратьДокументы(Дата1,Дата2);
    Флаг=0 ;
    ФлагАВ=0 ;
    Пока СФ.ПолучитьДокумент()=1 Цикл
        Состояние("Ищу и провожу счета-фактуры "+СФ.НомерДок);
        Если Список.Принадлежит(СФ.Склад)=1 Тогда
            Если СФ.Провести(,"Авт")=1 Тогда
                СписокПроведенных.ДобавитьЗначение(СФ.ТекущийДокумент());
                Номер=СФ.НомерДок ;
                Протокол.ДобавитьСтроку("/СФ[Номер  ] Проведен");
                //Проведение актов возврата
                АВ.ВыбратьПодчиненныеДокументы(СФ.ТекущийДокумент(),Дата2,СФ.ТекущийДокумент());
                Пока АВ.ПолучитьДокумент()=1 Цикл
                    Если (АВ.Вид()="АктВозврата") Тогда
                        Если (АВ.ПроводитьПриЗаписи=0) Тогда
                            Если АВ.Провести(,"Авт")=1 Тогда
                                Номер=АВ.НомерДок ;
                                Протокол.ДобавитьСтроку("/  АВ[Номер] Проведен");
                                СписокПроведенных.ДобавитьЗначение(АВ.ТекущийДокумент());
                            Иначе
                                Протокол.ДобавитьСтроку("АВ"+СокрЛ(АВ.НомерДок)+"  Не проведен");
                                ФлагАВ=1 ;
                                Прервать ;
                            КонецЕсли;
                        КонецЕсли ;
                    КонецЕсли ;
                КонецЦикла ;
                Если ФлагАВ=1 Тогда
                    Прервать ;
                КонецЕсли;
            Иначе
                Протокол.ДобавитьСтроку("СФ"+СокрЛ(СФ.НомерДок)+"  Не проведен");
                Флаг=1 ;
                Прервать ;
            КонецЕсли;
        КонецЕсли ;
    КонецЦикла;
4 Builder
 
08.09.20
09:25
(3) В этой части обработки эту обработку никак не применить.
Применить тут: Документ.СчетФактура - Модуль документа
5 HawkEye
 
08.09.20
09:29
(4)
"Замечание:
Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения."
6 slimuz
 
08.09.20
09:34
(4) А в модуле документа применена. При проведении кнопкой док. сброса значений после запятой реквизита кол-ва не происходит, сброс происходит при проведении с помощью обработки
7 Ёпрст
 
08.09.20
10:25
(6) у тя в модуле заложен свой механизм проведения, коли параметром что-то в модуль передаешь в метод Провести()
8 Ёпрст
 
08.09.20
10:26
аот и открой модуль проведения дока и сымотри, че там
9 Builder
 
08.09.20
10:36
(5) Имелось ввиду что надо искать проблемы (0) не в (3), а в модуле документа.
10 slimuz
 
08.09.20
13:38
(9) Разжевали мне, разобрался. Благодарю)) (7) (9)
11 Злопчинский
 
08.09.20
15:02
(3) блин капец сколько лестниц если понастроили... попроще надо писать...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn