Имя: Пароль:
1C
1С v8
Связь документа и регистра сведений
0 Solo322
 
10.06.16
09:40
Добрый день коллеги, дали одну самописную конфу, в нем не садилась амортизация НМА при закрытии месяца. При проверке оказалось что документ закрытия подтягивает счет учета НМА из соответствующего регистра сведений, но в нем это значение пустое, ковырял дальше, выяснил что данные в регистр попадают из документа "Поступление НМА", но в нем нет поля для счёта учета НМА, я его создал, но при проведении документа выдаёт ошибку
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПоступлениеНМА.МодульОбъекта(560)}: Поле объекта не обнаружено (СчетНачисленияАмортизацииБУ)
Куда копать?

Забыл упомянуть Платформа 8.3.7.1901 конфа Бухгалтерия ред 2.0
1 catena
 
10.06.16
09:52
"Добрый день коллеги, дали одну самописную конфу"
"конфа Бухгалтерия ред 2.0"

Так самописная или как?

По тексту ошибки не видно что-куда добавлено и откуда читается.
2 birkoFFFF
 
10.06.16
09:54
Под рукой нет Бух 2.0, но есть подозрение что автор тот еще специалист.
Также ИМХАется мне в БП 2.0 тоже есть документ «Принятие к учету НМА», а вот так как раз есть счета учета.
3 Solo322
 
10.06.16
09:56
Конфа бух2.0, но сильно переписанная и адаптированная под национальный учет. Именно Бух 2.0.

Дело в том что из документа «Принятие к учету НМА», не подтягивается сумма амортизации при закрытии месяца.
4 Solo322
 
