Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Помогите с номером Налоговой накладной , нули впереди номера          
firefox1984 Подменю пользователя
сообщение 10.06.11, 10:30
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 45
Из: Украина
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день.
Помогите разобраться. На печать Налог.накладн. выводится номер с нулями, провел изменения, все должно нормально отображаться без нулей.
Вот мой мкод:
Перем СтарыйКонтрагент;
Перем СтараяДата;

Перем НачальнаяДатаДокумента;    
Перем ДатаДоговора;  
Перем НомерДоговора;    
Перем Дог;
//*****************************************************************************
// "служебные" функции и процедуры

//*****************************************************************************
Функция ЗаголовокФормы()
    Перем Заголовок, Название;
    Заголовок = "Налоговая накладная ";
    Название ="Налоговая накладная №";
    
    Заголовок = Заголовок + глЗаголовок(Контекст);
    
    Форма.Заголовок(Заголовок);    
    Возврат Название;
КонецФункции //ЗаголовокФормы

//******************************************************************************
Процедура ОбновитьНадписи()
    Форма.ТекстВалюты.Заголовок(глСтрокаВалюты(Контекст));
    Форма.ТекстОснования.Заголовок(СокрП(Основание));
КонецПроцедуры

Процедура Взаиморасчеты()
    глПоказатьДолг(Контекст, Контрагент, "Продажа");
КонецПроцедуры                    

// ===============================
Процедура ИзмДатаДок()
    глПриИзмененииДатыДокумента(Контекст, СтараяДата);
КонецПроцедуры

//*****************************************************************************
Процедура ИзмКонтрагент() // Процедура при выборе Контрагента в докумнете
    Если Контрагент.Выбран()=1 Тогда                                      
        Если СтарыйКонтрагент <> Контрагент Тогда
            // изменили Контрагента
            // очистим договор
            Договор = ПолучитьПустоеЗначение("Документ.Договор");
            Если Константа.ПодставлятьОсновнойДоговор = Да Тогда
                // подставим договор по умолчанию                                
                Если ПустоеЗначение(Контрагент.ОсновнойДоговорТорг) = 0 Тогда
                    Если Фирма = Контрагент.ОсновнойДоговорТорг.Фирма Тогда
                        Договор = Контрагент.ОсновнойДоговорТорг;
                    КонецЕсли;    
                КонецЕсли;    
            КонецЕсли;
        КонецЕсли;
    Иначе
        //Не выбран Контрагент - не имеет смысла показывать глубину и дату оплаты и договор
        Договор = ПолучитьПустоеЗначение("Документ.Договор");
    КонецЕсли;
    // Формирует и показывает дату оплаты
    СтарыйКонтрагент = Контрагент;
    ОбновитьНадписи();
КонецПроцедуры    
                                        

//*****************************************************************************
Процедура УстКатегориюЦен()
    Если ПустоеЗначение(КатегорияЦен)=1 Тогда
        Если ПустоеЗначение(Контрагент)=0 Тогда
            КатегорияЦен = Контрагент.КатегорияЦен;    
        Иначе
            КатегорияЦен = Автор.КатегорияЦен;
        КонецЕсли;        
    КонецЕсли;          
КонецПроцедуры    


// ===============================
Процедура ВводНового(Скопирован)

    глЗаполнитьШапку(Контекст);
    Если Скопирован=1 Тогда    //копирование документа
        Возврат;
    КонецЕсли;

    ДатаДок=РабочаяДата();
    Если ПустоеЗначение(глАктивныйДоговор) = 0 Тогда
        Контрагент = глАктивныйДоговор.Владелец;
        Договор = глАктивныйДоговор;
        КатегорияЦен = Контрагент.КатегорияЦен;
        СтарыйКонтрагент = Контрагент;
    Иначе
        Контрагент=Константа.ОсновнойПокупатель;
        ИзмКонтрагент();
    КонецЕсли;
    
    Валюта=Константа.ОсновнаяВалютаПродажи;
    Дата_Курса = ДатаДок;
    Если ПустоеЗначение(Валюта) = 1 Тогда
        Валюта = Гривня;
    КонецЕсли;
    Курс=глКурсДляВалюты(Валюта,Дата_Курса);

    СтавкаНДС = Константа.ОсновнаяСтавкаНДС;
       УстКатегориюЦен();
    
