7.7 в книге покупок все отгрузки кидает в колонку 20%, как я условие не менял, оно все равно кидает в 2

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Kas-tet, 27 июн 2017.

  1. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    55
    Симпатии:
    1
    Баллы:
    29
    в книге покупок все отгрузки кидает в колонку 20%, как я условие не менял, оно все равно кидает в 20%, или условие не правильно написано или что-то мешает ему выполняться..
    Вот код изначальный книги покупок
    P.S. изменяемый код в конце...

    Код:
    ////////////////////////////////////////////////////////////////////////////////
    // ПЕРЕМЕННЫЕ МОДУЛЯ
    //
    Перем СписокДействий; // для механизма кнопки "Действия"
    Перем НачальнаяДатаДокумента; // для механизма контроля уникальности номеров
    
    ////////////////////////////////////////////////////////////////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
    //
    //******************************************************************************
    
    Функция ПодсказкаОДокументе()
    
        Возврат "Автоматическое формирование записей книги покупок
                |за период c " + Формат(НачМесяца(ДатаДок), "ДДДММГГГГ") +
                " по " + Формат(ДатаДок, "ДДДММГГГГ") + ".";
    
    КонецФункции // ПодсказкаОДокументе()
    
    //******************************************************************************
    
    Функция ИтоговаяСтрока()
    
    //
    // ***** 15.03.2010 *****
    // Вместо
    //
    //    ИтСтр = "Итого НДС " + СокрЛ(Формат(Итог("НДС18") + Итог("НДС10") + Итог("НДС1525") + Итог("НДС909"), "Ч20.0-,"));
    //
    // используется:
    //
        ИтСтр = "Итого НДС " + СокрЛ(Формат(Итог("НДС20") + Итог("НДС18") + Итог("НДС10") + Итог("НДС1667") + Итог("НДС1525") + Итог("НДС909"), "Ч20.2.,"));
    //        
    // ***** evm *****
    //        
        Возврат ИтСтр;
    
    КонецФункции // ИтоговаяСтрока()
    
    //******************************************************************************
    
    Функция ЗаголовокФормы()
    
        Перем Заголовок, Название;
            
        Заголовок = "Книга покупок";
        Название = Заголовок + " № ";
    
        Если Выбран() = 1 Тогда
            Если Проведен() = 1 Тогда
                Заголовок = Заголовок + ". Проведен";
            Иначе
                Заголовок = Заголовок + ". Не проведен";
            КонецЕсли;
        Иначе
            Заголовок = Заголовок + ". Новый";
        КонецЕсли;
    
        Форма.Заголовок(Заголовок);           
        Возврат Название;
    
    КонецФункции // ЗаголовокФормы()
    
    //******************************************************************************
    
    Процедура ВводНового(Скопирован)
                      
    //    глЗаполнитьШапку(Контекст, Скопирован);
    
    //    Если Скопирован = 1 Тогда   // копирование документа
    //        Возврат;
    //    КонецЕсли;
    
    КонецПроцедуры // ВводНового()
    
    //******************************************************************************
    
    Процедура ПриОткрытии()
                               
        Парам = Форма.Параметр;
    
        Если ТипЗначенияСтр(Парам) = "СписокЗначений" Тогда
        
            Если ПустоеЗначение(Парам.Получить("Команда")) = 1 Тогда
                Сообщить("В форму документа " + Вид() + " передан неверный параметр!", "I");
                СтатусВозврата(0);Возврат;
            КонецЕсли;
        
            Если (Парам.Получить("Команда") = "ПечатьНаПринтер")
                 ИЛИ (Парам.Получить("Команда") = "ПечатьНаЭкран") Тогда
            
                Предупреждение("Документ не имеет печатной формы!", 60);
                СтатусВозврата(0);Возврат;
            Иначе
                Сообщить("В форму документа " + Вид() + " передана неверная команда " + Парам.Получить("Команда") + "!", "I");
                СтатусВозврата(0);Возврат;
            КонецЕсли;
    
        КонецЕсли;
    
    // Инициализирум список действий по кнопке "Действия"
        СписокДействий = СоздатьОбъект("СписокЗначений");
        СписокДействий.ДобавитьЗначение("Отчет о движениях документа");
        СписокДействий.ДобавитьЗначение("Отчет о бухгалтерских проводках");
        СписокДействий.ДобавитьЗначение("Перейти в журнал");
                                                          
    //    глПроверкаРазрешенияРедактирования(Контекст);
    
    // инициализация модульных переменных, контролирующих выполнение
    // пересчетов и обновление надписей в форме
        НачальнаяДатаДокумента = ДатаДок;
    
    // если дата проведенного документа больше ТА, то открываем только на просмотр,
    // так как его все равно не удастся сохранить после редактирования.
        Если (Проведен() = 1) Тогда
            Форма.ТолькоПросмотр(0);
        КонецЕсли;
    
    // Если открыли только на просмотр, то надо кнопки сделать недоступными
        Если Форма.ТолькоПросмотр()=1 Тогда
    // СДЕЛАТЬ НЕДОСТУПНЫМИ КНОПКИ МОДИФИКАЦИИ ДОКУМЕНТА
            Форма.кнОК.Доступность(0);
            Форма.кнЗаписать.Доступность(1);
            Форма.кнПровести.Доступность(1);
        КонецЕсли;
    
        СписокДействий.ДобавитьЗначение("Ввести на основании");
    
    // кнопка по умолчанию
        Если (Форма.ТолькоПросмотр() = 1) Тогда
            Форма.КнопкаПоУмолчанию("кнЗакрыть");
        Иначе
            Форма.КнопкаПоУмолчанию("кнОК");
        КонецЕсли;
    
    // Если документ еще не проведен, тогда проведение делаем только в потоке
        Если (Проведен() = 0) Тогда
    //        ПроводитьПослеТА(1, 1);
        КонецЕсли;                                       
    
    КонецПроцедуры // ПриОткрытии()
    
    //******************************************************************************
    
    Процедура Заполнить1()
    
        Если КоличествоСтрок() > 0 Тогда
            Если Вопрос("Перед заполнением таблица документа будет очищена. Продолжить?", "Да+Нет") = "Нет" Тогда
                Возврат;
            КонецЕсли;
            УдалитьСтроки();
        КонецЕсли;
    
        Ит = СоздатьОбъект("БухгалтерскиеИтоги");
        Док    = СоздатьОбъект("Документ.ПриходОтПоставщика");
        Ит.ИспользоватьСубконто(ВидыСубконто.Накл);
        Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок), КонМесяца(ДатаДок), "60.1", ,, 2, "День",);
        Сч_НДС = СчетПоКоду("18.1.2");
    
        Ит.ВыбратьПериоды();
    
        Пока Ит.ПолучитьПериод() = 1 Цикл
            Ит.ВыбратьСубконто(1);
            Пока Ит.ПолучитьСубконто(1) = 1 Цикл
        
            Если (Ит.Субконто(1).Вид() = "ПриходОтПоставщика") Тогда
    
                Если Ит.Субконто(1).ДатаДок < НачМесяца(ДатаДок) Тогда
                Продолжить;
            КонецЕсли;
    
                Если (Ит.КО() <> 0) Тогда
                          
                    НоваяСтрока();
                    Приход        = Ит.Субконто(1);
                    Оплата        = "Оплата согласно выписки " + Строка(Ит.НачДата);
                    Контрагент    = Ит.Субконто(1).Контрагент;
                    Всего1        = Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).ИтогоПоСкидке + Ит.Субконто(1).Транспортные + Ит.Субконто(1).СуммаНДСТрансп;
                    Коэфф        = 1;
                    Разница        = Всего1 - Ит.ДО();
                    //Если (Разница > 10) ИЛИ (Разница < (-10)) Тогда
                    //    Коэфф    = Ит.ДО() / Всего1;
                    //КонецЕсли;
                    Всего    = Ит.ДО();
                
                    Док.НайтиДокумент(Ит.Субконто(1));
    
                    НДС18            = Док.СуммаНДСТрансп;
                    СуммаБезНДС18    = 0;
    //
    // ***** 15.03.2010 *****
    // Добавлено:
    //
                    НДС20            = 0; //Док.СуммаНДСТрансп;
                    СуммаБезНДС20    = 0;
    //        
    // ***** evm *****
    //        
                
                    НДС10            = 0;
                    СуммаБезНДС10    = 0;
                    СуммаБезНДС        = Док.Транспортные;
                    СчетНДС            = Сч_НДС;
                    НДС909            = 0;
                    СуммаБезНДС909    = 0;
                    НДС1525            = 0;
                    СуммаБезНДС1525    = 0;
                    НДС1667            = 0;
                    СуммаБезНДС1667    = 0;
                
                    Док.ВыбратьСтроки();
                
                    Пока Док.ПолучитьСтроку() = 1 Цикл
                        Если Док.СтавкаНДС = 10 Тогда
                            НДС10            = НДС10 + Док.НДС;
                            СуммаБезНДС10    = СуммаБезНДС10 + (Док.Всего - Док.НДС);
                    
                        ИначеЕсли Док.СтавкаНДС = 18 Тогда
                            НДС18            = НДС18 + Док.НДС;
                            СуммаБезНДС18    = СуммаБезНДС18 + (Док.Всего - Док.НДС);
                    
                        ИначеЕсли Док.СтавкаНДС = 15.25 Тогда
                            НДС1525            = НДС1525 + Док.НДС;
                            СуммаБезНДС1525    = СуммаБезНДС1525 + (Док.Всего - Док.НДС);
    //
    // ***** 15.03.2010 *****
    // Добавлено:
    //
                        ИначеЕсли Док.СтавкаНДС = 20 Тогда
                            НДС20            = НДС20 + Док.НДС;
                            СуммаБезНДС20    = СуммаБезНДС20 + (Док.Всего - Док.НДС);
                    
                        ИначеЕсли Док.СтавкаНДС = 16.67 Тогда
                            НДС1667            = НДС1667 + Док.НДС;
                            СуммаБезНДС1667    = СуммаБезНДС1667 + (Док.Всего - Док.НДС);
    //        
    // ***** evm *****
    //        
                        ИначеЕсли Док.СтавкаНДС = 24 Тогда
                            НДС909            = НДС909 + Док.НДС;
                            СуммаБезНДС909    = СуммаБезНДС909 + (Док.Всего - Док.НДС);
                            СуммаБезНДС        = СуммаБезНДС + Док.Всего;
                    
                        ИначеЕсли Док.СтавкаНДС = 9.09 Тогда
                            НДС909            = НДС909 + Док.НДС;
                            СуммаБезНДС909    = СуммаБезНДС909 + (Док.Всего - Док.НДС);
                    
                        ИначеЕсли Док.СтавкаНДС = 0 Тогда
                            СуммаБезНДС        = СуммаБезНДС + Док.Всего;
                    
                        Иначе
                            СуммаБезНДС        = СуммаБезНДС + Док.Всего;
                    
                        КонецЕсли;
                
                    КонецЦикла;
                        ВсегоСНДС = СуммаБезНДС18 + НДС18 + СуммаБезНДС10 + НДС10 + СуммаБезНДС909 + НДС909 + СуммаБезНДС20  + НДС20 + СуммаБезНДС;
    
                    Если Коэфф <> 1 Тогда
                        НДС18            = Окр(Коэфф * НДС18, 2, 1);
                        СуммаБезНДС18    = Окр(Коэфф * СуммаБезНДС18, 2, 1);
    //
    // ***** 15.03.2010 *****
    // Добавлено:
    //
                        НДС20            = Окр(Коэфф * НДС20, 2, 1);
                        СуммаБезНДС20    = Окр(Коэфф * СуммаБезНДС20, 2, 1);
                        НДС1667            = Окр(Коэфф * НДС1667, 0, 1);
                        СуммаБезНДС1667    = Окр(Коэфф * СуммаБезНДС1667, 2, 1);
    //        
    // ***** evm *****
    //        
                        НДС10            = Окр(Коэфф * НДС10, 2, 1);
                        СуммаБезНДС10    = Окр(Коэфф * СуммаБезНДС10, 2, 1);
                        СуммаБезНДС        = Окр(Коэфф * СуммаБезНДС, 2, 1);
                        НДС1525            = Окр(Коэфф * НДС1525, 2, 1);
                        СуммаБезНДС1525    = Окр(Коэфф * СуммаБезНДС1525, 2, 1);
                        НДС909            = Окр(Коэфф * НДС909, 2, 1);
                        СуммаБезНДС909    = Окр(Коэфф * СуммаБезНДС909, 2, 1);
                    КонецЕсли;
                 КонецЕсли;
                КонецЕсли;
    //******************************
                Если (Ит.Субконто(1).Вид() = "РасходнаяНакладная") Тогда
            
                    Если Ит.Субконто(1).ДатаДок < НачМесяца(ДатаДок) Тогда
                Продолжить;
            КонецЕсли;
        
                    НоваяСтрока();
                    Приход    = Ит.Субконто(1);
                    Оплата        = "Оплата согласно выписки " + Строка(Ит.НачДата);
                    Контрагент    = Ит.Субконто(1).Контрагент;
                    Всего1        = -(Ит.Субконто(1).Итог("Всего"));
                    Коэфф        = 1;
                    Разница        = Всего1 - Ит.ДО();
                    Всего    = Ит.ДО();
                
        
    
                
    //
    // ***** 15.03.2010 *****
    // Добавлено:
    //
                    СуммаБезНДС        = Док.Транспортные;
                    СчетНДС            = Сч_НДС;
                    Док.ВыбратьСтроки();
    // ***** evm *****
                    Пока Док.ПолучитьСтроку() = 1 Цикл
                    
                    
                        Если Док.НДС > 0  Тогда
                            НДС20 = -(Ит.Субконто(1).Итог("НДС"));
                            СуммаБезНДС20 = -(Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).Итог("НДС"));
                            ИначеЕсли Док.НДС = 0  Тогда
                                СуммаБезНДС        = -(Ит.Субконто(1).Итог("Всего"));
                        КонецЕсли;
                        КонецЦикла;
          
                        ВсегоСНДС = СуммаБезНДС18 + НДС18 + СуммаБезНДС10 + НДС10 + СуммаБезНДС909 + НДС909 + СуммаБезНДС20  + НДС20 + СуммаБезНДС;
    
                
               КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    
    КонецПроцедуры // Заполнить1()
    
    
    
    
    
    Вот тот участок который изменял:

    Код:
        СуммаБезНДС        = Док.Транспортные;
                    СчетНДС            = Сч_НДС;
                    Док.ВыбратьСтроки();
    // ***** evm *****
                    Пока Док.ПолучитьСтроку() = 1 Цикл
                  
                        Если Док.НДС > 0  Тогда
                    Если Док.СтавкаНДС = 10 Тогда
                            НДС10 = -(Ит.Субконто(1).Итог("НДС"));
                            СуммаБезНДС10 = -(Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).Итог("НДС"));
                    ИначеЕсли Док.СтавкаНДС = 20 Тогда
                            НДС20 = -(Ит.Субконто(1).Итог("НДС"));
                            СуммаБезНДС20 = -(Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).Итог("НДС"));
                            ИначеЕсли Док.НДС = 0  Тогда
                                СуммаБезНДС        = -(Ит.Субконто(1).Итог("Всего"));
                        КонецЕсли;
                   КонецЕсли;
                        КонецЦикла;
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.482
    Симпатии:
    526
    Баллы:
    204
    даже вникать не буду...
    Код:
    СчетПоКоду("18.1.2")
    Это вообще НДС для какой страны?
    Руки бы оторовать за такой быдлокод
  3. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    55
    Симпатии:
    1
    Баллы:
    29
    А что не нравится с НДСом???
    http://pravo.kulichki.com/dop/vbuh/vbuh0719.htm
    18-1.2 «Налог на добавленную стоимость по приобретенным материально-производственным запасам»;
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.482
    Симпатии:
    526
    Баллы:
    204
    Беларусь... А форум российский... Счета учета совершенно другие.
    Тут только отладчиком смотреть. На вскидку вряд ли кто скажет. У ВАС КОНФИГУРАЦИЯ ДРУГАЯ
  5. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    55
    Симпатии:
    1
    Баллы:
    29
    Ясно... но я уже нашел причину вроде как, добавил цикл
    Код:
    Ит.ВыбратьСубконто(1);
            Пока Ит.ПолучитьСубконто(1) = 1 Цикл
    Полностью вот как получилось
    Код:
                Ит.ВыбратьСубконто(1);
                Пока Ит.ПолучитьСубконто(1) = 1 Цикл
                Если (Ит.Субконто(1).Вид() = "РасходнаяНакладная") Тогда
             
                    Если Ит.Субконто(1).ДатаДок < НачМесяца(ДатаДок) Тогда
                Продолжить;
            КонецЕсли;
         
                    НоваяСтрока();
                    Приход    = Ит.Субконто(1);
                    Оплата        = "Оплата согласно выписки " + Строка(Ит.НачДата);
                    Контрагент    = Ит.Субконто(1).Контрагент;
                    Всего1        = -(Ит.Субконто(1).Итог("Всего"));
                    Коэфф        = 1;
                    Разница        = Всего1 - Ит.ДО();
                    Всего    = Ит.ДО();
                 
         
    
                 
    //
    // ***** 15.03.2010 *****
    // Добавлено:
    //
                    СуммаБезНДС        = Док.Транспортные;
                    СчетНДС            = Сч_НДС;
                    Док.ВыбратьСтроки();
    // ***** evm *****
                    Пока Док.ПолучитьСтроку() = 1 Цикл
                     
                     
                        Если Док.СтавкаНДС = 10  Тогда
                        НДС10 = -(Ит.Субконто(1).Итог("НДС"));
                        СуммаБезНДС10 = -(Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).Итог("НДС"));
                        //ИначеЕсли (Док.НДС > 0) И (Док.СтавкаНДС = 20) Тогда
                        //    НДС20 = -(Ит.Субконто(1).Итог("НДС"));
                        //    СуммаБезНДС20 = -(Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).Итог("НДС"));
                    Иначе
                            НДС20 = -(Ит.Субконто(1).Итог("НДС"));
                            СуммаБезНДС20 = -(Ит.Субконто(1).Итог("Всего") - Ит.Субконто(1).Итог("НДС"));
                        КонецЕсли;
                        КонецЦикла;
                 
             
                 
                 
                 
                 
                        ВсегоСНДС = СуммаБезНДС18 + НДС18 + СуммаБезНДС10 + НДС10 + СуммаБезНДС909 + НДС909 + СуммаБезНДС20  + НДС20 + СуммаБезНДС;
     
                 
                    КонецЕсли;
                КонецЦикла;
    Рано обрадовался, не берет часть документов, так что опять ошибка
    Последнее редактирование: 28 июн 2017
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.482
    Симпатии:
    526
    Баллы:
    204

Поделиться этой страницей