7.7 Проблема с балансовым счетом

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

  1. TopicStarter Overlay
    id3337668
    Offline

    id3337668

    Регистрация:
    25 фев 2016
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Выручайте люди добрые
    Переделываю документ под свои нужды , при проведении вываливается ошибка:
    Операция.Записать();
    {Документ.ПоступлениеСырья.Модуль Документа(122)}: Балансовый счет не может корреспондировать с пустым счетом!(проводка 1)

    вот код модуля документа:
    Код:
    Процедура ОбработкаПроведения()
        Если Контрагент.Выбран() = 0 Тогда
           глОшибкаПроведения(Контекст,"Не выбран поставщик!");
            СтатусВозврата(0);
        ИначеЕсли Договор.Выбран() = 0 Тогда
            глОшибкаПроведения(Контекст,"Не выбран договор поставки!");
            СтатусВозврата(0);
        КонецЕсли;
    //    Валютный = 1-глОсновнаяВалюта(Договор);
    //    Если Валютный = 1 Тогда
    //       Сч60 = СчетПоКоду("60.15");
    //        Сч43 = СчетПоКоду("43.15");
    //    Иначе
            Сч60 = СчетПоКоду("60.10");
            Сч43 = СчетПоКоду("43.10");
    //    КонецЕсли;
        РегУчета = Регистр.Сырьё;
        ВыбратьСтроки();
        Спр = СоздатьОбъект("Справочник.Материалы");
    //    Курс = Договор.ВалютаВзаиморасчетов.Курс.Получить(ДатаДок);
    //    Кратность = Договор.ВалютаВзаиморасчетов.Кратность.Получить(ДатаДок);
    //    Кратность = ?(Кратность=0,1,Кратность);
        Пока ПолучитьСтроку() = 1 Цикл
               СуммаКПроводкеБух = СуммаБух;
         
            Материал = Спр.ТекущийЭлемент();
            // По регистрам
         
                РегУчета.Материал = Материал;
                РегУчета.МестоХранения = МестоХранения;
                РегУчета.Количество = Количество;
                РегУчета.Сумма = СуммаКПроводкеБух;
                РегУчета.ДвижениеПриходВыполнить();
       
            // По проводкам
            Операция.НоваяПроводка();
            Операция.СодержаниеПроводки = "Поступление сырья";
            Операция.НомерЖурнала = "МТ";
            Операция.Дебет.Счет = Материал.Субсчет10;
            Операция.Дебет.Субконто(1,Материал);
            Операция.Дебет.Субконто(2,МестоХранения);
            //Операция.Дебет.Субконто(3,Завод);
            Операция.Кредит.Счет = Сч60;
            Операция.Кредит.Субконто(1,Контрагент);
            Операция.Кредит.Субконто(2,Договор);
            Операция.Сумма = СуммаКПроводкеБух;
            Операция.Количество = Количество;
    //        Если Валютный = 1 Тогда
    //           Операция.Валюта = Договор.ВалютаВзаиморасчетов;
    //            Операция.ВалСумма = СуммаКпроводке;
    //        КонецЕсли;
         
        КонецЦикла;
     
        БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
        БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
        БухИт.ИспользоватьСубконто(ВидыСубконто.Договоры);
    //    Если Валютный = 1 Тогда
    //        БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),Сч43,,Договор.ВалютаВзаиморасчетов,,,"В");
    //    Иначе
            БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),Сч43,,,,,"С");
    //    КонецЕсли;
    //    Если БухИт.ПолучитьСубконто(ВидыСубконто.Договоры,, ДоговорКомиссии) = 1 Тогда
    //        Если Валютный = 1 Тогда
    //            АвансКомиссии = БухИт.СКД("В");
    //        Иначе
    //            АвансКомиссии = БухИт.СКД("С");
    //        КонецЕсли;
    //    Иначе
    //        АвансКомиссии = 0;
    //    КонецЕсли;
        Если БухИт.ПолучитьСубконто(ВидыСубконто.Договоры,, Договор) = 1 Тогда
        //    Если Сч60.Валютный = 1 Тогда
        //        АвансПоДоговору = БухИт.СКД("В");
        //    Иначе
                АвансПоДоговору = БухИт.СКД("С");
         
            КонецЕсли;
        //Иначе
        //    АвансПоДоговору = 0;
        //КонецЕсли;
        ЗачетАвансаПоДоговору = Мин(АвансПоДоговору, Итог("СуммаБух"));
    //    ЗачетАвансаКомиссии = Мин(АвансКомиссии, Итог("Комиссия"));
        ЗачестьАванс(ЗачетАвансаПоДоговору, Договор);
    //    ЗачестьАванс(ЗачетАвансаКомиссии, ДоговорКомиссии);
    
        Операция.Записать();
     
    
        Если Договор.Выбран() = 1 Тогда
            Спр = СоздатьОбъект("Справочник.Договоры");
            Спр.ИспользоватьВладельца(Контрагент);
            Спр.НайтиЭлемент(Договор);
            Спр.ДатаВозникновенияОбязательства = ДатаДок;
            Спр.Записать();
        Иначе
            Сообщить("Не выбран договор сделки. Дата возникновения задолжности не зарегистрирована!","!");
        КонецЕсли;
    КонецПроцедуры
    все перерыл не смог найти, подскажите где мне найти ошибку?
    С уважением Дамир
    Последнее редактирование модератором: 27 фев 2017
  2. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.556
    Симпатии:
    59
    Баллы:
    54
    ну выведи все счета дт и кт в сообщить
    думаю, что ошибка здесь
    Операция.Дебет.Счет = Материал.Субсчет10;
  3. TopicStarter Overlay
    id3337668
    Offline

    id3337668

    Регистрация:
    25 фев 2016
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    возможно я туплю но прям так и писать Сообщить(дт) Сообщить(кт)?
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.556
    Симпатии:
    59
    Баллы:
    54
    сообщить(Материал.Субсчет10)
    или
    сообщить(Операция.Дебет.Счет)
    id3337668 нравится это.
  5. TopicStarter Overlay
    id3337668
    Offline

    id3337668

    Регистрация:
    25 фев 2016
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    н
    на Дебет.Счет выдал 60.10 а вот на Материал.Субсчет10 не вышло ничего ошибка тама но в справочниках материала у меня все заполнено по счету 10.10 блин и где теперь дальше искать?
  6. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    539
    Симпатии:
    83
    Баллы:
    54
    Здравствуйте.
    Возможно в каком-то материале и не указан Субсчет10, на нем и спотыкается. Запустите отладчик и сделайте точку останова на этой строке. Можно сделать остановку по условию ПустоеЗначение(Материал.Субсчет10)=1. Или через Сообщить выведите материал, у которого не заполнено это поле.
  7. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    539
    Симпатии:
    83
    Баллы:
    54
    Хорошо бы в отладчике посмотреть тип поля Материал.Субсчет10. Может там не счет, а текст?
    Попробуйте такой вариант вместо
    Операция.Дебет.Счет = Материал.Субсчет10;
    сделать
    Операция.Дебет.Счет = СчетПоКоду(СокрЛП(Материал.Субсчет10));
    --- Объединение сообщений, 27 фев 2017 ---
    Или проверкой дополнить:
    Если ПустоеЗначение(Материал.Субсчет10) = 1 Тогда
    Сообщить("У элемента "+Материал+" не заполнен Субсчет10");
    Продолжить;
    КонецЕсли;
    Последнее редактирование: 27 фев 2017
    id3337668 нравится это.
  8. TopicStarter Overlay
    id3337668
    Offline

    id3337668

    Регистрация:
    25 фев 2016
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте Катя
    дествительно при проверке Сообщить("У элемента "+Материал+" не заполнен Субсчет10") вывело сообщение У элемента не заполнен СубСчет10 но там все заполнено, тип поля Счет.Основной точно не текст , может мне отправить Вам скрееншот справочника материалы?
  9. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    539
    Симпатии:
    83
    Баллы:
    54
    Пользуйтесь отладчиком.
    Материал = Спр.ТекущийЭлемент();
    А Спр Вы только что создали. Значит, он пустой. Вот Вам и ошибка.
    В цикле по строкам документа подбирайте Материал из табличной части. Зачем нужно было создавать новый объект?
    id3337668 нравится это.
  10. TopicStarter Overlay
    id3337668
    Offline

    id3337668

    Регистрация:
    25 фев 2016
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное Катя, действительно не надо было создавать новый объект , теперь все заработало решение было прям перед носом а я и не увидел, опыта у меня маловато, Вы как всегда меня выручали