КонецПроцедуры

// ===============================
Процедура ПриЗаписи()
    Если глМожноЗаписатьДокумент(Контекст)=0 Тогда
        СтатусВозврата(0);                        
    ИначеЕсли глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
        СтатусВозврата(0);
    КонецЕсли;
КонецПроцедуры

//*****************************************************************************
Процедура ОбработкаПодбора(Выб) //Предопределенная процедура
    глПриОбработкеПодбора(Выб,Контекст);
КонецПроцедуры //Обработка подбора

//******************************************************************************
Процедура ПриВводеНаОсновании(ДокОснование)        

    
    Если ПустоеЗначение(ДокОснование)=1 Тогда
        Возврат;
    КонецЕсли;
    
    Содержание="По "+ДокОснование.Вид()+" № " + ДокОснование.НомерДок + " от " + ДокОснование.ДатаДок;

    глЗаполнитьШапкуНаОсн(Контекст,ДокОснование);
    
    ВидОснования = ДокументОснование.Вид();  

    // заполним текстовые реквизиты по-украински
    Если ВидОснования = "Счет" Тогда
        УсловиеПродажи = "Рахунок № "+ДокументОснование.НомерДок+" вiд "+ДокументОснование.ДатаДок;
    ИначеЕсли ВидОснования = "РасходнаяНакладная" Тогда
        УсловиеПродажи = "Накладна № "+ДокументОснование.НомерДок+" вiд "+ДокументОснование.ДатаДок;
    ИначеЕсли ВидОснования = "ОказаниеУслуг" Тогда
        УсловиеПродажи = "Акт № "+ДокументОснование.НомерДок+" вiд "+ДокументОснование.ДатаДок;
    КонецЕсли;
              
    
    ФормаРасчетов = "оплата з поточного рахунку";
    Если ВидОснования = "Счет" Тогда
        ФормаРасчетов = "оплата з поточного рахунку";
    ИначеЕсли (ВидОснования = "РасходнаяНакладная") или (ВидОснования = "ОказаниеУслуг") Тогда
        Если ДокументОснование.ВидТорговли = Перечисление.ВидыТорговли.Нал Тогда
            ФормаРасчетов = "готiвка";
        ИначеЕсли ДокументОснование.ВидТорговли = Перечисление.ВидыТорговли.Бартер Тогда
            ФормаРасчетов = "бартерна угода";
        КонецЕсли;
    КонецЕсли;
    
    Если ДокОснование.Вид() <> "Договор" Тогда
        глСкопироватьТовСостав(Контекст,ДокОснование);
    КонецЕсли;
                                              
       УстКатегориюЦен();
КонецПроцедуры