10.06.16
09:57
И да, к сожалению должного опыта в конфигурировании ещё не набрал(
5 Dotoshin
 
10.06.16
10:24
(0) >> выяснил что данные в регистр попадают из документа "Поступление НМА", но в нем нет поля для счёта учета НМА, я его создал...
А откуда берутся данные при попадании в регистр, если нет поля? Ну то есть до твоих изменений они откуда брались?
6 Solo322
 
10.06.16
10:31
>>А откуда берутся данные при попадании в регистр, если нет поля? Ну то есть до твоих изменений они откуда брались?

В том то и дело что ни откуда. Просто в таблице регистра поле счет учёта НМА пустое, когда проводишь документ закрытие месяца он ругается что нету счёта КТ, а счет КТ это и есть пустое поле.
7 birkoFFFF
 
10.06.16
10:39
(3) Покажи движения документ "Принятие у учету НМА" и "Поступление НМА" заодно.
8 Solo322
 
10.06.16
10:45
Движение по документу Принятие к учету НМА

// Процедура формирования движений по регистру Способы отражения расходов по амортизации НМА (бухгалтерский учет)
//
Процедура ДвижениеПоРегиструСчетовУчетаНМАБух( ТабНМА, СтруктураШапкиДокумента)
    
    НаборДвижений   = Движения.СчетаУчетаНМА;
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    
    Для Каждого СтрокаНМА Из ТабНМА Цикл
        
        НоваяСтрока = ТаблицаДвижений.Добавить();
        НоваяСтрока.Период              = Дата;
        НоваяСтрока.НематериальныйАктив = СтрокаНМА.НематериальныйАктив;
        НоваяСтрока.Организация         = СтруктураШапкиДокумента.Организация;
        НоваяСтрока.СчетУчетаБУ                   = СтрокаНМА.СчетУчетаБУ;
        НоваяСтрока.СчетНачисленияАмортизацииБУ = СтрокаНМА.СчетНачисленияАмортизацииБУ;
        
    КонецЦикла;
    
    НаборДвижений.Загрузить(ТаблицаДвижений);
    НаборДвижений.УстановитьАктивность(Истина);
    
КонецПроцедуры // ДвижениеПоРегиструСпособыОтраженияБух()



Движение по документу Поступление НМА

// Формирование проводок
    // Проводки по поступлению товаров, тары и услуг.
    ДатаДока   = СтруктураШапкиДокумента.Дата;
    
    // "СуммаВключаетНДС" будет ИСТИНА, так как сумма документа действительно включает НДС, несмотря на установку в договоре. Здесь не расчет НДС, а зачет аванса  
    ТаблицаАвансов = УправлениеВзаиморасчетами.ЗачетАванса(ЭтотОбъект,СтруктураШапкиДокумента, Истина, мВалютаРегламентированногоУчета, Новый Структура ("ТаблицаПоНМА",ТаблицаПоНМА), Отказ,Заголовок,"НА");
    ПроводкиБУ = Движения.Типовой;
    
    
    //    НаборДвижений   = Движения.СчетаУчетаНМА;
    //    ТаблицаДвижений = НаборДвижений.Выгрузить();   //Zofa

    //    
    //// Проводки по поступлению НМА
    Для каждого СтрокаТаблицы Из ТаблицаПоНМА Цикл
        //НоваяСтрока = ТаблицаДвижений.Добавить();
        //НоваяСтрока = СтрокаТаблицы.Номенклатура;
        //НоваяСтрока.СчетУчетаБУ         = СтрокаТаблицы.СчетУчетаБУ;
        //НоваяСтрока = СчетНачисленияАмортизацииБУ;   //Zofa
                    
        
        Проводка = ПроводкиБУ.Добавить();
        Проводка.Период         = Дата;
        Проводка.Организация    = СтруктураШапкиДокумента.Организация;
        Проводка.Содержание     = "Поступление НМА";
        Проводка.НомерЖурнала   = "НА";
        
        Проводка.СчетДт         = СтрокаТаблицы.СчетУчетаБУ;
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "НематериальныеАктивы", СтрокаТаблицы.Номенклатура);
        
            
        Проводка.СчетКт         = СтруктураШапкиДокумента.СчетУчетаРасчетовСКонтрагентом;
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Контрагенты",        СтруктураШапкиДокумента.Контрагент, Истина);
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Договоры",           СтруктураШапкиДокумента.ДоговорКонтрагента);
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"ДокументыРасчетовСКонтрагентами", СтруктураШапкиДокумента.Ссылка);
        
        //Проводка.СчетДт         = СтрокаТаблицы.СчетУчетаБУ;
        //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "НематериальныеАктивы", СтрокаТаблицы.Номенклатура);   //Zofa

        //Проводка.СчетКт = СтруктураШапкиДокумента.СчетНачисленияАмортизацииБУ;
        //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Нематериальные активы", ПланыСчетов.Типовой.АмортизацияПрограммноеОбеспечение);   //Zofa
        Проводка.Сумма = СтрокаТаблицы.Сумма;
        
        Если СтруктураШапкиДокумента.СчетУчетаРасчетовСКонтрагентом.Валютный Тогда
            Проводка.ВалютаКт        = СтруктураШапкиДокумента.ВалютаВзаиморасчетов;
            Проводка.ВалютнаяСуммаКт = СтрокаТаблицы.СуммаВал;
        КонецЕсли;
        
        // Проводка по НДС
        Если СтруктураШапкиДокумента.УчитыватьНДС И СтрокаТаблицы.НДС > 0 Тогда
            
            Проводка = ПроводкиБУ.Добавить();
            
            Проводка.Период       = Дата;
            Проводка.Организация  = СтруктураШапкиДокумента.Организация;
            Проводка.Сумма        = СтрокаТаблицы.НДС;
            Проводка.Содержание   = "Выделен НДС";
            
            Проводка.СчетДт       = СтрокаТаблицы.СчетУчетаНДС;
            
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"НалогиСборыОтчисления", Справочники.НалогиСборыОтчисления.НалогНаДобавленнуюСтоимость);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"ВидыПлатежейВБюджет", Перечисления.ВидыПлатежейВБюджет.Налог);
            
            Проводка.СчетКт       = СтруктураШапкиДокумента.СчетУчетаРасчетовСКонтрагентом;
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Контрагенты",        СтруктураШапкиДокумента.Контрагент);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Договоры",           СтруктураШапкиДокумента.ДоговорКонтрагента);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"ДокументыРасчетовСКонтрагентами",           СтруктураШапкиДокумента.Ссылка);
            
            Если СтруктураШапкиДокумента.СчетУчетаРасчетовСКонтрагентом.Валютный Тогда
                
                Проводка.ВалютаКт = СтруктураШапкиДокумента.ВалютаВзаиморасчетов;
                Проводка.ВалютнаяСуммаКт = СтрокаТаблицы.НДСВал;
                
            КонецЕсли;
            
        КонецЕсли; // Проводка по НДС
        
    //          НаборДвижений   = Движения.СчетаУчетаНМА;
    //    ТаблицаДвижений = НаборДвижений.Выгрузить();   //Zofa

    //    
    //// Проводки по поступлению НМА

    //    НоваяСтрока = ТаблицаДвижений.Добавить();
    //    НоваяСтрока = СтрокаТаблицы.Номенклатура;
    //    НоваяСтрока.СчетУчетаБУ         = СтрокаТаблицы.СчетУчетаБУ;
    //    НоваяСтрока.СчетНачисленияАмортизацииБУ = СтрокаТаблицы.СчетНачисленияАмортизацииБУ;   //Zofa228

        //
        // Движения по регистру СостоянияНМАОрганизаций
        Движение = Движения.СостоянияНМАОрганизаций.Добавить();
        Движение.Период               = Дата;
        Движение.НематериальныйАктив  = СтрокаТаблицы.Номенклатура;
        Движение.Организация          = Организация;
        Движение.Состояние            = Перечисления.ВидыСостоянийНМА.Поступил;
        
        //Движение по регистру  СчетаУчетаНМА
        Движение = Движения.СчетаУчетаНМА.Добавить();
        Движение.Период               = Дата;
        Движение.НематериальныйАктив  = СтрокаТаблицы.Номенклатура;
        Движение.Организация          = Организация;
        Движение.СчетУчетаБУ          = СтрокаТаблицы.СчетУчетаБУ;
9 birkoFFFF
 
10.06.16
10:49
(7) Пля, не код покажи, а движения которые этот документ сформировал в базе.
Я понимаю что переписанная, но это типовой механизм в БП, оно и без дописок нормально работает, нужны только прямые руки.
10 birkoFFFF
 
10.06.16
10:51
В документе "Принятие к учету НМА" счет учета стоит ?
Показывай скриншот.
11 Solo322
 
10.06.16
10:58
12 Solo322
 
10.06.16
10:59
13 birkoFFFF
 
10.06.16
11:01
Теперь что в регистры записалось?
14 Solo322
 
10.06.16
11:04
15 Solo322
 
10.06.16
11:06
16 birkoFFFF
 
10.06.16
11:07
Дальше вопрос: Амортизацию за какой месяц начисляешь?
17 Solo322
 
10.06.16
11:08
За май
18 birkoFFFF
 
10.06.16
11:09
Ошибки какие-то выдает при проведении?
19 Solo322
 
10.06.16
11:15
Нет, но суммы амортизации нет, это при том что у меня сейчас не проведенный документ "поступления НМА", если провести документ Поступления НМА, то сумма будет подтягиваться корректно, но не будет указан счет учета амортизации и будет выдаваться ошибка. Сейчас покажу.

Без проведения Поступление НМА
https://gyazo.com/1338b131cc0cd65d7b96dd55c05ed4d0
С проведением Поступления НМА
https://gyazo.com/920128e90128b865a0e115fdfff5bf8a