Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печатная форма счёт фактура, проблема вывода строк, Бугалтерия 1С версия 7.7 
:(
    Опции темы
WTF4XZ
  Дата 13.7.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 16.4.2007
Где: 63 Самара

Репутация: нет
Всего: 5



Суть проблемы кратко:

Что делаю:
Создаю счёт фактуру (выданные), с двумя позициями (строками) имеющие различные значения.
Нажимаю печать, выводится предварительный просмотр
И вот первый глюк, заполнены столбцы только 1, 10, 11. (Наименование, Страна происхождение (тама идёт ----), Таможня (так же -----) )
остальная часть пустая....
Заходим в форму, и жмахаем на любом значение в одной из строк, снова нажимаем на печать и...
теперь вроде бы строки и заполнены, только вот с 2 по 9 столбцы в строках идентичны по значениям, хотя строка итого показывает правильное значение.

*конфигурация изменена очень сильно, перегнал в типовую конфигурацию модуль счёт фактура, глюк всё равно не проходит. Где мне искать и где править? Если нужен код какого либо модуля предоставлю, только скажите какого нано.
--------------------
Я создание эмоций, создание способные чувствовать не только эмоции людей но и машин.Я EMO_CODER != FALSE;Никто не знает о нас, но мы есть, мы живём, мы кодим и мы... чувствуем, ипспытываем такие эмоции.. сильнее любого бинарника, мощнее любого ассемблера.
PM MAIL ICQ GTalk Jabber   Вверх
Naghual
Дата 13.7.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 5
Всего: 49



Для начала, необходим код процедуры печати и описание структуры документа (реквизитов).


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
WTF4XZ
Дата 13.7.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 16.4.2007
Где: 63 Самара

Репутация: нет
Всего: 5



Заполнение строк

Код

    Таб.ВывестиСекцию("Шапка"); 
        
    // Печать строк документа.
    ТабДок.ВыбратьСтроки();
    Ном=0;
    Пока ТабДок.ПолучитьСтроку()=1 Цикл
        Ном=Ном+1;
        Если ТипЗначения(ТабДок.Товар) = 2 Тогда
            Наименование = ТабДок.Товар;
            ЕдиницаИзмерения = "";
            
        ИначеЕсли ТабДок.Товар.Вид() = "Номенклатура" Тогда
            Наименование = ?(ПустаяСтрока(ТабДок.Товар.ПолнНаименование)=1, ТабДок.Товар.Наименование, ТабДок.Товар.ПолнНаименование);
            ЕдиницаИзмерения = ТабДок.Товар.ЕдиницаИзмерения;
            
        ИначеЕсли ТабДок.Товар.Вид() = "ОсновныеСредства" Тогда
            Наименование = ТабДок.Товар.Наименование;
            ЕдиницаИзмерения = "";
            
        ИначеЕсли ТабДок.Товар.Вид() = "НематериальныеАктивы" Тогда
            Наименование = ТабДок.Товар.Наименование;
            ЕдиницаИзмерения = "";
            
        ИначеЕсли ТабДок.Товар.Вид() = "Материалы" Тогда
            Наименование = ТабДок.Товар.Наименование;
            ЕдиницаИзмерения = ТабДок.Товар.ЕдиницаИзмерения;
        КонецЕсли;          
        Если ПустоеЗначение(ЕдиницаИзмерения) = 1 Тогда
            ЕдиницаИзмерения = "-----";
        КонецЕсли;        
        Если ПустоеЗначение(ТабДок.ГТД) = 1 Тогда
            НомерГТД_Н = "-----";
            СтранаН = "-----";
        Иначе
            НомерГТД_Н = ТабДок.ГТД;
            Если ПустаяСтрока(ТабДок.ГТД.СтранаПроисхождения) = 1 Тогда
                СтранаН = "-----";
            Иначе
                СтранаН = ТабДок.ГТД.СтранаПроисхождения;
            КонецЕсли;
        КонецЕсли;
        Если НДСпоСтавкеНольПроцентов = 1 Тогда
            ПредставлениеСтавкиНДС = "0%";
        Иначе
            Если (ТабДок.СтавкаНДС.Выбран() = 1) и (ТабДок.СтавкаНДС.Ставка > 0) Тогда
                ПредставлениеСтавкиНДС = "" + ТабДок.СтавкаНДС.Ставка + "%";
                
                Если СуммаНДСопределяетсяРасчетнымМетодом = 1 Тогда
                    ПредставлениеСтавкиНДС = ПредставлениеСтавкиНДС + " / 1" + ТабДок.СтавкаНДС.Ставка + "%";
                КонецЕсли;
                
            Иначе
                ПредставлениеСтавкиНДС = "Без НДС";
            КонецЕсли;
        КонецЕсли;
        Если ТабДок.Количество = 0 Тогда
            ПечКоличество = "-----";
            ПечЦена          = "-----";
        ИначеЕсли (ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.Аванс)
        ИЛИ (ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.СуммоваяРазница) 
        ИЛИ (Аванс = 1) Тогда
            ПечКоличество = "-----";
            ПечЦена          = "-----";
        Иначе                 
            ПечКоличество = Формат(ТабДок.Количество, "Ч015.3");
            Если ТабДок.Цена = 0 Тогда
                ПечЦена          = "-----";
            Иначе                
                ПечЦена = Формат(ТабДок.Цена, "Ч15.2-");
            КонецЕсли;
        КонецЕсли;
        Если (ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.Аванс)
        ИЛИ (ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.СуммоваяРазница) 
        ИЛИ (Аванс = 1) Тогда
            ПечСумма = "-----";
        ИначеЕсли ТабДок.Сумма = 0 Тогда
            ПечСумма = "-----";
        Иначе                  
            ПечСумма = Формат(ТабДок.Сумма, "Ч15.2-");
        КонецЕсли;

        ПечАкциз = ?(ТабДок.АкцизСумма=0, "-----", Формат(ТабДок.АкцизСумма,"Ч15.2-"));
                
        ПечНДС = ?(ТабДок.НДС=0,"-----", Формат(ТабДок.НДС,"Ч15.2-"));
        ПечВсего = ?(ТабДок.Всего=0,"-----", Формат(ТабДок.Всего,"Ч15.2-"));
        ПечИтогНДС = ?(ТабДок.Итог("НДС")=0,"-----", Формат(ТабДок.Итог("НДС"),"Ч15.2-"));
        печИтогВсего = ?(ТабДок.Итог("Всего")=0,"-----", Формат(ТабДок.Итог("Всего"),"Ч15.2-"));

        
        
        Таб.ВывестиСекцию("Строка");
    КонецЦикла;

    Таб.ВывестиСекцию("Подвал");

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


Выгрузка в таблицу

Код

    // Выгрузим табличную часть документа в таблицу значений.
    Таб = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(Таб);
    Таб.НоваяКолонка("ВидТовара", "Строка");
    Таб.НоваяКолонка("НДСВал", "Число");
    Таб.НоваяКолонка("АкцизВал", "Число");
    Таб.НоваяКолонка("НПВал", "Число");

    
    НомСтроки = 1;
    Пока НомСтроки <= Таб.КоличествоСтрок() Цикл
        Таб.ПолучитьСтрокуПоНомеру(НомСтроки);
        Если ТипЗначенияСтр(Таб.Товар) = "Справочник" Тогда
            Таб.ВидТовара = Таб.Товар.Вид();
            Если Таб.Товар.Вид() = "Номенклатура" Тогда
                Если (Таб.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар)
                   и (Таб.Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии) Тогда
                    Таб.УдалитьСтроку(); // для товаров на комиссии проводок не формируем
                    Продолжить;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
               
        Если ПустоеЗначение(Таб.Счет) = 1 Тогда
            Если ((Таб.НДС <> 0) и (ОтключитьНДС = 0) и (Аванс = 0))
             или ((Таб.АкцизСумма <> 0) и (ОтключитьАкциз = 0))
             или ((Таб.НП <> 0) и (ОтключитьНП = 0) и (Аванс = 0)) Тогда
                ТекстСообщения = "На закладке ""Корр.счет и номер ГТД"" в строке №" + НомСтроки + " не указан корр. счет.";
                глНеПроводить(Контекст, ТекстСообщения);
                Возврат;
            КонецЕсли;
        КонецЕсли;
        
        НомСтроки = НомСтроки + 1;
    КонецЦикла;
    
    ДоляОплаченнойОтгрузки = ?(ЗадолженностьВал = 0, 0, СуммаЗачетаВал / ЗадолженностьВал);
    КурсОплаты = ?(СуммаЗачетаВал = 0, 0, Окр(СуммаЗачетаРуб / СуммаЗачетаВал, 4, 1));
    КурсСФ = ?(((ЦеныВДоговоре = 2) и (Аванс = 0)) или (ОплатаДоговора = 2), Курс / Кратность, 1);
    
    Если ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.СуммоваяРазница Тогда
        КурсСФ = 1;
    КонецЕсли;
    
    Таб.ВыбратьСтроки();
    Пока Таб.ПолучитьСтроку()= 1 Цикл
        
        Если ЦеныВДоговоре = 2 Тогда
            Таб.НДСВал = Таб.НДС;
            Таб.АкцизВал = Таб.АкцизСумма;
            Таб.НПВал = Таб.НП;
        КонецЕсли;

        ОплСумма = Таб.Сумма * ДоляОплаченнойОтгрузки;
        Таб.Сумма = Окр(ОплСумма * КурсОплаты + (Таб.Сумма - ОплСумма) * КурсСФ, 2, 1);
        
        ОплНДС = Таб.НДС * ДоляОплаченнойОтгрузки;
        Таб.НДС = Окр(ОплНДС * КурсОплаты + (Таб.НДС - ОплНДС) * КурсСФ, 2, 1);
        
        ОплНП = Таб.НП * ДоляОплаченнойОтгрузки;
        Таб.НП = Окр(ОплНП * КурсОплаты + (Таб.НП - ОплНП) * КурсСФ, 2, 1);
        
        ОплАкцизСумма = Окр(Таб.АкцизСумма * ДоляОплаченнойОтгрузки, 2, 1);
        Таб.АкцизСумма = Окр(ОплАкцизСумма * КурсОплаты + (Таб.АкцизСумма - ОплАкцизСумма) * КурсСФ, 2, 1);
        
    КонецЦикла;


Добавлено через 6 минут и 56 секунд
Прогонял в отладчике на значения, по формирование строк в печатной форме, значения верные,
но вот как только закончил, прогнал последнюю строку, так её значением и заполнил предыдущие,
хотя сумма посчиталась правильно прихожу к выводу что баг именно в этом месте, где формирует на печать.
--------------------
Я создание эмоций, создание способные чувствовать не только эмоции людей но и машин.Я EMO_CODER != FALSE;Никто не знает о нас, но мы есть, мы живём, мы кодим и мы... чувствуем, ипспытываем такие эмоции.. сильнее любого бинарника, мощнее любого ассемблера.
PM MAIL ICQ GTalk Jabber   Вверх
WTF4XZ
Дата 16.7.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 16.4.2007
Где: 63 Самара

Репутация: нет
Всего: 5



Можете вкратце объяснить, как идёт формирование печатной формы счёта фактуры (выданной), без конкретных привязок, оперируя только названием модулей, тоесть не писать код а примерный алгоритм, что и откуда (мне хотелось бы понять куда эти связи уходят из текущей формы).
--------------------
Я создание эмоций, создание способные чувствовать не только эмоции людей но и машин.Я EMO_CODER != FALSE;Никто не знает о нас, но мы есть, мы живём, мы кодим и мы... чувствуем, ипспытываем такие эмоции.. сильнее любого бинарника, мощнее любого ассемблера.
PM MAIL ICQ GTalk Jabber   Вверх
SaschaL
Дата 17.7.2008, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Вам нужно объяснить как формируется печатная форма, принцип формирования, примерный алгоритм или вам нужно знать как формируется печатная форма имеено счета фактуры выданного?
PM MAIL ICQ   Вверх
WTF4XZ
Дата 20.7.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 16.4.2007
Где: 63 Самара

Репутация: нет
Всего: 5



SaschaL, именно счёт фактуры выданного. Поскольку в СФ полученных такой глюк не наблюдается. В общих чертах алгоритм (лучше не кодом а словами)
--------------------
Я создание эмоций, создание способные чувствовать не только эмоции людей но и машин.Я EMO_CODER != FALSE;Никто не знает о нас, но мы есть, мы живём, мы кодим и мы... чувствуем, ипспытываем такие эмоции.. сильнее любого бинарника, мощнее любого ассемблера.
PM MAIL ICQ GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.