// ===============================
Процедура ВводНаОсновании(ДокОснование)
    Если Вопрос("Для корректного ввода налоговых документов необходимо
        |использовать 'Автоматический ввод документов' в отчете
        |'Книга продаж' ('Книга приобретений') или 'Действия'/'Ввод
        |налоговох документов'. Продолжить ?",4) = 7 тогда
            СтатусВозврата(0);
    КонецЕсли;        
    Автор = глПользователь;
    ДокВид=ДокОснование.Вид();
    Если Найти("РасходнаяНакладная/РасходнаяРеализатора/Счет/РасходнаяРозничная", ДокВид) > 0 Тогда
        ДокументОснование = ДокОснование;
        Валюта = ДокОснование.Валюта;
        Дата_Курса = ДокОснование.Дата_Курса;
        Курс = ДокОснование.Курс;
        ДатаДок = РабочаяДата();
        СтавкаНДС = Константа.ОсновнаяСтавкаНДС;
        ПриВводеНаОсновании(ДокОснование);
        СтарыйКонтрагент = Контрагент;
        ИзмКонтрагент();
    Иначе
        Предупреждение("Налоговую накладную нельзя вводить на основании выбранного вида документа!");
        СтатусВозврата(0);
    КонецЕсли;
    
КонецПроцедуры

Процедура Печать(БыстраяПечать=0) Далее

//============================
Процедура ПриОткрытии()
    
    НачальнаяДатаДокумента = ДатаДок;
    глПроверкаРазрешенияРедактирования(Контекст);
    Форма.кПравоваяПоддержка.Видимость(глВидимостьПравовойПоддержки);
    
    Если Форма.ТолькоПросмотр()=1 Тогда
        Форма.кнОК.Доступность(0);
        Форма.кнПровести.Доступность(0);
        Форма.кнДействия.Доступность(0);
        
        Форма.кнПодборПоКаталогу.Доступность(0);
        
        Форма.кнОснование.Доступность(0);
        
        Форма.кнВалюта.Доступность(0);
    Иначе
        Форма.КнопкаПоУмолчанию("кнОК");
    КонецЕсли;    
    
    ПриЗаписиПерепроводить(1);
    
    ОбновитьНадписи();
    
    Если ПустоеЗначение(Форма.Параметр)=0 Тогда
        Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда
            Если ВРег(Форма.Параметр)="БЫСТРАЯПЕЧАТЬ" Тогда
                Печать(1);
                СтатусВозврата(0);
                Возврат;                            
            КонецЕсли;    
        КонецЕсли;    
    КонецЕсли;
КонецПроцедуры

Процедура ВыборФирмы()
    // по кнопке редактирования параметров фирмы в докумнете
    Перем КонтекстДокумента;
    КонтекстДокумента = глВзятьКонтекст(Контекст);
    ОткрытьФормуМодально("Обработка.ИнформацияОфирме", КонтекстДокумента);
    ОбновитьНадписи();
КонецПроцедуры    

    
//*****************************************************************************
Процедура ВыборОплаты()
    // Процедура по кнопке редактирования параметров оплаты в докумнете
    Перем КонтекстДокумента;
    КонтекстДокумента = глВзятьКонтекст(Контекст);
    ОткрытьФормуМодально("Обработка.ИнформацияОценах", КонтекстДокумента);
    ОбновитьНадписи();
КонецПроцедуры    

//*****************************************************************************
Процедура ВыборОснования()
    // Процедура по кнопке редактирования основания в докумнете
    Перем КонтекстДокумента;
    КонтекстДокумента = глВзятьКонтекст(Контекст);
    ОткрытьФормуМодально("Обработка.ОснованиеДокумента", КонтекстДокумента);
    // Могли изменить Контрагента
    ОбновитьНадписи();
КонецПроцедуры    

//*****************************************************************************
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг)
    Флаг=0;
    Если Рекв="Фирма" Тогда
        ВыборФирмы();
    Иначе
        Флаг=1;
    КонецЕсли;
КонецПроцедуры
                                          
// ===============================
Функция ФРМЦена(ЧислЗнач)
    // без разделения на Триады, не меньше двух и не больше пяти знаков после запятой
    
    Стр=СокрЛ(Формат(Окр(ЧислЗнач,5),"Ч15.5"));
    Для Инд=1 по 3 Цикл
        Если Прав(Стр,1)="0" Тогда
            Стр = Лев(Стр,СтрДлина(Стр)-1);
        Иначе
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Возврат Стр;
КонецФункции

// ===============================
Функция ФРМСумма(ЧислЗнач)
    // без разделения на Триады
    Возврат СокрЛ(Формат(ЧислЗнач,"Ч15.2"));
КонецФункции

//============================
Процедура Печать(БыстраяПечать=0)
    
