[РЕШЕНО] Как сделать выборку в проводке?

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

  1. TopicStarter Overlay
    Kas-tet
    Offline

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

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    Всем привет, помогите плиз...
    в общем посадили за 1с 7.7 до меня ее конфигурировал кто-то другой и сделал в проводке такую вот фигню:
    при отгрузке товара, т.е. при возврате продукции при формировании проводок, должно возвращать с той же процентной ставкой, а возвращает с той, которая указана в коде
    Код:
    Если ВидОтгрузки = 4 Тогда
            Если Итог("НДС") <> 0 Тогда
                Операция.НоваяПроводка();
                Операция.СодержаниеПроводки    = Товар.Наименование;
                Операция.НомерЖурнала        = "ТВ";
                Операция.Дебет.Счет            = СчетПоКоду("60.1");
                Операция.Дебет.Контрагенты    = Контрагент;
                Операция.Дебет.Накл            = ТекущийДокумент();
                Операция.Кредит.Счет        = СчетПоКоду("18.1.2");
                Операция.Кредит.Справочники    = Контрагент;
                Операция.Кредит.Накл        = ТекущийДокумент();
                Если СпрНДС.НайтиПоРеквизиту("Ставка", 20, 1) = 1 Тогда
                    Операция.Кредит.СтавкиНДС = СпрНДС.ТекущийЭлемент();
                КонецЕсли;
                Операция.Сумма                = Итог("НДС");   
            КонецЕсли;   
        КонецЕсли;
    Как сделать чтобы выбирало между 2-мя ставками например 10% и 20%??????
    В таблице есть колонка СтНДС где показывается ставка НДС, но никак не могу вытянуть ее оттуда((
    Снимок.PNG
    P.S. Я в 1с не сильно разбираюсь)
    Вот полностью листинг если поможет
    Код:
    ////////////////////////////////////////////////////////////////////////////////
    // ПЕРЕМЕННЫЕ МОДУЛЯ
    //
    Перем СчетРасчетовСПокупателем;
    Перем СчетРасчетовЗаКомиссионныеТовары;
    Перем СчетАвансовПолученных;
    Перем ОплатаДоговора;
    Перем Валюта;
    Перем Кратность;
    Перем Т;
    Перем РегПарт;
    Перем РегСклад;
    Перем СпрТов;
    Перем Направление;
    
    ////////////////////////////////////////////////////////////////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
    //
    //******************************************************************************
    
    Процедура ОбработкаПроведения() 
       
        СпрНДС = СоздатьОбъект("Справочник.СтавкиНДС");
       
        Если ВыбратьСтроки() = 1 Тогда
           
            Пока ПолучитьСтроку() = 1 Цикл 
               
                Если ДатаДок < Дата(2005, 08, 01) Тогда  
                    Операция.НоваяПроводка();
                    Операция.СодержаниеПроводки = Товар.Наименование;
                    Операция.НомерЖурнала = "ТВ";
                    Операция.Дебет.Счет = СчетПоКоду("62.1");  
                    Операция.Дебет.Контрагенты = Контрагент;
                    Операция.Дебет.Накл = ТекущийДокумент();
    //                Операция.Дебет.МестаРеализации = МестоРеализации;
                    Операция.Кредит.Счет = СчетПоКоду("20.9");
                    Операция.Кредит.Кухни = МестоХранения; 
                    Операция.Сумма = Всего;
                   
                    Операция.НоваяПроводка();
                    Операция.СодержаниеПроводки = Товар.Наименование;
                    Операция.НомерЖурнала = "ТВ";
                    Операция.Дебет.Счет = СчетПоКоду("42.3");
                    Операция.Дебет.МестаРеализации = МестоРеализации;
                    Операция.Кредит.Счет = СчетПоКоду("20.9");
                    Операция.Кредит.Кухни = МестоХранения; 
                    Если Товар.НаценкуПроизводстваНеНакручивать = 1 Тогда
                        Сум = ((Товар.Себестоимость.Получить(ДатаДок) + Товар.СебестоимостьХлеба.Получить(ДатаДок)) * Коэффициент) * Количество;
                    Иначе   
                        Сум = Окр((Товар.Себестоимость.Получить(ДатаДок) * 2.2 + Товар.СебестоимостьХлеба.Получить(ДатаДок)) * Коэффициент, 2) * Количество;
                    КонецЕсли;
                    СумНДС = Окр((Сум - Всего) * Константа.НДСПроизводства.Получить(ДатаДок).Ставка / 100, 2);
                    Операция.Сумма = СумНДС;
                   
                    Операция.НоваяПроводка();
                    Операция.СодержаниеПроводки = Товар.Наименование;
                    Операция.НомерЖурнала = "ТВ";
                    Операция.Дебет.Счет = СчетПоКоду("42.1");
                    Операция.Дебет.МестаРеализации = МестоРеализации;
                    Операция.Кредит.Счет = СчетПоКоду("20.9");
                    Операция.Кредит.Кухни = МестоХранения; 
                    Операция.Сумма = Сум - Всего - СумНДС;
                   
                Иначе
                   
                    Если ВидОтгрузки = 4 Тогда
                       
                        Если ЦенаПроизводства = 0 Тогда
                            Сообщить("В строке " + НомерСтроки + " не указана цена склада");
                            СтатусВозврата(1);
                    //        Возврат;
                        КонецЕсли;
                       
                        СуммПр = Количество * ЦенаПроизводства;
                        СуммНДС    = Окр(СуммПр * СтНДС / (100 + СтНДС), 2, 1);
                        ТоргНадб = Окр(СуммПр - СуммНДС - (Цена * Количество), 2, 1);
                       
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки    = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет            = СчетПоКоду("60.1");
                        Операция.Дебет.Контрагенты    = Контрагент;
                        Операция.Дебет.Накл            = ТекущийДокумент();
                        Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
                            Операция.Кредит.Счет     = СчетПоКоду("41.3");
                        Иначе
                            Операция.Кредит.Счет     = СчетПоКоду("41.1");   
                        КонецЕсли;
                        Операция.Кредит.МестаХранения    = МестоХранения;
                        Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                        Операция.Кредит.Номенклатура    = Товар;
                        Операция.Количество    = Количество;
                        Операция.Сумма         = Окр(Цена * Количество, 2, 1);
                       
                        Если ТоргНадб <> 0 Тогда
                            Операция.НоваяПроводка();
                            Операция.СодержаниеПроводки    = Товар.Наименование;
                            Операция.НомерЖурнала        = "ТВ";
                            Операция.Дебет.Счет            = СчетПоКоду("42.1");
                            Операция.Дебет.МестаХраненияРеализации = МестоРеализации;
                            Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
                                Операция.Кредит.Счет    = СчетПоКоду("41.3");
                            Иначе
                                Операция.Кредит.Счет    = СчетПоКоду("41.1");   
                            КонецЕсли;
                            Операция.Кредит.МестаХранения    = МестоХранения;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Сумма                    = ТоргНадб;   
                        КонецЕсли;
                       
                        Если СуммНДС <> 0 Тогда
                            Операция.НоваяПроводка();
                            Операция.СодержаниеПроводки    = Товар.Наименование;
                            Операция.НомерЖурнала        = "ТВ";
                            Операция.Дебет.Счет            = СчетПоКоду("42.3");
                            Операция.Дебет.МестаХраненияРеализации = МестоРеализации;
                            Операция.Дебет.СтавкиНДС    = КарточкиРозница.СтавкаНДСрозн;
                            Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
                                Операция.Кредит.Счет     = СчетПоКоду("41.3");
                            Иначе
                                Операция.Кредит.Счет     = СчетПоКоду("41.1");   
                            КонецЕсли;
                            Операция.Кредит.МестаХранения    = МестоХранения;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Сумма                    = СуммНДС;   
                        КонецЕсли;
                   
                    ИначеЕсли ВидОтгрузки = 5 Тогда   
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки    = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет         = СчетПоКоду("60.1");
                        Операция.Дебет.Контрагенты    = Контрагент;
                        Операция.Дебет.Накл         = ТекущийДокумент();
                        Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
                            Операция.Кредит.Счет    = СчетПоКоду("41.31");
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                        Иначе
                            Операция.Кредит.Счет    = МестоХранения.СчетУчета;
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                        КонецЕсли;
                        Операция.Сумма = Всего;
                       
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет            = СчетПоКоду("42.3");
                        Операция.Дебет.МестаХраненияРеализации = МестоХранения;
                        Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
                            Операция.Кредит.Счет    = СчетПоКоду("41.31");
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                        Иначе
                            Операция.Кредит.Счет    = МестоХранения.СчетУчета;
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;   
                        КонецЕсли;
                        СумНДС = Окр((ЦенаПроизводства * Количество - Всего) * Константа.НДСПроизводства.Получить(ДатаДок).Ставка / 100, 2);
                        Операция.Сумма = СумНДС;
                       
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки    = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет            = СчетПоКоду("42.1");
                        Операция.Дебет.МестаХраненияРеализации = МестоХранения;
                        Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
                            Операция.Кредит.Счет             = СчетПоКоду("41.31");
                            Операция.Кредит.Кухни            = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                        Иначе
                            Операция.Кредит.Счет             = МестоХранения.СчетУчета;
                            Операция.Кредит.Кухни             = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;   
                        КонецЕсли;
                        Операция.Сумма = Окр(ЦенаПроизводства * Количество, 2) - Всего - СумНДС;
                   
                    Иначе
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки    = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет            = СчетПоКоду("60.1");
                        Операция.Дебет.Контрагенты    = Контрагент;
                        Операция.Дебет.Накл            = ТекущийДокумент();
                        Если (ВидОтгрузки = 1) ИЛИ (ВидОтгрузки = 2) ИЛИ (ВидОтгрузки = 5) Тогда
                            Операция.Кредит.Счет    = МестоХранения.СчетУчета;
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                        ИначеЕсли (ВидОтгрузки = 3) ИЛИ (ВидОтгрузки = 4) Тогда
                            Операция.Кредит.Счет            = СчетПоКоду("41.1");
                            Операция.Кредит.МестаХранения    = МестоХранения;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                            Операция.Кредит.Номенклатура    = Товар;
                        КонецЕсли;
                        Операция.Сумма = Всего; 
                       
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки    = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет            = СчетПоКоду("42.3");
                        Операция.Дебет.МестаХраненияРеализации = МестоРеализации;
                        Если (ВидОтгрузки = 1) ИЛИ (ВидОтгрузки = 2) ИЛИ (ВидОтгрузки = 5) Тогда
                            Операция.Кредит.Счет    = МестоХранения.СчетУчета;
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                        ИначеЕсли (ВидОтгрузки = 3) ИЛИ (ВидОтгрузки = 4) Тогда
                            Операция.Кредит.Счет            = СчетПоКоду("41.1");
                            Операция.Кредит.МестаХранения     = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                        КонецЕсли; 
                        СумНДС = Окр((ЦенаПроизводства * Количество - Всего) * Константа.НДСПроизводства.Получить(ДатаДок).Ставка / 100, 2);
                        Операция.Сумма = СумНДС;
                       
                        Операция.НоваяПроводка();
                        Операция.СодержаниеПроводки    = Товар.Наименование;
                        Операция.НомерЖурнала        = "ТВ";
                        Операция.Дебет.Счет            = СчетПоКоду("42.1");
                        Операция.Дебет.МестаХраненияРеализации = МестоРеализации;
                        Если (ВидОтгрузки = 1) ИЛИ (ВидОтгрузки = 2) ИЛИ (ВидОтгрузки = 5) Тогда
                            Операция.Кредит.Счет    = МестоХранения.СчетУчета;
                            Операция.Кредит.Кухни    = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                        ИначеЕсли (ВидОтгрузки = 3) ИЛИ (ВидОтгрузки = 4) Тогда
                            Операция.Кредит.Счет            = СчетПоКоду("41.1");
                            Операция.Кредит.МестаХранения     = МестоХранения;
                            Операция.Кредит.Номенклатура    = Товар;
                            Операция.Кредит.КарточкиРозница    = КарточкиРозница;
                        КонецЕсли;
                        Операция.Сумма = Окр(ЦенаПроизводства * Количество, 2) - Всего - СумНДС;
                    КонецЕсли;
                   
                КонецЕсли;
               
            КонецЦикла;
           
        КонецЕсли;
       
        Если ВидОтгрузки = 4 Тогда
            Если Итог("НДС") <> 0 Тогда
                Операция.НоваяПроводка();
                Операция.СодержаниеПроводки    = Товар.Наименование;
                Операция.НомерЖурнала        = "ТВ";
                Операция.Дебет.Счет            = СчетПоКоду("60.1");
                Операция.Дебет.Контрагенты    = Контрагент;
                Операция.Дебет.Накл            = ТекущийДокумент();
                Операция.Кредит.Счет        = СчетПоКоду("18.1.2");
                Операция.Кредит.Справочники    = Контрагент;
                Операция.Кредит.Накл        = ТекущийДокумент();
                Если СпрНДС.НайтиПоРеквизиту("Ставка", 20, 1) = 1 Тогда
                    Операция.Кредит.СтавкиНДС = СпрНДС.ТекущийЭлемент();
                КонецЕсли;
                Операция.Сумма                = Итог("НДС");   
            КонецЕсли;   
        КонецЕсли;
       
    
        Операция.Записать();
    
    КонецПроцедуры // ОбработкаПроведения()
    
    //******************************************************************************
    
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    22.626
    Симпатии:
    542
    Баллы:
    204
    Гммм... Ставка НДС вообще-то должна (в типовой) быть в справочнике Номеклатура (товар)
  3. TopicStarter Overlay
    Kas-tet
    Offline

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

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    она там есть
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    22.626
    Симпатии:
    542
    Баллы:
    204
    И что вы от нас хотите то?
  5. TopicStarter Overlay
    Kas-tet
    Offline

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

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    оно от туда не берет ее...и я не знаю по чему
    --- Объединение сообщений, 27 июн 2017 ---
    Я уже то сделал, вот другой вопрос, в книге покупок все отгрузки кидает в колонку 20%, как я условие не менял, оно все равно кидает в 20%, может вы знаете что можно сделать??

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

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

    Регистрация:
    29 дек 2008
    Сообщения:
    22.626
    Симпатии:
    542
    Баллы:
    204
    не знаю что у вас за конфигурация... Что-то эксклюзивное или в хлам переписанное.
    В типовой бухгалтерии заполнение НДС поставкам идет в вызываемой процедуре глПересчетВалютнойТабличнойЧастиВРубли глобального модуля.