Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:42

Балансовый счет не может корреспондировать с пустым счетом!

Автор Ant_S, 29 мар 2010, 12:57

0 Пользователей и 1 гость просматривают эту тему.

Ant_S

Здраствуйте всем!!! Подскажите пожалуйста ни как не могу допетрить!!!
В авансовомОтчете делаем проводку на 26 счет , два субконто: Общехоз. затраты и Подразделения выбираем значение из этих справочеиков жмем  провести и вылазиет ошибка ( Балансовый счет не может корреспондировать с пустым счетом!) а если не вводить первое субконто (Общехоз. затраты)документ проводится без проблем!!! Подскажите как выйти из ситуации и решить эту проблему хотябу подскажите где копать????

а могут ли это быть проблемы с забалансовыми счетами???

может модуль проведения поможет дать мне ответ Заранее спасибо!!!!

Процедура УСН()   
   ВыбратьСтроки();
   Пока ПолучитьСтроку()=1 Цикл
       
       Если ДокументПоставки.Выбран()=1 Тогда
           Если ДокументПоставки.Вид()="ПоступлениеМатериалов" Тогда
               ДокументПоставки.ВыбратьСтроки();
               Пока ДокументПоставки.ПолучитьСтроку()=1 Цикл
                   Операция.НоваяПроводка();
                   Операция.Дебет.Счет = СчетПоКоду("У.05");
                   Операция.Дебет.Контрагенты = ДокументПоставки.Контрагент;
                   Операция.Дебет.Материалы= ДокументПоставки.Материал;
                   Операция.Кредит.Счет = СчетПоКоду("У.01");
                   Операция.Кредит.Контрагенты = ДокументПоставки.Контрагент;
                   Операция.Кредит.Материалы= ДокументПоставки.Материал;
                   Операция.Количество = ДокументПоставки.Количество;
                   Операция.Сумма = ДокументПоставки.Сумма;
                   Операция.СодержаниеПроводки = "Оплачено сырье";
                   Операция.НомерЖурнала = "УСН";
                   
                   Если ДокументПоставки.НДС>0 Тогда
                       Операция.НоваяПроводка();
                       Операция.Дебет.Счет = СчетПоКоду("У.03");
                       Операция.Кредит.Счет = СчетПоКоду("У.02");
                       Операция.Сумма = ДокументПоставки.НДС;
                       Операция.СодержаниеПроводки = "Списываем НДС";
                       Операция.НомерЖурнала = "УСН";
                       Операция.ПервичныйДокумент  =Формат(ДокументПоставки.ДатаДокВходящий, "Д ДДММГГГГ")+", №"+ДокументПоставки.НомерДокВходящий;
                   КонецЕсли;
                   
               КонецЦикла;
               Операция.Записать();
           КонецЕсли;
           Док=СоздатьОбъект("Документ");
           Док.НайтиДокумент(ДокументПоставки);
           Док.ОплатаДок=1;
           Док.Записать();
           Если ДокументПоставки.Вид()="ПоступлениеМатериалов" Тогда
               //Если ДокументПоставки.Итог("НДС")>0 Тогда

                   Операция.НоваяПроводка();
                   Операция.Дебет.Счет=СчетПоКоду("У04");
                   Операция.СодержаниеПроводки="Отражен факт расхода";
                   Операция.НомерЖурнала="НУ";       
                   Операция.Сумма=Сумма;                   
           //    КонецЕсли;

           ИначеЕсли КоррСчет<>СчетПоКоду("51") Тогда
               Операция.НоваяПроводка();
               Операция.Дебет.Счет=СчетПоКоду("У04");
               Операция.СодержаниеПроводки="Отражен факт расхода";
               Операция.НомерЖурнала="НУ";       
               Операция.Сумма=Сумма;
           КонецЕсли;
           Если ДокументПоставки.Вид()="УслугиСтороннихОрганизаций" Тогда
               Если ДокументПоставки.Итог("НДС")>0 Тогда
                   Операция.НоваяПроводка();
                   Операция.Дебет.Счет=СчетПоКоду("НДС");
                   Операция.Дебет.Контрагенты=Субконто1;
                   Операция.Дебет.Договоры=Субконто2;
                   Операция.СодержаниеПроводки="НДС";
                   Операция.НомерЖурнала="НУ";       
                   Операция.Сумма=ДокументПоставки.Итог("НДС");
               КонецЕсли;
           КонецЕсли;
       ИначеЕсли (КоррСчет<>СчетПоКоду("51")) И (КоррСчет<>СчетПоКоду("66.3")) И (КоррСчет<>СчетПоКоду("71.1")) Тогда
           Операция.НоваяПроводка();
           Операция.Дебет.Счет=СчетПоКоду("У04");
           Операция.СодержаниеПроводки="Отражен факт расхода";
           Операция.НомерЖурнала="НУ";       
           Операция.Сумма=Сумма;                   
       КонецЕсли;       
       Если УчитыватьДляНУ=1  Тогда
           //Если ДвижениеДенежныхСредств.Наименование="Оплата за основные средства" Тогда

           //    Если КоррСчет=СчетПоКоду("60.1") Тогда

           //        Если ДокументПоставки.Выбран()=0 Тогда

           //            Предупреждение("Не выбран документ поставки");

           //            СтатусВозврата(0);

           //            Возврат;

           //        КонецЕсли; 

           //        Если ДокументПоставки.КоличествоСтрок()>1 Тогда

           //            Предупреждение("В документе поставки должно быть поступление одного ОС");

           //            СтатусВозврата(0);

           //            Возврат;

           //        КонецЕсли;

           //        ОснСр=СоздатьОбъект("Справочник.ОсновныеСредства");

           //        ДокументПоставки.ВыбратьСтроки();

           //        ДокументПоставки.ПолучитьСтроку();                 

           //        ОснСр.НайтиЭлемент(ДокументПоставки.ОбъектВнеоборотныхАктивов);

           //        ОснСр.Оплата.Установить(ДатаДок,Сумма);

           //        ОснСр.Записать();

           //        Операция.НоваяПроводка();

           //        Операция.Дебет.Счет=СчетПоКоду("У02.1");

           //       

           //        Операция.Дебет.ОсновныеСредства=ДокументПоставки.ОбъектВнеоборотныхАктивов;

           //        Операция.Дебет.ДатыОплаты=ДатаДок;

           //        Операция.СодержаниеПроводки="Учтена оплата основных средств";

           //        Операция.НомерЖурнала="НУ";       

           //        Операция.Сумма=Сумма;

           //    КонецЕсли;

           //Иначе

               Если (КоррСчет=СчетПоКоду("60.1")) И (ДокументПоставки.Выбран()=1) Тогда
                   Если ДокументПоставки.Вид()="ПоступлениеМатериалов" Тогда
                       Если ДокументПоставки.Итог("НДС")>0 Тогда
                           Операция.НоваяПроводка();
                           Операция.Дебет.Счет=СчетПоКоду("У02.2");
                           Операция.СодержаниеПроводки="Учтен расход: НДС по поступившему сырью";
                           Операция.НомерЖурнала="НУ";       
                           Операция.Сумма=ДокументПоставки.Итог("НДС");                   
                       КонецЕсли; 
                   Иначе
                       Операция.НоваяПроводка();
                       Операция.Дебет.Счет=СчетПоКоду("У02.2");
                       Операция.СодержаниеПроводки="Учтен расход";
                       Операция.НомерЖурнала="НУ";       
                       Операция.Сумма=Сумма;
                   КонецЕсли;
               Иначе
                   Операция.НоваяПроводка();
                   Операция.Дебет.Счет=СчетПоКоду("У02.2");
                   Операция.СодержаниеПроводки="Учтен расход";
                   Операция.НомерЖурнала="НУ";       
                   Операция.Сумма=Сумма;
               КонецЕсли;
           //КонецЕсли;

       КонецЕсли;
   КонецЦикла;
   Операция.Записать();