Перем ПечЦенаБезНДС, ПечСуммаБезСкидки, ПечСуммаБезТранс, ПечСуммаТранс, ПечВозвТара,
    ПечСуммаНадбавки, ПечСуммаСкидки, ПечИтогСуммаБезНДС, ПечИтогНДС, ПечИтогСуммаСНДС, ПечВсего, НФ;

    Фирма.ИспользоватьДату(ДатаДок);
    //ФирмаНалогНомер = Фирма.ИНН;
    //ФирмаНомСвид = Фирма.НомерСвидетельства;
    ФирмаНалогНомер = Прав("           " + СокрЛП(Фирма.ИНН),12);
    ФирмаНомСвид = Прав("         " + СокрЛП(Фирма.НомерСвидетельства),10);
    
    ПечНомерДок = глНомерБезПрефикса(Контекст);
    ПечНомерДок = Прав("      "+ПечНомерДок,7);
    
        Если ДатаДок < Дата ("10.01.2011") Тогда
        КонтрагентНалогНомер = ?(ПустоеЗначение(Контрагент.ИНН)=1,"ХХХХХХХХХХХХ",Контрагент.ИНН);  
        КонтрагентНалогНомер = "000000000000";
        КонтрагентНомСвид = ?(ПустоеЗначение(Контрагент.НомерСвидетельства)=1,"ХХХХХХХХХХХХ",Контрагент.НомерСвидетельства);
        КонтрагентНомСвид    = "0000000000";
    Иначе    
        КонтрагентНалогНомер = ?(ПустоеЗначение(Контрагент.ИНН)=1,"           0", Прав("            " + СокрЛП(Контрагент.ИНН),12));
        КонтрагентНомСвид = ?(ПустоеЗначение(Контрагент.НомерСвидетельства)=1,  "         0", Прав("         " + СокрЛП(Контрагент.НомерСвидетельства),10));
    КонецЕсли;
    
    Приложение1 = "";
                                        

    
    ЧМГ=Формат(ДатаДок,"ДГГГГММДД");  
    Дог = Контрагент.ОсновнойДоговорТорг;
    ДатаДоговора=Формат(Дог.ДатаДок,"ДГГГГММДД");  
    НомерДоговора=Дог.НомерДок;
    
    Таб = СоздатьОбъект( "Таблица" );
        
    Если (Валюта <> Гривня)
    И (Контрагент.ВидКонтрагента = Перечисление.ВидыКонтрагентов.Нерезидент) Тогда
        // Экспорт
        Таб.ИсходнаяТаблица("НДСЭкспорт");
    Иначе    
        Если СтавкаНДС = Перечисление.ЗначенияНДС.БезНДС Тогда
            Таб.ИсходнаяТаблица("БезНДС");
        ИначеЕсли СтавкаНДС = Перечисление.ЗначенияНДС.ЛьготнаяСтавкаНДС Тогда
            Таб.ИсходнаяТаблица("НДС0");
        Иначе    
            Если ДатаДок < Дата ("10.01.2011") Тогда
                Таб.ИсходнаяТаблица("НДС20");  
            Иначе
                Таб.ИсходнаяТаблица("НДС20_2011");        
            КонецЕсли;    
        КонецЕсли;                                                     
    КонецЕсли;
    
