Понятие адаптации и модификации ПО для получения налоговых льгот
У многих IT-компаний, работающих в сфере информационных технологий, продолжают возникать вопросы по поводу процессов адаптации и модификации программ для ЭВМ: что это для целей уплаты налога на прибыль и страховых взносов. На основе разъяснений Минцифры России вносим ясность.
Льготы и термины
- уменьшение ставки по налогу на прибыль –в федеральный бюджет 3%, а в региональный 0 процентов;
- пониженные тарифы страховых взносов.
Разбор понятий
В письме от 27.01.2022 № П11-2-05-200-3571 Минцифры разъяснило, что понимать под модификацией и адаптацией программы для ЭВМ, базы данных.
Модификация в соответствии с толкованием в словарях русского языка означает «видоизменение», «преобразование». Значения термина «модификация» как «видоизменения» также определяют:
НОРМА | СОДЕРЖАНИЕ |
Пункт 9 ст. 1270 ГК РФ | Под переработкой (модификацией) программы для ЭВМ или базы данных понимаются любые их изменения, в том числе перевод с одного языка на другой, кроме адаптации. То есть внесение изменений исключительно в целях функционирования программы для ЭВМ или базы данных на конкретных технических средствах пользователя или под управлением конкретных его программ. |
Пункт 3.11 национального стандарта ГОСТ Р 51904-2002 «Программное обеспечение встроенных систем. Общие требования к разработке и документированию» (утв. и введен в действие постановлением Госстандарта России от 25.06.2002 № 247-ст, далее – ГОСТ Р 51904-2002). | Под изменением программного обеспечения (ПО) понимается модификация исходного кода, исполняемого объектного кода или сопутствующих документов относительно их базовой линии. |
Химия Просто! Что будет, если Модифицировать Картошку? Аллотропные модификации в химии
Изменения в целях обеспечения функционирования программы для ЭВМ или базы данных на конкретных технических средствах пользователя или под управлением конкретных его программ являются адаптацией (п. 9 ст. 1270 ГК РФ).
Минцифры уточнило, что адаптация, так же как и модификация, может включать в себя внесение изменений в исходный код, исполняемый объектный код или сопутствующие документы.
Сложные современные программы для ЭВМ, базы данных для обеспечения их функционирования в конкретном программном и аппаратном окружении конечного пользователя часто требуют комплексной настройки, интеграции и/или доработки под требования конкретной организации. Такие работы и услуги, направленные на создание адаптированной версии программы для ЭВМ/базы данных, в том числе путем параметрической настройки, доработки и изменения скриптов, конфигурационных файлов, в том числе файлов, учитывающих параметры оборудования клиента и необходимых для привязки программы для ЭВМ, базы данных к оборудованию клиента, и т. п., являются адаптацией.
Организация считается выполняющей работы по адаптации и/или модификации программ для ЭВМ, баз данных, в том числе, когда выполнение таких работ (оказание услуг) не привело к созданию и/или оформлению законченного нового объекта – производной модифицированной и/или адаптированной программы для ЭВМ, базы данных.
Перехват и модификация трафика | атака MitM через Burp Suite
Какие документы подтверждают модификацию, адаптацию
В случае выполнения работ (услуг), в том числе некоторых процессов (их части), по модификации и/или адаптации программы для ЭВМ, базы данных в качестве подрядчика (исполнителя) участие в этом могут подтверждать, как документы самой организации, так и документы организации – заказчика таких работ.
При этом для признания организации выполняющей работы (услуги) по модификации и/или адаптации не имеет правового значения, в рамках какого именно вида договора ГПХ происходили эти процессы. Это может быть:
- договор оказания услуг;
- выполнения работ;
- непоименованный;
- смешанный договор и др.
Минцифры: при использовании в договорах, первичке и иных документах терминов и выражений, отличных от «модификация» и «адаптация», но по существу предусматривающих выполнение работ (услуг), направленных на решение названных выше задач, следует исходить не из формы, а смыслового значения таких терминов и выражений. С учётом разъяснений, приведённых выше.
Что нужно различать
Это адаптация/модификация как:
- самостоятельные процессы разработки программы для ЭВМ, базы данных;
- и они же – как часть процесса установки или сопровождения ПО, базы.
По общему правилу адаптация и/или модификация программы для ЭВМ, базы данных с учетом разъяснения значения этих терминов и содержания входящих в них видов работ (услуг), представляют собой самостоятельные процессы.
Таким образом, организация считается осуществляющей установку, тестирование и/или сопровождение программы для ЭВМ/базы данных, которую она модифицировала и/или адаптировала, в случаях:
- наличия у неё документального подтверждения проводимых или ранее завершенных работ по адаптации/модификации программы для ЭВМ/базы данных, в отношении которой компания делает установку, тестирование и/или сопровождение;
- непосредственного включения в договор на установку, тестирование и/или сопровождение работ по адаптации/модификации.
Заключение
Если ИТ-компания исходит из терминологии, разъяснённой Минцифры в приведённом письме, то может спокойно применять льготы по налогу на прибыль и взносам.
Источник: buhguru.com
Как IT-фирме подтвердить модификацию, адаптацию в целях налоговых льгот
Эти работы зачтутся, даже если не привели к созданию нового объекта — производного ПО. При этом не важно, как именно назван договор с заказчиком, и какие термины там используются — важна суть, считает Минцифры.
IT-организация имеет право на льготы по налогу на прибыль и страховым взносам, если доход от разработки, модификации, адаптации, установки, тестирования, сопровождения ПО – не менее 90% от всех доходов фирмы. При этом в «целевой» доход не включается то, что получено от манипуляций с ПО, служащим целям рекламы, поиска контрагентов, заключения сделок или размещения коммерческих предложений (что в этот список входит – здесь). Всё ещё остаются вопросы насчет того, как трактовать понятия модификации, адаптации, тестирования, сопровождения ПО, и на эту тему периодически дает свои разъяснения Минцифры. Недавно вышло новое письмо ведомства по этому поводу (от 27.01.2022 N П11-2-05-200-3571).
Адаптация, модификация
По смыслу модификация – это видоизменение, преобразование, что закреплено также в ГК и ГОСТ-Р по ПО. По ГК это любые изменения (кроме адаптации под систему конкретного пользователя), включая перевод с одного языка на другой. По ГОСТУ под изменением ПО понимается модификация исходного кода, исполняемого объектного кода или сопутствующих документов относительно их базовой линии.
Также по ГОСТу новая разработка, модификация, многократное использование, перепроектирование или любое другое действие, требуемое для создания программных средств, относятся к термину «разработка ПО». ГК отдельно определяет адаптацию – это изменения в целях функционирования ПО на конкретных технических средствах пользователя или под управлением конкретных его программ.
Адаптация, так же, как и модификация, может включать в себя внесение изменений в исходный код, исполняемый объектный код или сопутствующие документы. Под пользователя ПО часто требует комплексной настройки, интеграции и (или) доработки. Так что в адаптацию может входить параметрическая настройка, доработка скриптов, конфигурационных файлов, в том числе файлов, учитывающих параметры оборудования клиента и необходимых для привязки ПО к нему. Организация выполняет работы по адаптации или модификации в том числе в случаях, когда выполнение таких работ не привело к созданию и (или) оформлению законченного нового объекта – производной модифицированной и (или) адаптированной программы, базы данных.
Чем подтвердить
Для подтверждения выполнения таких работ могут служить любые документы, доказывающие участие работников организации или лиц, привлеченных ею по ГПД, в указанных работах. Это могут быть документы как самой организации-разработчика, так и заказчика. Не имеет правового значения, в рамках какого именно вида договора происходила адаптация или модификация (договор оказания услуг, выполнения работ, непоименованный, смешанный договор и другое). При использовании в договорах, первичных учетных и иных документах терминов и выражений, отличных от терминов «модификация» и (или) «адаптация», но по существу предусматривающих выполнение именно таких работ, следует исходить не из формы, а из смыслового значения таких терминов и выражений, указывает Минцифры.
Самостоятельный процесс и нет
Адаптация и модификация могут быть как отдельными процессами, так и работами, предваряющими, опосредующими или являющимися частью процессов установки, тестирования и (или) сопровождения ПО. Так что все эти работы могут быть предусмотрены одним договором. Как вариант – может быть отдельное подтверждение работ по модификации и адаптации того ПО, на которое также есть договор на установку, сопровождение.
Источник: www.audit-it.ru
2.5. Модификация программы
Следующий пример демонстрирует возможности ООП-программирования при разработке новых программ на основе ранее созданных. Свойства наследования и полиморфизма позволяют существенно экономить трудозатраты за счет использования ранее созданных объектов.
Пусть ставится задача моделирования качения квадрата по некоторой, достаточно гладкой, криволинейной поверхности (рельефу) (рис. 2.3). Новый объект TScreen1, удовлетворяющий условиям задачи, может быть получен наследованием из объекта TScreen.
Он содержит дополнительное поле Ground в виде целочисленного массива ординат рельефа и поле Sides0 для промежуточного хранения предыдущих координат сторон квадрата в процессе качения. Очевидно, что должны быть переопределены методы Init, DrawGround, ShiftOsXY и Go. Кроме того, понадобятся новые методы CalcABC и Dist для реализации подалгоритмов переопределяемых методов.
Рис. 2.3. Качение квадрата по криволинейной поверхности.
Далее приведен текст программы, полученный указанным способом.
Uses SqUnit, Crt, Graph;
Const sizeSq = 80; colorSq = 12; colorG = 2; deltaG = 400; n=1000;
Type TScreen1 = Object( TScreen )
Constructor Init ( aa, colK, colG :Byte; dG :Integer );
Function TScreen1 .Dist (A,B,C, xx,yy :Real) :Real;
Begin Dist := Abs((A*xx+B*yy+C) / Sqrt(A*A+B*B)); End;
Procedure TScreen1 .CalcABC( Var S1,S2 :TLine; Var A,B,C :Real );
Var xn,yn,xk,yk :Real;
xn := (S1.pn.x+S2.pk.x)/2; yn := (S1.pn.y+S2.pk.y)/2;
xk := (S1.pk.x+S2.pn.x)/2; yk := (S1.pk.y+S2.pn.y)/2;
A := yk — yn; B := xn — xk; C := xk * yn — xn * yk;
Function TScreen1 .ShiftOsXY :Boolean;
Var Ax, Bx, Cx, Ay, By, Cy, xx, yy :Real; i :Integer;
CalcABC( Sides[1], Sides[3], Ax, Bx, Cx );
CalcABC( Sides[0], Sides[2], Ay, By, Cy );
Destructor TScreen1 .Done;
Begin Inherited Done; End;
With Screen1 Do Begin
Init ( sizeSq, colorSq, colorG, deltaG );
В Constructor’е Init в начале генерируются точки рельефа путем сложения нескольких гармоник со случайными параметрами: амплитудой, частотой и фазой. Затем квадрат устанавливается в свое начальное положение.
Для этого, среди первых аа точек (аа — размер стороны квадрата) массива Ground, находится минимальное значение Gdisp, которое определяет положение нижней стороны квадрата. По ней вычисляются положения остальных сторон вызовом Constructor’а Init родительского типа.
Значение минимума Gdisp и его смещение в массиве Ground определяют положение точки контакта квадрата с поверхностью качения, следовательно и начальные координаты OsX, OsY оси вращения. После прорисовки рельефа на экране Constructor Init завершает свою работу.
Следующим важным для работы программы является метод ShiftOsXY, который контролирует контакт с рельефом и своевременно смещает ось вращения в новую позицию. Для определения момента пересечения квадрата поверхности рельефа после очередного поворота его на небольшой угол step проводятся испытания всех точек рельефа в диапазоне от OsX+1 до OsX + 1.5*as на предмет попадания их во внутрь квадрата. С этой целью вычисляются координаты каждой из этих точек в локальной системе координат X10Y1 квадрата (см. рис. 2.3). Указанный алгоритм реализуется методами CalcABC и Dist. В методе CalcABC вычисляются параметры прямой Ax + By + C = 0 – одной из осей локальной системы координат X10Y1, а в методе Dist вычисляется расстояние (координата) точки до соответствующей оси по формуле:
Dist = ,
где xi,yi — координаты точки рельефа в глобальной (экранной) системе координат.
Если каждая из полученных координат по абсолютной величине меньше половины длины стороны квадрата, то данная точка рельефа попадает во внутрь квадрата, поэтому данное положение квадрата не отображается на экране, а восстанавливаются предыдущие координаты квадрата (оператор Sides: = Sides0) и ось вращения перемещается в отмеченную ранее точку. Факт смены оси вращения отмечается в результате функции ShiftOsXY значением True.
Метод Go обеспечивает перемещение квадрата и его отображение на экране, а алгоритм практически не отличается от прототипа в TScreen. Как видим, получение новой версии программы не потребовало существенных трудозатрат за счет использования преимуществ объектно-ориентированного программирования. Возможны дальнейшие модификации программы, например, перевести ее в режим двухстраничного отображения, что устранит мелькания изображения на экране. Для более углубленного изучения ОО-программирования предлагается использовать визуальную среду программирования Delphi.
Источник: studfile.net
Модернизация программного обеспечения — зачем нужна и как заказать
Любой программный продукт, предназначенный для работы под той или иной платформой, имеет свой срок службы, зависящий от стремления и возможностей компании-разработчика по поддержке своего решения в процессе его эксплуатации заказчиками. Как только разработчик отказывается поддерживать выпущенный продукт, у использующих его компаний или потребителей возникает потребность модернизации программного обеспечения, чтобы оно соответствовало возросшим запросам или изменившейся конъюнктуре применения. О том, зачем это нужно и каким образом можно заказать модификацию программы или мобильного приложения, постараемся рассказать в рамках текущего материала.
Причины
Первое, с чего стоит начать, это причины возникновения потребности в модернизации программного обеспечения, а говоря простым языком — его модификации под нужды пользователя. Возникнуть они могут, исходя из многих факторов, основные из которых перечислим ниже:
- устаревание ПО;
- отсутствие поддержки со стороны компании-разработчика;
- присутствие ряда архитектурных недостатков, снижающих гибкость ПО;
- необходимость усовершенствовать программу под текущие требования или новую программную оболочку;
- утрата контроля над содержащимися в программе данными.
Процесс устаревания ПО провоцирует существенное снижение эффективности программного обеспечения, модернизацию которого обычно выполняет разработавшая продукт компания. Но зачастую последним приходится отказываться от поддержки устаревшего продукта в пользу разработки более совершенного ПО. Стоимость более современной программы может оказаться существенно выше уже выплаченной покупателем в момент приобретения эксплуатируемого ПО суммы, что зачастую становится крайне невыгодным мероприятием.
Однако чаще всего потребность модернизировать программу или целый комплекс возникает по причине расширения спектра задач, которые должно охватывать ПО. В том числе за счет увеличения количества сотрудников, с ним взаимодействующих, либо банальной необходимости улучшить и расширить пользовательский интерфейс.
Задачи модернизации ПО
Процедура модернизации программного обеспечения преследует сразу несколько целей, полностью перекрывающих потребности организаций, заинтересованных в заказе такого рода услуг. Перечислим их:
- расширение функционала;
- адаптация под новые аппаратные платформы и технологии;
- перенос и адаптация пользовательских данных;
- оптимизация производительности;
- системная интеграция.
Компания, выполняющая работы по модификации программного обеспечения, получает от заказчика полный список задач, которые требуется выполнить в рамках предстоящей модернизации. Только Гграмотно составленное техническое задание на проведение предстоящих работ обеспечит полное соответствие модернизированного ПО требованиям клиента, о чем задумавшимся об улучшении используемых на предприятии программ руководителям стоит побеспокоиться заранее. Также необходимо заключить с разработчиком, готовым произвести модернизацию ПО, специальный договор, описывающий условия и сроки дальнейшей технической поддержки улучшившего функционал решения.
Где заказать?
Выбор разработчика, осуществляющего модификацию “чужих” программ или мобильных приложений, основывается на специфике применения нуждающегося в изменении ПО. Самым оптимальным будет разослать запросы компаниям-разработчикам с подробным перечнем требований к обновленному функционалу эксплуатируемого продукта, чтобы те смогли оценить свои возможности и подготовить для заказчика свой список уточняющих вопросов либо направить встречное предложение о проведении работ по модификации ПО. Вопрос стоимости модернизации программного обеспечения напрямую зависит от сроков реализации задуманного, а также квалификации команды разработчиков, которой предстоит выполнять работы. Все пункты предстоящего взаимодействия сторонам соглашения стоит обсудить заранее, включая этапы и форму проведения тестирования промежуточных версий модифицированной под нужды заказчика программы. Это застрахует обе стороны от возникновения спорных вопросов, особенно в части финансового обеспечения работ.
27 апреля, 2015 / от ru-user Теги: по, программное обеспечение
Поделиться записью
- Поделиться Facebook
- Поделиться Twitter
- Поделиться LinkedIn
Источник: ru.intechcore.com