КонецПроцедуры
//_____________________________________________________________________________

Процедура ОбработкаПроведения() 
   УСН();
   ТипОтчета = Валюта.Выбран() + 1;
   Сч19 = СчетПоКоду("19.3");   
   
   Если ДокументПоставки.Выбран()=1 Тогда
       Если ДокументПоставки.Вид()="ПоступлениеМатериалов" Тогда
           ДокументПоставки.ВыбратьСтроки();
           Пока ДокументПоставки.ПолучитьСтроку()=1 Цикл
               Операция.НоваяПроводка();
               Операция.Дебет.Счет = СчетПоКоду("У.05");
               Операция.Дебет.Контрагенты = ДокументПоставки.Контрагент;
               Операция.Дебет.Материалы= ДокументПоставки.Материал;
               Операция.Кредит.Счет = СчетПоКоду("У.01");
               Операция.Кредит.Контрагенты = ДокументПоставки.Контрагент;
               Операция.Кредит.Материалы= ДокументПоставки.Материал;
               Операция.Количество = ДокументПоставки.Количество;
               Операция.Сумма = ДокументПоставки.Сумма;
               Операция.СодержаниеПроводки = "Оплачено сырье";
               Операция.НомерЖурнала = "УСН";
               
               Если ДокументПоставки.НДС>0 Тогда
                   Операция.НоваяПроводка();
                   Операция.Дебет.Счет = СчетПоКоду("У.03");
                   Операция.Кредит.Счет = СчетПоКоду("У.02");
                   Операция.Сумма = ДокументПоставки.НДС;
                   Операция.СодержаниеПроводки = "Списываем НДС";
                   Операция.НомерЖурнала = "УСН";
                   Операция.ПервичныйДокумент  =Формат(ДокументПоставки.ДатаДокВходящий, "Д ДДММГГГГ")+", №"+ДокументПоставки.НомерДокВходящий;
               КонецЕсли;
               
           КонецЦикла;
           Операция.Записать();
       КонецЕсли;
   КонецЕсли;   
   Если ТипОтчета = 2 Тогда
           Сч71 = СчетПоКоду("71.11");

       КурсВал = Валюта.Курс.Получить(ДатаДок);
       Кратность = Валюта.Кратность.Получить(ДатаДок);
       Кратность = ?(Кратность=0,1,Кратность);

       глТаблицаСчетов.УдалитьСтроки();
       глТаблицаСчетов.НоваяСтрока();
       глТаблицаСчетов.Счет = Сч71;
       глТаблицаСчетов.Субконто1 = Сотрудник;
       глТаблицаСчетов.Субконто2 = "";
       глТаблицаСчетов.Субконто3 = "";
       глТаблицаСчетов.Валюта = Валюта;
       глПереоценкаСчетов(Контекст, глТаблицаСчетов);

   Иначе
       Сч71 = СчетПоКоду("71.1");
   КонецЕсли;

   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       Если ПустоеЗначение(КоррСчет) = 1 Тогда
           ТекстСообщения = "В строке №" + НомерСтроки + " не указан корреспондирующий счет.";
           глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 1);
           глНеПроводить(ТекущийДокумент());
           Возврат;
           
       ИначеЕсли КоррСчет.Валютный = 1 Тогда
           ТекстСообщения = "В строке №" + НомерСтроки + " корреспондирующий счет не может быть валютным.";
           глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 1);
           глНеПроводить(ТекущийДокумент());
           Возврат;
       КонецЕсли;

       Операция.НоваяПроводка();
       Операция.НомерЖурнала = "БК";
       Операция.СодержаниеПроводки = КомуЗаЧто;
       Операция.ПервичныйДокумент  = глПредставлениеПервичногоДокумента(Контекст);
       Операция.Дебет.Счет = КоррСчет;
       Сообщить ("КоррСчет это: "+ КоррСчет);
       Операция.Дебет.Субконто(1,Субконто1);
       Операция.Дебет.Субконто(2,Субконто2);
       Операция.Дебет.Субконто(3,Субконто3);
       Операция.Кредит.Счет = Сч71;
       Операция.Кредит.Сотрудники = Сотрудник;

       Если НДС > 0 Тогда
           Если ТипОтчета = 1 Тогда
               Операция.Сумма = Сумма - НДС;
           Иначе
               Операция.Сумма = Окр(Сумма*КурсВал/Кратность,2,1) - Окр(НДС*КурсВал/Кратность,2,1);
           КонецЕсли;
       Иначе
           Если ТипОтчета = 1 Тогда
               Операция.Сумма = Сумма;
           Иначе
               Операция.Сумма = Окр(Сумма*КурсВал/Кратность,2,1);
           КонецЕсли;
       КонецЕсли;

       Если КоррСчет.Количественный = 1 Тогда
           Операция.Количество = Количество;
       КонецЕсли;

       Если ТипОтчета = 2 Тогда
           Операция.Валюта = Валюта;
           Операция.ВалСумма = Сумма - НДС;
       КонецЕсли;
       
       // Отражение операций в налоговом учете.

       ОбъектыАналитикиНУ = глСчетИАналитикаРасходовНУ(Контекст, КоррСчет, Субконто1, Субконто2, Субконто3);
       
       // Если опредлен налоговый счет, то необходимо

       // сформировать проводку для целей налогового учета.

       СчетНУ = ОбъектыАналитикиНУ.Получить("Счет");
       Если ПустоеЗначение(СчетНУ) = 0 Тогда
           СуммаРасходов = Операция.Сумма;
           
           Операция.НоваяПроводка();
           Операция.НомерЖурнала = "НУ";
           Операция.СодержаниеПроводки = КомуЗаЧто;
           Операция.ПервичныйДокумент  = глПредставлениеПервичногоДокумента(Контекст);
           Операция.Дебет.Счет = СчетНУ;
           Для СчетчикЦикла = 1 По СчетНУ.КоличествоСубконто() Цикл
               ИдентификаторСубконто = СчетНУ.ВидСубконто(СчетчикЦикла,,).Идентификатор();
               Операция.Дебет.Субконто(СчетчикЦикла, ОбъектыАналитикиНУ.Получить(ИдентификаторСубконто));
           КонецЦикла;
           
           Операция.Дебет.Субконто(ВидыСубконто.УсловияПоступленияИВыбытия, Перечисление.УсловияПоступленияИВыбытия.Другие);
           
           Операция.Сумма = СуммаРасходов;
           Если СчетНУ.Количественный = 1 Тогда
               Операция.Количество = Количество;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;

   Операция.Записать();
   
   ТекстСообщения = "Сотруднику "+Сотрудник+" зачтена сумма, выданная под отчет.";
   глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 0);
   
   ТекстСообщения = "Документ проведен.";
   глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 0);
   глПриПроведении(ТекущийДокумент());
   
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск