Помогите разобраться. На печать Налог.накладн. выводится номер с нулями, провел изменения, все должно нормально отображаться без нулей.
Вот мой мкод:
Перем СтарыйКонтрагент;
Перем СтараяДата;
Перем НачальнаяДатаДокумента;
Перем ДатаДоговора;
Перем НомерДоговора;
Перем Дог;
//*****************************************************************************
// "служебные" функции и процедуры
//*****************************************************************************
Функция ЗаголовокФормы()
Перем Заголовок, Название;
Заголовок = "Налоговая накладная ";
Название ="Налоговая накладная №";
Заголовок = Заголовок + глЗаголовок(Контекст);
Форма.Заголовок(Заголовок);
Возврат Название;
КонецФункции //ЗаголовокФормы
//******************************************************************************
Процедура ОбновитьНадписи()
Форма.ТекстВалюты.Заголовок(глСтрокаВалюты(Контекст));
Форма.ТекстОснования.Заголовок(СокрП(Основание));
КонецПроцедуры
Процедура Взаиморасчеты()
глПоказатьДолг(Контекст, Контрагент, "Продажа");
КонецПроцедуры
// ===============================
Процедура ИзмДатаДок()
глПриИзмененииДатыДокумента(Контекст, СтараяДата);
КонецПроцедуры
//*****************************************************************************
Процедура ИзмКонтрагент() // Процедура при выборе Контрагента в докумнете
Если Контрагент.Выбран()=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);
//*****************************************************************************
//Инициализирум список действий по кнопке "Действия"
СписокДействий = глПолучитьСписокДействий("
|ТоварныйСостав,
|СтруктураПодчиненности,
|ДвиженияДокумента,
|ВводНаОсновании,
|ОткрытьВЖурнале,
|Подчиненные,
|ИзмКомментария");