Задача: в результате реорганизации в форме преобразования из ЗАО в ООО появилась новая организация, которой организация-предшественник передает все активы, в том числе НМА.
Было принято решение учет продолжить в той же базе 1С Бух 3 (КОРП). Необходимо корректно отразить передачу НМА в 1С, при этом минимизировать ручной труд.
Решение: получаем остатки по организации предшественнику, и вносим их в новую организацию с помощью документа «Ввод остатков».
Процесс
Так как речь идет о разработке, суть ее в данном случае сводится к написанию обработки, которая будет получать остатки на заданную дату, и программно создавать документ Ввод остатков (ВводНачальныхОстатков).
Чтобы наглядно представить, что нам нужно сделать, создадим тестовый документ вручную в режиме предприятия
Крайне желательно, чтобы в создании этого эталонного документа принял участие заказчик- бухгалтер или аудитор.
Записываем наблюдения:
- При создании документа указывается подразделение организации, в которую должен поступить НМА. То есть нам нужно или создать новые подразделения, если они еще не созданы, или сопоставить старые с новыми, например, на форме обработки.
- Добавляем НМА в табличную часть – видим, что одного счета 04 нам будет недостаточно, надо будет еще взять остатки по 05 (амортизация НМА).
- Также нам понадобится способ отражения расходов по новой организации – нам его также придется взять с формы или создать.
- На вкладках «Бухгалтерский учет», «Налоговый учет» вводятся срок полезного использования, способ начисления амортизации – этих сведения тоже надо будет перенести.
Запишем и проведем документ, он нам понадобится позднее как эталон.
Получим список НМА для переноса
За основу возьмем регистр ХозрасчетныйОстатки с условием ХозрасчетныйОстатки.Счет В Иерархии Счет04, соединенный по Субконто1 с остатками по счету 05.
В процессе дополним этот запрос данными других регистров, в которых находятся нужные нам сведения.
В конфигураторе найдем наш документ ВводНачальныхОстатков и посмотрим на табличную часть НМА. Нам предстоит заполнить 35 реквизитов – не мало, но и не так много: в табличной части ОС в этом же документе – 66 реквизитов.
Для каждого реквизита надо понять, откуда нам его взять.
С помощью запроса выведем реквизиты в таблицу и начнем заполнять
Разберем на примере реквизита «ДатаПриобретения».
Скорее всего, данные для него находятся в одном из регистров сведений. Нам надо установить в каком именно.
Попробуем два способа:
1) Посмотреть Движения документа и определить, в какие регистры записываются движения. Исходим из предположения, что если в эти регистры записываются данные, то из них же можно получить эти данные. Дальше можно посмотреть на структуру этих регистров в конфигураторе и на их записи в базе.
Попробуем на нашем примере:
Нужный нам реквизит находится в регистре «Первоначальные сведения о НМА и НИОКР (налоговый учет)»
2) Попробуем другой способ - поищем этот реквизит в коде. Ориентируясь на названия процедур находим интересующую нас в модуле менеджера документа «Ввод остатков» :
Процедура СформироватьДвижения_НМА_ПервоначальныеСведенияНМАНалоговыйУчет(ТаблицаНМА, Реквизиты, Движения, Отказ)
Для Каждого СтрокаНМА Из ТаблицаНМА Цикл
Движение = Движения.ПервоначальныеСведенияНМАНалоговыйУчет.Добавить();
Движение.НематериальныйАктив = СтрокаНМА.НематериальныйАктив;
Движение.Организация = СтрокаНМА.Организация;
Движение.Период = СтрокаНМА.ДатаПринятияКУчетуРегл;
Движение.НачислятьАмортизацию = СтрокаНМА.НачислятьАмортизациюНУ;
Движение.ПервоначальнаяСтоимостьНУ = СтрокаНМА.ПервоначальнаяСтоимостьНУ;
Движение.СрокПолезногоИспользования = СтрокаНМА.СрокПолезногоИспользованияНУ;
Если Реквизиты.Предприниматель Тогда
Движение.МетодНачисленияАмортизации = Перечисления.МетодыНачисленияАмортизации.Линейный;
Движение.ДатаПриобретения = СтрокаНМА.ДатаПриобретения;
Иначе
Движение.МетодНачисленияАмортизации = СтрокаНМА.МетодНачисленияАмортизацииНУ;
Движение.ДатаПриобретения = СтрокаНМА.ДатаПринятияКУчетуРегл;
Движение.АмортизацияДо2009 = СтрокаНМА.АмортизацияДо2009;
Движение.ФактическийСрокИспользованияДо2009 = СтрокаНМА.ФактическийСрокИспользованияДо2009;
КонецЕсли;
КонецЦикла;
Движения.ПервоначальныеСведенияНМАНалоговыйУчет.УстановитьАктивность(Истина);
Движения.ПервоначальныеСведенияНМАНалоговыйУчет.Записывать = Истина;
КонецПроцедуры
Здесь упоминается тот же регистр. Отметим для себя, что кроме даты приобретения из этого регистра можно взять значения еще нескольких нужных нам реквизитов.
Результат обоих способов одинаковый, но в процессе разработки я пользовался вторым – он быстрее и позволяет опираться на меньшее количество предположений.
Следующий шаг – анализируем регистр и решаем, как нам добавить его в наш запрос.
Структура регистра в конфигураторе
Структура регистра очень простая, всего одно измерение – берем срез последних и получаем по каждому НМА все интересующие нас сведения. В запросе соединим его с Хозрасчетным по Субконто1 = НематериальныйАктив.
Похожим способом ищем все остальные реквизиты, в итоге у меня получилась вот такая таблица:
В данном случае не срослось у меня только с одним реквизитом – ПорядокСписанияНИОКРНаРасходыНУ, не получилось достоверно понять откуда его можно взять. Похожее на правду место, где он фигурирует – документ «Принятие к учету НМА», но находить документ принятия к учету и вытаскивать из него реквизит не входило в мои планы. Тем более, что этот реквизит относится к НИОКР, которых в базе для переноса не было.
ДатаПринятияКУчетуРегл – берем с формы, потому что НМА в новой организации мы принимаем к учету с даты ввода остатков.
ВидОбъектаУчета – это реквизит НМА, для каких-то целей он присутствует в ТЧ отдельно.
По реквизитам, берущимся из регистра Хозрасчетный лучше проконсультироваться с заказчиком – они могут принимать разные значения, в зависимости от того, по какой стоимости принимается НМА к учету.
Переходим собственно к разработке
Создадим обработку и форму в ней. На форму добавим необходимы нам реквизиты:
- Дата остатков – дата, на которую мы будем брать остатки по старой организации
- Дата ввода документа остатков – дата, от которой будет создаваться документ остатков, от нее же НМА будут приняты к учету в новой организации
- Старая организация, Новая организация – тут все понятно
- Старое подразделение, Новое подразделение - так как переносить мы будем из подразделения в подразделение
Еще нам понадобится собственно команда «Перенести НМА» - создадим для нее процедуры на клиенте и на сервере без контекста, в последней будет происходить вся магия.
Сердцем обработки будет наш запрос, где ХозрасчетныйОстатки соединится с найденными нами регистрами сведений, в итоге мы получим сведения по имеющимся в старой организации НМА.
Создадим новый документ ввода остатков. При обходе результатов запроса заполним табличную часть НМА.
Почти все значения в ней будут соответствовать полученным в запросе, кроме:
ДатаПринятияКУчетуРегл – это дата документа, мы ее берем с формы
СпособОтраженияРасходов – он должен относиться к новой организации, поэтому мы его поищем по наименованию в новой организации, а если не найдем – создадим по образу и подобию старого способа, обновивив организацию и подразделение.
Запишем полученный документ. После этого его можно будет еще раз проверить в режиме предприятие и если все хорошо – провести, после этого перенос можно считать завершенным.
Маленький штрих – в процедуре формы ПриСозданииНаСервере для удобства зададим значения реквизитов формы по умолчанию.
По аналогичной методике можно разработать и перенос других активов, например, основных средств. Полностью процесс описывать не буду, отмечу лишь, что он несколько сложнее, чем перенос НМА. Для ознакомления к статье прилагается обработка «Перенос ОС».
¬
Решение разрабатывалось и тестировалось на:
Платформе 1С:Предприятие 8.3 (8.3.15.1700)
Конфигурации Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.71.75)
Прилагаются обработки
Перенос НМА
Перенос ОС
Обработки предназначены для ознакомления с методикой. Не рекомендуется использование «как есть» в реальных условиях, так как разработка производилась под конкретные задачи заказчика.