//    ОбщСуммаНадбавки = 0;
//    ОбщСуммаСкидки = 0;

    Для Страница = 1 По 2 Цикл
        ОбщСуммаНадбавки = 0;
        ОбщСуммаСкидки = 0;
        Таб.ВывестиСекцию( "Пробел" );
        Если Страница = 1 Тогда
            Таб.ВывестиСекцию( "Оригинал" );
        ИначеЕсли Страница = 2 Тогда
            Таб.ВывестиСекцию( "ПерваяКопия" );
        Иначе
            Таб.ВывестиСекцию( "ВтораяКопия" );
        КонецЕсли;
        Таб.ВывестиСекцию( "Шапка" );

        ПерваяСтрока = 1;
        Таб.ВывестиСекцию( "РазделI1" );

        ТрансСуммаБезНДС = 0;
        ТрансСуммаСНДС = 0;
        ТрансНДС = 0;

        ИтСуммаБезСкидки = 0;
        ВыбратьСтроки();
        Пока ПолучитьСтроку() > 0 Цикл
            Если Товар.Транспорт = 0 Тогда
                ЕдИзм = Единица;
                СуммаБезСкидкиГрн = глПересчет(СуммаБезСкидки,Валюта,Курс,Гривня,Дата_курса);
                ПечСуммаБезСкидки = глФРМ3(СуммаБезСкидкиГрн,Гривня,0);
                ПечЦенаБезНДС = ФРМСумма(глПересчет(ЦенаБезНДС,Валюта,Курс,Гривня,Дата_курса));
                ИтСуммаБезСкидки = ИтСуммаБезСкидки + СуммаБезСкидкиГрн;
                Таб.ВывестиСекцию("РазделI2");
            Иначе
                ТрансСуммаБезНДС = ТрансСуммаБезНДС + СуммаБезНДС;
            КонецЕсли;        
            Если СуммаСкидки < 0 Тогда
                ОбщСуммаНадбавки = ОбщСуммаНадбавки - СуммаСкидки;                
            Иначе
                ОбщСуммаСкидки = ОбщСуммаСкидки + СуммаСкидки;                            
            КонецЕсли;
        КонецЦикла;
            
        ПечСуммаБезТранс = ФРМСумма(ИтСуммаБезСкидки);
        ПечСуммаТранс = ФРМСумма(глПересчет(ТрансСуммаБезНДС,Валюта,Курс,Гривня,Дата_курса));
        ПечВозвТара = ФРМСумма(глПересчет(СуммаВозвратнойТары,Валюта,Курс,Гривня,Дата_курса));
        
        ПечСуммаНадбавки = ФРМСумма(глПересчет(ОбщСуммаНадбавки,Валюта,Курс,Гривня,Дата_курса));
        ПечСуммаСкидки = ФРМСумма(глПересчет(ОбщСуммаСкидки,Валюта,Курс,Гривня,Дата_курса));
        
        ПечИтогСуммаБезНДС = ФРМСумма(глПересчет(Итог("СуммаБезНДС"),Валюта,Курс,Гривня,Дата_курса));
        ПечИтогНДС = ФРМСумма(глПересчет(Итог("СуммаСНДС")-Итог("СуммаБезНДС"),Валюта,Курс,Гривня,Дата_курса));
        ПечИтогСуммаСНДС = ФРМСумма(глПересчет(Итог("СуммаСНДС"),Валюта,Курс,Гривня,Дата_курса));
        ПечВсего = ФРМСумма(глПересчет(Итог("СуммаСНДС")+СуммаВозвратнойТары,Валюта,Курс,Гривня,Дата_курса));
        
        Таб.ВывестиСекцию( "РазделIВсего" );
//        Таб.ВывестиСекцию( "ТовТранс" );
        Таб.ВывестиСекцию( "ВозврТара" );
//        Таб.ВывестиСекцию( "Надбавка" );
//        Таб.ВывестиСекцию( "ВсегоПоI_II_IV" );
        Таб.ВывестиСекцию( "НДС" );
        Таб.ВывестиСекцию( "ОбщаяСумма" );
        Таб.ВывестиСекцию( "Подвал" );

        Если Страница <> 2 Тогда
            Таб.НоваяСтраница();
        КонецЕсли;

    КонецЦикла;

    Таб.Опции(0, 0, 0, 0);
    Таб.ПараметрыСтраницы(1,,,,,,,,);
    Если БыстраяПечать=1 Тогда
        Таб.ПараметрыСтраницы(,,,,,,,,,1,,);
        Таб.КоличествоЭкземпляров(Константа.ПечКолЭкзННПриБыстройПродаже);
        Таб.Напечатать(глОтладка);
    Иначе    
        Таб.Защита(Константа.ФлагЗащитыТаблиц);
        Таб.ТолькоПросмотр(1);
        Таб.Показать("Печать налоговой накладной","");
    КонецЕсли;
КонецПроцедуры
                                            
Форма.Товар.ВыполнятьФормулуТолькоПриИзменении(1);

//*****************************************************************************
//Инициализирум список действий по кнопке "Действия"      
СписокДействий = глПолучитьСписокДействий("
    |ТоварныйСостав,
    |СтруктураПодчиненности,
    |ДвиженияДокумента,
    |ВводНаОсновании,
    |ОткрытьВЖурнале,
    |Подчиненные,
    |ИзмКомментария");

Ardi Подменю пользователя
сообщение 10.06.11, 10:39
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата
//ПечНомерДок = Прав(" "+ПечНомерДок,7);
ПечНомерДок = Прав(" "+Число(ПечНомерДок),7);


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: firefox1984,

firefox1984 Подменю пользователя
сообщение 10.06.11, 10:47
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 45
Из: Украина
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо, помогдо

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.05.24, 19:00
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!