Ошибка исправлена как пишется

Неисправленная вовремя ошибка в коде может привести к разным последствиям. в отдельных случаях это может очень критично отразиться на работоспособности

Неисправленная вовремя ошибка в коде может привести к разным последствиям. В отдельных случаях это может очень критично отразиться на работоспособности всей программы.

Что самое интересное многие разработчики, как опытные, так и новички, иногда оставляют решение некритичных ошибок «на потом», считая, что потом появится время их решить. Но, как известно, «на потом» это значит «никогда». Потому что если ошибка некритичная, то и приложение функционирует нормально, а значит, про сам баг со временем просто забывают. А любая неисправленная вовремя ошибка — это как мина замедленного действия: она может «рвануть» в любое время, а когда никто не знает; но в то же время может и не рвануть вообще.

Мы приведем несколько причин, почему всегда нужно вовремя исправлять ошибки в коде и к чему может привести их игнорирование.



 


К чему приводит неисправленная вовремя ошибка в программе?

  1. Не исправленная вовремя ошибка прячет в себе новые баги. Такая ситуация не сразу заметна. Но любая проигнорированная ошибка может спровоцировать возникновение новых. Это заметно, когда вы вспомнили о забытом баге и «пошли» исправлять тот участок кода, где находится баг. Вы его исправили — участок кода работает хорошо. Но со временем начинают «всплывать» новые баги, которых раньше не было, — это и есть «скрытые» ошибки, которые возникли из-за игнорирования «некритичного бага». Любой некритичный баг может вскрывать или провоцировать возникновение критичных багов, поэтому исправляйте их сразу.

  2. Неисправленная вовремя ошибка влияет на качество кода. Любой программист хочет, чтобы его код был идеален. Но если в коде есть не исправленный баг, то это как индикатор того, что можно писать код некачественно, потому что и с багом все работает. Представьте, что над кодом работают несколько разработчиков. Все стараются. Но в какой-то момент один из разработчиков решил не исправлять некритичный баг. Через время другой разработчик его увидел и решил тоже не исправлять свой некритичный баг, потому что он увидел, что так можно. И так продолжается со всеми членами команды. Со временем общее качество кода ухудшится, а в команде будет «висеть» вопрос: «А нужно ли вообще стараться?». Поэтому любая не исправленная вовремя ошибка ухудшает код и ослабляет рабочее состояние команды.

  3. Неисправленная вовремя ошибка — это лишние разговоры. Когда накапливаются нерешенные баги, наступает момент разговора на темы: «Откуда появились нерешенные баги?», «Кто спровоцировал их возникновение?», «Почему не исправили вовремя?», «В какой последовательности нужно все исправлять?» и т. д. Лишние разговоры — это даром потраченное время, которое можно использовать с пользой. Поэтому, чтобы не тратить время на пустые дискуссии, просто исправляйте вовремя свои ошибки.

  4. Не исправленная вовремя ошибка — это всегда дополнительная работа. И чем больше их накапливается, тем больше времени они требуют. К примеру, когда в процессе работы накопилось штук 60 ошибок и кто-то заявляет о 61-й, то, элементарно, много времени тратится на то, чтобы просто просмотреть, а есть ли данная ошибка в отчетах об уже известных багах? 

  5. Ошибка, которая не исправлена вовремя, всегда ухудшает общую статистику. Сколько существует команд разработчиков, столько существует и способов отслеживать ошибки в программировании. В командах, где об ошибке записывают всю информацию: от ее значимости и до времени жизни, а потом эти показатели переносят на общую эффективность команды, любая неисправленная вовремя ошибка приводит к искажению данных и ухудшению общей статистики работы команды.

  6. Нерешенная ошибка всегда отвлекает. Простая ситуация: программист дополняет чей-то код и находит старый баг. В голове его сразу возникает куча вопросов: «Кто допустил?», «А можно ли так продолжить работу?», «А должен ли я ее исправлять, или исправить должен тот, кто ее допустил?», «А нет ли еще подобных ошибок в коде?» и т. д. Поиск ответов на все эти вопросы всегда отвлекает от основной работы — кодинга.

  7. Неисправленная вовремя ошибка может сорвать релиз. Представьте ситуацию, что нужно срочно выпустить обновление программы или предоставить заказчику рабочую версию нового продукта в сжатые и ограниченные сроки. Это всегда будет стрессом для всей команды, так как нужно сгруппироваться и поднатужиться. Но тут всплывает, что у программы присутствует большое количество нерешенных багов, которые тоже нужно решить до релиза. Поэтому прибавляется еще больше работы, а значит, есть вероятность что-то не успеть.

  8. Ошибки срывают сроки. Если продолжить пункт с сорванным релизом. Такое может произойти не только в критической ситуации с ограниченным временем. Даже в обычном темпе разработки есть вероятность сорвать сроки из-за не вовремя исправленной ошибки. Разные баги требуют разного времени на их решения. Некоторые решаются за считанные секунды, другие за минуты, третьи за часы, а некоторые могут решаться днями. В какой категории ваша не исправленная вовремя ошибка пока не известно.

  9. Чем дольше не исправляется баг, тем сложнее его будет исправить в будущем. Когда баг обнаружен в «свежем» коде, то и исправить его легче. Потому что если пройдет 2-3 недели, то код, где содержится баг, забудется и станет непонятным и «размытым». Это естественно, потому что прошло время, а после «того» написанного кода вы писали еще много чего, и мозг просто подзабыл, поэтому придется заново разбираться, что там и как.



 


Заключение

Неисправленная вовремя ошибка может ничего в себе не нести, а может принести кучу разных проблем. Поэтому откладывать «на потом» это большой риск. Вывод только один: если нашли ошибку в коде, даже если она незначительная, то всегда исправляйте ее сразу.

Ошибка исправлена как пишется

Первичный документ является основанием для отражения хозяйственной операции в бухгалтерском учете (п. 2.2 Положения, утвержденного приказом Минфина от 24.05.95 г. № 88, далее — Положение № 88). Кроме того, на основании первичных документов могут формироваться показатели налоговых деклараций (п. 44.1 НК). Поэтому, если в первичный документ закралась ошибка, важно знать, как ее исправить, чтобы потом не возникало проблем в ходе документальной проверки. В консультации мы расскажем, как можно исправить ошибки в первичных документах.

Первичный документ: обязательные реквизиты

Согласно п. 2.1 Положения № 88 первичный документ – это документ, который был создан в письменной или электронной форме и содержит сведения о хозяйственной операции. К первичным документам также относятся распоряжения и разрешения руководства предприятия на проведение хозяйственных операций (например, приказы).

Для того чтобы первичный документ служил основанием для совершения хозяйственной операции, он должен содержать такие обязательные реквизиты, как (ч. 2 ст. 9 Закона от 16.07.99 г. № 996-XIV, п. 2.4 Положения № 88):

  • название;
  • дата составления документа (формы);
  • наименование предприятия, от имени которого составлен документ;
  • содержание, объем и единица измерения хозяйственной операции. При этом единица измерения должна быть выражена в натуральном и/или стоимостном выражении;
  • должности лиц, ответственных за осуществление и правильность оформления хозоперации;
  • личная подпись или другие данные, позволяющие идентифицировать лицо, которое участвовало в хозоперации.

Мы привели перечень обязательных реквизитов первичного документа, но в зависимости от характера операции и технологии обработки данных на предприятии первичные документы могут содержать и дополнительные реквизиты, например: идентификационный код предприятия, номер документа, основание для осуществления операций, данные о документе, который удостоверяет получателя, и т. п.

На заметку! Печать не является обязательным реквизитом первичного документа. Документ должен быть подписан лично, а подпись может быть скреплена печатью (п. 2.5 Положения № 88).

В чем особенность электронного первичного документа?

Прежде всего следует помнить, что первичные документы, составленные в электронной форме, применяются в бухгалтерском учете при условии соблюдения требований законодательства об электронных документах и электронном документообороте.

Согласно определению, приведенному в ст. 5 Закона от 22.05.03 г. № 851-IV (далее — № 851), электронный документ – это документ, информация в котором зафиксирована в форме электронных данных, включая обязательные реквизиты. Электронный документ может быть создан, передан, сохранен и преобразован электронными средствами в визуальную форму.

Напомним, визуальной формой представления электронного документа является отражение данных, которые он содержит, электронными средствами или на бумаге в фор­ме, пригодной для восприятия его содержания человеком.

Отношения, связанные с электронным документооборотом и использованием электронных документов, регулируются нормами Законов № 851 и от 05.10.17 г. № 2155-VIII (далее — Закон № 2155).

Что касается обязательных реквизитов электронного документа, то в ст. 5 Закона № 851 сказано, что состав и порядок размещения обязательных реквизитов электронного документа определяется законодательством. То есть электронный документ должен иметь те же обязательные реквизиты, которые установлены для аналогичного бумажного документа (п. 2 разд. II приказа Минюста от 11.11.14 г. № 1886/5).

Оригиналом электронного документа считается электронный экземпляр документа с обязательными реквизитами, в том числе с электронной подписью автора или подписью, приравненной к собственноручной в соответствии с Законом № 2155. Отметим, что к собственноручной подписи приравнивается квалифицированная электронная подпись (далее – КЭП).

Исправление ошибок в первичных документах

Первичные документы, как и учетные регистры, следует заполнять без помарок и подчисток. Но если все-таки ошибки были выявлены, они должны быть исправлены.

Как исправить ошибку в бумажном документе?

Ошибка в бумажной первичке исправляется корректурным способом. При этом способе неправильный текст или сумма зачеркивается и над зачеркнутым пишется правильный текст или сумма (п. 4.2 Положения № 88). Затем пишется слово «Исправлено», и все это подтверждается подписями ответственных лиц с указанием даты исправления (п. 4.4 Положения № 88).

Обратите внимание! Не во всех первичных документах можно исправить ошибки. Так, не допускается исправления ошибок в кассовых и банковских документах, а также в документах, которыми оформляются операции с ценными бумагами (п. 4.5 Положения № 88).

Как исправить ошибку в электронном документе?

Как следует из п. 4.6 Положения № 88, ошибки в первичных электронных документах исправляются в соответствии с законодательством. Однако в Законе № 851 об исправлении ошибок в электронном документе ничего не сказано. Также не прописана данная процедура и в других подзаконных актах. Исключение составляет электронная отчетность, подаваемая в контролирующие органы.

Отсюда следует, что предприятие должно самостоятельно установить порядок исправления ошибок в электронных документах:

  • либо отменять документ с ошибкой и оформлять новый;
  • либо вносить изменения в уже созданный документ с обязательным сохранением истории изменения.

Рекомендация! Во избежание конфликтных ситуаций процедуру исправления электронных документов при внешнем докумен­тообороте целесообразно согласовать с их адресатом.

Каковы особенности исправления ошибки, допущенной в платежном поручении?

Возможность и способ исправления ошибки в платежном поручении зависит от ее вида и момента обнаружения. Так, если:

  • ошибка в документе выявлена при его обработке в банке плательщика, то документ заменяется другим платежным поручением с правильными реквизитами;
  • ошибка в реквизитах получателя выявлена в банке получателя, тогда банк направляет запрос для уточнения реквизитов. Если реквизиты уточняются, зачисляет средства, если же уточнить их невозможно – возвращает средства не позднее четвертого рабочего дня (п. 2.32 Инструкции, утвержденной постановлением Правления НБУ от 21.01.04 г. № 22, далее — Инструкция № 22);
  • ошибка допущена в выборе получателя, то средства, которые ошибочно зачислены на счет ненадлежащего получателя, должны возвращаться им в сроки, установленные законодательством (п. 2.35 Инструкции № 22). В соответствии с п. 35.1 Закона от 05.04.01 г. № 2346-ІІІ сделать это надо в течение трех рабочих дней со дня получения уведомления от своего банка;
  • ошибка допущена в назначении платежа при оплате товаров, работ, услуг, в этом случае плательщик информирует контрагента об ошибке официальным письмом и указывает правильное назначение платежа.

Покажем на примере, как исправить ошибку в первичном документе корректурным способом.

Пример. Исправление ошибки

Со склада предприятия было отпущено 39 листов ДСП ламинированной форматом 2 000 х 1 800 х 20 мм по цене 6 000 грн/шт. Однако в накладной ошибочно было указано 36 листов. Ошибка была обнаружена 11.11.19 г. и исправлена корректурным способом (см. образец).

Образец

Накладна-вимога на відпуск (внутрішне переміщення) матеріалів

(грн)

Кореспондуючий рахунок

Матеріальні цінності

Одиниця вимиру

Кількість

Ціна

Сума

рахунок, субрахунок

найменування, сорт, розмір, марка

найменування

вiдправлено (належить відпустити, затребувати)

прийнято (відпущено)

1

2

3

4

5

6

7

201

ДСП ламінована 2 000 х 1 800 х 20 мм, чорна

Лист

39

39

36

6 000,00

234 000,00

216 000,00

Виправлено 11.11.19 р. (підпис) Я. А. Пономаренко

тридцять дев’ять двісті тридцять чотири тисячі грн 00 коп.
Усього відпущено тридцять шість найменувань на суму двісті шістнадцять тисяч грн 00 коп.

Выводы. Первичные документы: исправляем правильно

  1. Первичный документ служит основанием для отражения хозяйственной операции в бухгалтерском и налоговом учете.
  2. Ошибки в первичных документах в бумажной форме исправляются корректурным способом.
  3. Не допускается исправление ошибок в кассовых и банковских документах, а также в документах, которыми оформляются операции с ценными бумагами.

Источник: Практическое руководство № 22, октябрь 2019 года.

Довольно часто во время производственного процесса допускаются различные ошибки при заполнении разных документов. Ошибки в локальных актах и ведомостях не имеют столь важного значения, как неточности в первичной документации и отчетности. Важно обратить внимание на то, что существует категория документов, куда запрещается вносить новую информацию. К документам, которые не подлежат исправлению, можно отнести кассовые журналы и банковские бумаги. Помимо этого, запрещается делать изменения в учредительной документации. В данной статье мы предлагаем рассмотреть правила исправления первичной документации.

Ispravlennomu verit v dokumentah obrazets 5При ведении документов и регистров помарки, подчистки не допускаются как в цифровой, так и в текстовой части

Инструкция по внесению исправлений

«Исправленному верить» — как правильно пишется? Для того чтобы ответить на данный вопрос, потребуется рассмотреть несколько практических примеров. Для начала мы предлагаем ознакомиться с общей инструкций коррекции первичных документов. Перед тем как начать вносить изменения, необходимо тщательно изучить документ, и выявить ряд ошибочных сведений.

После этого, неправильная информация аккуратно перечеркивается одной чертой. Одной из самых распространенных ошибок в данном процессе является использование корректоров. Согласно действующим правилам, при исправлении некорректно составленных документов, неправильные сведения зачеркиваются тонкой чертой. Это правило объясняется тем, что человек, изучающий документацию должен иметь возможность ознакомиться с неправильной информацией.

Правильные сведения могут быть указаны рядом с неверными, данными или на обратной стороне документа.

Перед тем как фиксировать новые данные, следует сделать отметку «Исправлено на». Одним из важных моментов исправления неправильно составленных бланков является указание даты коррекции. Помимо этого, должностному лицу, занимающемуся исправлением акта, необходимо указать свою фамилию и занимаемую должность. После внесения исправления, заполненный документ заверяется подписью и фирменной печатью.

Также следует сказать о том, что использование различных корректоров и других средств для удаления неточной записи может повредить документ. Первичная документация должна иметь аккуратный вид.

Отдельного внимания заслуживают ошибки в кассовой документации. В случае допущения ошибки при заполнении данных документов, испорченный бланк утилизируются. В данной ситуации, следует соблюдать все правила утилизации подотчетной документации. Вся информация, содержащаяся в акте или квитанции, перечеркивается длинной чертой. В верхней части документа фиксируется отметка «Аннулировано». Важно обратить внимание, что уничтожение неправильно составленного бланка рассматривается как грубая ошибка. Аннулированные записи должны храниться в архиве предприятия на протяжении срока, установленного государством.

Важно обратить внимание, что документы, которые используются между двумя компаниями (товарные накладные, договора) исправляются только после уведомления контрагента. В рассматриваемом случае обговариваются все нюансы внесения откорректированных сведений. Также следует отметить, что новые сведения указываются в двух экземплярах документа. Новая информация должна быть зафиксирована не только в актах, которые хранятся на территории компании, но и в той документации, что хранится у контрагента. При исправлении первичной документации, откорректированный акт заверяется фирменной печатью и подписью руководителя компании.

«Исправленному верить» в документах, образец:

Ispravlennomu verit v dokumentah obrazets 3Для исправления ошибочных записей в бухгалтерском учете применяется несколько способов

Исправление больничного листа

Довольно часто на специализированных формах можно увидеть вопрос: «Может ли работодатель исправлять больничный лист». Согласно правилам, установленным ФСС, данный документ может быть исправлен только в том случае, когда ошибка допущена самим работодателем. Уникальность больничного листа заключается в том, что он входит в категорию как медицинских, так и финансовых документов. Именно этот аспект, является причиной повышенных требований к заполнению этого бланка.

Важно обратить внимание, что лист временной нетрудоспособности, содержащий в себе грубые ошибки, может быть не принят ФСС. В этой ситуации, сотрудник может потерять свою законную финансовую компенсацию. Фондом социального страхования выделен перечень ошибок, наличие которых не является причиной необходимости коррекции документа. Такие ошибки рассматриваются как технические недочеты. Среди них следует выделить:

  • указание некоторых слов прописными буквами;
  • пустые ячейки, не содержащие прочерков;
  • наличие лишних пробелов;
  • неправильное указание названия компании работодателя;
  • наличие печати на заполненных полях.

Также следует сказать о том, что в некоторых случаях ФСС принимают листы недееспособности, заполненные шариковой ручкой. Важно отметить, что ошибки, не входящие в перечень, приведенный выше, рассматриваются как грубые нарушения правил заполнения бланка. В этом случае, работнику потребуется вновь обратиться в медицинское учреждение для получения дубликата больничного листа.

Но что делать, если ошибка в листе временной нетрудоспособности допущена работодателем. В этом случае, неправильные сведения перечеркиваются тонкой линией. Важно обратить внимание, что при заполнении этого бланка необходимо использовать исключительно гелевую ручку. После того как неправильная надпись будет перечеркнута, на обратной стороне листа делают новую отметку.

Для того чтобы документ не потерял свою юридическую силу, необходимо сделать отметку «Исправленному верить». После внесения новой информации, бланк заверяется фирменной печатью и подписью ответственного лица. Заполнять больничный лист может не только руководитель компании. Данные полномочия имеются у главного бухгалтера и представителей кадрового отдела.

Вносить исправления необходимо тому человеку, который изначально занимался заполнением документа. В том случае, если работник осуществляет свою деятельность в ИП, фирменная печать ставится только при её наличии. В том случае, когда одна из строк рассматриваемого бланка содержит полностью неверную информацию, предложение перечеркивается полностью. На обороте документа фиксируется отметка о том, что зачеркнутая строка недействительна.

Ispravlennomu verit v dokumentah obrazets 2Исправление ошибки в первичном документе должно быть оговорено надписью «Исправлено»,
подтверждено подписью лиц, подписавших документ

Как показывает практика, ошибки при заполнении листов временной нетрудоспособности чаще всего допускаются при указании наименования компании. Данная ошибка может быть допущена как представителем медицинского учреждения, так и работодателем. В том случае, когда неверная информация о работодателе указывается лечащим врачом, бланк не подлежит исправлению. Такой документ будет принят в любом случае. Причиной допущения подобной ошибки может быть неверное указание места трудовой деятельности самим работником.

Когда ошибка в названии компании допускается руководителем предприятия, неверные сведения исправляются стандартным методом. Для этого, название компании перечеркивается ровной линией. Правильная информация оказывается на обратной стороне листа. Важно отметить, что данный вид неточностей относится к техническим. Так как данный бланк содержит в себе регистрационные данные компании, сотрудники ФСС могут использовать эту информацию для идентификации компании.

Так же часто наблюдается ситуация, когда работодатель неправильно указывает сумму компенсации, положенной сотруднику. Как правило, такая ошибка допускается в случае с новыми работниками, не успевшими предоставить работодателю свидетельство о заработке, полученное на прошлом месте трудовой деятельности. В данном случае, бланк теряет свою юридическую силу.

Для того чтобы исправить данную информацию, потребуется подготовить отдельный документ, который будет передан в ФСС с неправильно составленным бланком. Такой шаг позволит избежать необходимости исправлять лист временной нетрудоспособности. Важно отметить, что подача двух документов (больничного листа и документа о перерасчете пособия) позволяет работнику получить все причитающиеся выплаты.

Внесение исправлений в трудовую книгу

Чаще всего исправления в трудовой книге необходимы в том случае, когда сотрудник меняет свою фамилию. В этом случае, исправления фиксируются на титульном листе. После того как неправильная информация будет перечеркнута, указываются новые сведения. После внесения изменения, на внутренней стороне «корочки» делается отметка:

«Фамилия Рыбкина исправлена на Михайлова на основании паспортных сведений (свидетельства о заключении брака)». После фиксации данной отметки необходимо указать номер документа, использующегося в качестве основания для коррекции данных. В обязательном порядке указывается дата внесения исправлений и ФИО должностного лица, который внес данную отметку.

Исправленная информация должна быть заверена фирменной печатью организации. При внесении изменений в графу об уровне образовании или имени все исправления указываются аналогичным способом.

«Исправленному верить» в трудовой книжке, образец:

Ispravlennomu verit v dokumentah obrazets 1В первичные учетные документы можно вносить исправления

Давайте рассмотрим порядок внесения исправления в разделе «Сведения о трудовой деятельности». В этом разделе указывается следующая информация:

  • перевод на другую должность;
  • присвоение новой квалификации;
  • изменение в названии компании.

При наличии ошибок в данном разделе, зачеркивать надпись не рекомендуется. Для внесения правильной информации делается новая отметка. При этом новой записи присваивается свой порядковый номер. После этого, каждый пункт данного раздела заполняется правильной информацией. В том случае, когда ошибка допускается в записи об увольнении сотрудника, потребуется сделать новую отметку. Новая запись также заверяется фирменной печатью и подписью должностного лица.

Ранее, исправление неверной записи допускалось только тем человеком, что сделал неправильную отметку. Согласно действующему законодательству, внести корректную информацию может текущий работодатель. Это означает, что руководителю необходимо составить соответствующий документ, о наличии ошибки в трудовой книге нового сотрудника. На основании этого документа указывается новая информация.

В том случае, когда у нового сотрудника выявляется наличие неточной записи в трудовой книге, новый работодатель может самостоятельно устранить найденную ошибку. Также сотруднику предоставляется право обратиться на прошлое место трудовой деятельности для того, чтобы отдел кадров исправил допущенную опечатку или неточность в формулировках. Важно обратить внимание на то, что текущему руководителю необходимо оказать всяческую поддержку своему сотруднику. В качестве основания для внесения изменений в трудовую книгу могут использоваться приказы об увольнении или приеме работника.

pravilno pisat slova ispravleno

Часть речи

Говоря о том, как пишется «исправлено», стоит отметить, что огромное значение оказывает то, какой частью речи выражена конструкция. Однако определить это может быть не так просто, как кажется. Очень многие писатели путают слово с другими частями речи, в результате чего применяют к нему совершенно неподходящее правило и делают в тексте массу ошибок. Единственно верный вариант — провести синтаксический анализ предложения, в котором употреблено интересующее слово: «Я не мог верить тому, что все было исправлено, поскольку список выглядел точно так же, как и в предыдущем случае». Однако делать это нужно по инструкции:

nayti grammaticheskuyu osnovu

  1. Найти грамматическую основу предложения, то есть определить его главные члены. Для этого необходимо внимательно прочитать конструкцию и понять, о чем в ней говорится. Вот все подлежащие и сказуемые: «я не могу верить», «все было исправлено», «список выглядел точно так же».
  2. Определить второстепенные члены предложения. Делать это необходимо даже в том случае, если то, чем выражена интересующая конструкция, уже определено. Ведь нередко бывает так, что какое-нибудь наречие или краткое причастие, которое должно было выступать в роли именной части сказуемого, попросту «зависает» в тексте.
  3. Надписать над каждым словом, чем именно оно выражено. Чтобы определить это с максимальной точностью, необходимо знать не только то, на какие вопросы отвечает та или иная часть речи, но и какую роль она выполняет. К примеру, прилагательные обозначают признак предмета, а наречия — признак действия.

Пользуясь этой инструкцией, можно определить, что слово «не исправлено» является второй частью составного именного сказуемого. Из школьного курса известно, что оно может быть выражено практически любой частью речи, однако, задав от главного слова вопрос к зависимому — было каково? — исправлено, можно сделать вывод о том, что приходится иметь дело с кратким причастием. Об этом же свидетельствует и лексическое значение конструкции «все исправлено» — обозначает признак предмета и отвечает на тот вопрос, который характерен для краткого причастия.

Морфологический разбор

Чтобы понять, как правильно писать «исправлено», будет весьма полезно определить, как именно было образовано слово. Сделать это не так сложно, если знать, что краткие формы страдательных причастий образуются от полных путем усечения окончания. Вот несколько примеров:

  • исправленный документ — документ исправлен;
  • исправленное правило — правило исправлено;
  • исправленная конструкция — конструкция исправлена.

morfologicheskiy razbor

Из примеров становится понятно, что усекается не только несколько букв из окончания, но и одна буква «н» из суффикса. Это характерно для каждого краткого причастия, благодаря чему можно сделать вывод о том, что эта часть речи всегда пишется с одной буквой «н» в суффиксе. Причем наличие противопоставления или зависимых слов в предложении никак не отразится на этом. Писатель просто должен запомнить, что в кратких причастиях пишется всего одна буква «н».

Стоит отметить, что такой способ образования характерен только для тех случаев, когда речь идет о прошедшем времени. Если же необходимо образовать форму настоящего времени, то делается это путем отсечения окончания «им», «ом» или «ем». Вот лишь три наиболее простых примера:

  • изучаемый курс — курс изучаем;
  • хранимый артефакт — артефакт храним;
  • выполняемый доклад — доклад выполняем.

Также стоит отметить, что это касается и тех слов, которые имеют в своем составе отрицательную приставку «не», например, неисправленный — не исправлено или не исправленный — не исправлено. Наличие «не» в слове никак не отражается на правоприменение по поводу «н» или «нн» в суффиксе, однако правописание отрицательной частицы с кратким причастием — тема, которая сама по себе заслуживает отдельного упоминания.

Из всего этого можно сделать вывод о том, что в кратких причастиях прошедшего времени в любом случае будет писаться в суффиксе одна «н».

Однако сложность темы заключается вовсе не в том, что столь простую истину трудно запомнить. Просто очень многие писатели путают причастия с другими частями речи, поскольку сходство действительно практически идентично. Именно поэтому так важно уметь правильно проводить синтаксический анализ, а также знать некоторые приемы, которые помогут упростить работу.

Отглагольные прилагательные

Из курса 10 класса старшей школы ученикам стало известно, что помимо причастий в русском языке также присутствуют отглагольные прилагательные (ОП), которые очень сильно похожи друг на друга по внешнему виду, но имеют принципиально разные лексические значения. Вот несколько примеров:

  • летящие листья (причастие) — летучие облака (ОП);
  • позолоченный рожок (причастие) — золоченое кольцо (ОП);
  • раненный в руку (причастие) — раненый солдат (ОП);
  • рассеянные тучи (причастие) — рассеянный мальчик (прилагательное).

pravopisanie n nn kratkih

Само собой, правописание «н» и «нн» в кратких прилагательных и причастиях совершенно отличается, поэтому важно научиться отличать эти части речи друг от друга. Сделать это можно сразу несколькими способами:

zamenit konstrukciyu pridatochnym

  1. Взглянуть на лексическое значение конструкции. Причастия обычно говорят о том, что действие совершалось в определенный промежуток времени: «Мне довелось подправить рукопись, используя для этого ручку, которая была неисправлена» (прошедшее время, а отглагольные прилагательные, образованные от глаголов, обычно обозначают постоянный признак предмета: «Ручка неисправлена (в настоящий момент), поэтому я не могу отредактировать статью, провести проверочную работу или хотя бы написать заявление или договор».
  2. Посмотреть на наличие приставок в слове. Только в причастиях (полных или кратких) будет находиться приставка «по», а в ОП ее не будет — «Исправлять недочеты позолоченного украшения — все равно что откорректировать запись на листке бумаги» и «Для того, чтобы подправить недочет в золоченом кольце, мне потребуется устранить все неровности с помощью шлифовальной машинки». Само собой, применить этот пункт получается далеко не всегда, однако он может быть крайне полезным в некоторых случаях.
  3. Взглянуть на наличие зависимых (пояснительных слов). У причастия они могут иметься, причем в довольно большом количестве: «Раненный в левую руку солдат пытался починить уже давно исправленный механиком автомобиль». В ОП пояснительные конструкции всегда будут отсутствовать: «Раненый солдат писал письмо матери по заранее составленному образцу» — тоже весьма полезный способ, который позволяет быстро найти причастия (особенно краткие) на письме.
  4. Попробовать заменить конструкцию придаточным определительным. Вместо причастий обычно можно поставить глагол со словом «который» — лепестки рассеяны ветром — лепестки, которые рассеял ветер. С отглагольными прилагательными удается лишь подобрать синоним: рассеянный ребенок — невнимательный ребенок. Именно этим методом предпочитает пользоваться большинство учеников и писателей, поскольку он является практически беспроигрышным.

Таким образом, если правильно определить часть речи, то удастся подобрать правило, которое подходит к конкретному случаю. Но сколько же букв «н» писать в отглагольном прилагательном, если его все-таки удастся найти?

Правило «н» и «нн» в ОП

Если вышло так, что слово «исправлено» выражено не причастием, а отглагольным прилагательным, то к нему придется применять совершенно другое правило. Кроме того, придется обратить внимание на наличие определенных слов внутри самой конструкции. Правило, что в кратких прилагательных (пусть и отглагольных) пишется столько же букв «н», сколько и в полных, от которых они образованы. В начальной же форме «нн» пишется в следующих случаях:

pravilo n nn op

  1. Если прилагательное образовано от глагола совершенного вида (укороченный, проведенный, сложенный и так далее). Определить их можно по вопросу, в котором имеется приставка «с» (что сделать? — укоротить, провести, сложить). Исключение составляют несколько устоявшихся слов, правописание которых следует смотреть в орфографическом словаре: контуженый (солдат), раненый (офицер), названый (отец).
  2. Если слово оканчивается на «ованный» или «еванный», например, неорганизованный, малеванный, избалованный и так далее. Исключение составляют слова: клеваный, жеваный, кованый.
  3. В прилагательных — неожиданный, чеканный, нечаянный, медленный, священный, неслыханный, желанный, негаданный, невиданный, нежданный — в этих исключениях всегда пишется две буквы «н».

Слово «исправлено» (в роли краткого прилагательного) не относится к исключениям, поэтому в суффиксе вполне может писаться 2 буквы «н» в том случае, если оно образовано от глагола совершенного вида (что сделать?) «исправить». Однако справедливости ради стоит отметить, что в большинстве случаев конструкция будет являться все-таки причастием, а это значит, что в краткой форме будет писаться всего одна «н».

Значение слова «исправить»

Тема с одной и двумя буквами «н» в кратких причастиях и кратких отглагольных прилагательных является одной из самых сложных в русском языке, поскольку даже эксперту не всегда с первого раза понятно, какая именно часть речи находится перед ним. Однако если часто иметь дело с теми или иными конструкциями, то у человека может выработаться интуиция. В будущем шестое чувство будет подсказывать, сколько букв «н» нужно вставить в конструкции в данном случае, поскольку мозг уже имел дело с похожим случаем когда-то давно. Однако для этого придется научиться разбираться в лексических значениях похожих слов:

znachenie slova ispravit

  • исправлено (КП) — что-то было кем-то исправлено и теперь его можно использовать;
  • исправлено (краткое ОП) — что-то отличается хорошими качествами на данный момент;
  • исправиться (глагол СВ) — провести работу над собой в лучшую сторону;
  • исправляться (глагол СВ в настоящем времени) — проводить работу над собой в данный момент;
  • исправимый (отглагольное прилагательное) — что-то подлежит возможности изменения в лучшую сторону;
  • поправить (глагол с приставкой «по») — провести какую-то мелкую доработку, например, заправить двигатель маслом;
  • исправный (ОП) — предмет, находящийся в рабочем состоянии и не нуждающийся в восстановлении;
  • исправление (существительное) — работа, проводимая с целью улучшить качества предмета;
  • исправленый — (полное причастие) — предмет, который был кем-то исправлен в прошлом;
  • правленый — (причастие без приставки) — объект, который был слегка усовершенствован.

osnovnye leksicheskie formy

И это лишь основные лексические формы, которые встречаются на письме гораздо чаще других. За более детальной информацией можно обратиться к специальному справочнику. Само собой, запомнить все «переводы» слов из орфографического словаря будет невозможно, однако у каждого человека есть интуиция, которая позволяет примерно сопоставлять различные слова в одной категории, чтобы подбирать к ним одно и то же подходящее правило.

Если научиться верно находить лексическое значение, то со временем даже не потребуется задумываться над тем, почему в одном случае пишется «н», а другом — «нн». Интуиция просто будет подсказывать, как написать конструкцию, и в большинстве случаев окажется полностью права. Нужно лишь как можно больше времени уделять синтаксическим разборам и чтению, чтобы увеличивать свой словарный запас.

Поскольку порядок исправления ошибок на титульном листе трудовой книжки не установлен, автор рекомендует практикам поступать аналогично ситуации, когда требуется внести изменение в записи о фамилии, имени, отчестве и дате рождения работника: одной чертой зачеркнуть прежнюю фамилию или имя, отчество, дату рождения и записать новые данные. Ссылки на соответствующие документы (паспорт, свидетельство о рождении, о заключении брака, и т.п.) с указанием их серии, номера и даты должны быть внесены на внутреннюю сторону обложки трудовой книжки и заверены подписью нанимателя или лица, ответственного за ведение трудовых книжек, и печатью.

Инструкция по заполнению трудовых книжек — свод правовых актов законодательства Российской Федерации, содержащих правила заполнения трудовых книжек. Важно помнить, что трудовая книжка — документ строгой отчетности, и все действия с ней нужно делать, строго соблюдая букву закона.
Это может быть документ из регистрирующих государственных органов (паспорт с новой фамилией, свидетельство о заключении брака или его расторжении и т. д.).

Исправленному верить в трудовой книжке

Если ваша работа связана с ведением трудовых книжек и внесением в них записей, если вы хотите вовремя (до того момента, как сотрудник Пенсионного фонда откажет вам в признании соответствующего стажа) обнаружить некорректные записи в своей собственной трудовой книжке и проверить верность вносимых исправлений и изменений, то эта очередная статья нашего цикла о трудовых книжках – для вас! Если организация, которая внесла неправильную или неточную запись, реорганизована или ликвидирована, то исправления вносит организация-правопреемник, а при её отсутствии – организация, где теперь трудится работник, на основании выписок из соответствующих архивных документов.

Трудовая книжка – главный документ, подтверждающий трудовую деятельность гражданина. Оформляется она один раз, при первом трудоустройстве. Далее в нее заносятся данные обо всех рабочих местах, где на протяжении жизни трудился гражданин.
Ошибки в этом важном документе встречаются крайне редко, но если неправильная запись внесена, то исправить ее не только можно, но и необходимо в соответствии с законодательством.

Пунктом 36 Инструкции № 30 предусмотрено исправление ошибочных записей, внесенных в графу 3 раздела «Сведения о работе», но не урегулирован порядок исправления ошибочных записей, внесенных соответственно в графу 1 (нумерация записей), графу 2 (дата) и графу 4 (основание внесения записей). Ошибки, неправильные, неточные или неполные записи, допущенные при заполнении трудовых книжек, нельзя исправлять, зачеркивать, подделывать, подчищать, заклеивать и замазывать корректирующей жидкостью.

Одним из часто задаваемых на форумах вопросов оформления рабочих отношений работодателя с работником является вопрос о том, куда приклеить голограмму в трудовой книжке.

Правильное заполнение основного документа о стаже работника является важным элементом в кадровом делопроизводстве. Несоблюдение инструкций, незнание или грубые нарушение установленных правил могут повлечь судебные иски со стороны сотрудников, выплаты штрафов и компенсаций, а также нанести урон репутации компании.

Можно ли законно делать исправления в трудовой книжке?

Всего-навсего, что Вам следует сделать — это получить у работодателя, допустившего ошибку, надлежаще оформленную и заверенную выписку из приказа об увольнении, «кадровики» знают как это сделать (проследите, чтобы уже в ней не было ошибок !) Эту выписку буквально вклейте на внутреннюю сторону последнего листа обложки трудовой книжки, чтобы она не потерялась, или обеспечьте её сохранность другим образом, на Ваше усмотрение. Эта выписка понадобится только при подсчёте предыдущего стажа работы при новом трудоустройстве, а также — оформлении документов при выходе на пенсию.

Иногда в увольнительных записях неверно указывают причину и статью Трудового кодекса РФ. Ошибку допустить легко, ведь Кодексом предусматриваются четыре статьи (71, 77, 81, 83) и 48 разных формулировок увольнения. Другая распространенная ошибка при формировании увольнительной записи − использование сокращений при упоминании Кодекса и его разделов.

При работе с трудовыми книжками следует учитывать и положения 225 Постановления Правительства РФ, регулирующего ведение и хранение этих документов (2003 г.).

Одним из самых сложных при работе с трудовыми книжками всегда был вопрос об исправлении неточных, неправильных или иных признанных недействительными записей в разделах трудовой книжки «Сведения о работе», «Сведения о награждениях», «Сведения о поощрениях». Исправленные сведения о приеме, увольнении, переводах на другую постоянную работу, награждениях и поощрениях должны полностью соответствовать тексту приказа (распоряжения). Свидетельские показания не могут служить основанием для исправления внесенных ранее записей.

Если работник вовремя не представил нанимателю документы, необходимые для внесения соответствующих записей, то у нанимателя не было основания внесения какой-либо записи в трудовую книжку работника. В таком случае согласно нормам законодательства нанимателю следует внести такую запись при представлении работником соответствующего документа.
Также ошибкой не будет считаться сложение документа в два или более раз и заполнение его шариковой или синей ручкой. Все остальные недочеты считаются недопустимыми и требуют либо внесения корректив, либо выдачи дубликата документа.
Трудовой кодекс Российской Федерации (далее – «ТК РФ») – в той части, в которой говорится о том, какие формулировки следует вносить в трудовые книжки, например, при увольнении работника (в том числе статьи 77–81, 83-84.1 ТК РФ). Ведь нередко бывает так, что, признавая недействительной одну запись об увольнении, в трудовую книжку вносят новую – и тоже с нарушением действующего трудового законодательства.
К самому оформлению трудовой книжки следует отнестись с особым вниманием, дабы избежать в будущем проблем с расчетом пенсии работника.

Чем чреваты неправильные записи в трудовой?

Исправлять ошибки в кассовых и банковских документах нельзя . Ошибки в кассовых и банковских документах вообще не допускаются.
Анализ указанных нормативных документов позволяет сделать вывод, что порядок изменения (дополнения) и исправления записей в трудовых книжках работников во многом зависит от того, в какой раздел трудовой книжки такие изменения (дополнения) и исправления вносятся.

Многие специалисты отдела кадров, канцелярии и бухгалтерии, даже имеющие солидный стаж работы, не знают, как внести исправление в трудовую книжку.

Электронные трудовые книжки — идея, которая совсем скоро может стать реальностью. В правительстве уверены, что такой способ ведения учета трудового стажа работников очень выгоден всем сторонам: и работникам, и работодателям, и контролирующим органам. Правда, полностью отказываться от бумажных документов чиновники пока не собираются. Пусть остаются.

Неправильное первичное заполнение

Российским Министерством труда и социального развития в 2003 году была разработана специальная инструкция (№69), регулирующая порядок заполнения трудовых книжек.
Случается, что какая-либо запись в трудовой вносится неверно или теряет свою актуальность. Такое бывает, если сотрудник, ответственный за оформление документа, ошибся и допустил неточность или же у работника изменились личные данные, например, фамилия. Сведения, не соответствующие реальному положению дел, автоматически делают документ недействительным. Разберем детально, как исправить запись в трудовой книжке, чтобы это не противоречило трудовому законодательству.

ФСС принимает больничные листы с исправлениями или допустимыми ошибками. Допустимые ошибки Существует ряд помарок и неточностей в исполнении правил, которые в ведомстве ФСС считаются незначительными.
Недаром говорят: «Не ошибается только тот, кто ничего не делает». Даже имеющие большой опыт кадровой работы сотрудники организации не застрахованы от необходимости периодически исправлять некорректно внесенные ими самими или предыдущими работодателями записи. Что уж говорить о небольших компаниях, в которых ведение трудовых книжек поручено не кадровику или иному специалисту по кадровому делопроизводству, а бухгалтеру или осуществляется непосредственно руководителем организации? Кроме того, бывают ситуации, когда приходится дополнять и ранее правильно внесенные записи.

На больничном листке сотрудников, работающих не на юридическое, а на физическое лицо, печать проставляется только при ее наличии.
Прежде чем приступить к рассмотрению правил внесения в трудовую книжку корректировок ранее внесенных записей, необходимо разобраться с используемой терминологией. Понятия «исправления» и «изменения» подразумевают совершение различных действий в отношении записей.

Исправительные записи в трудовых книжках не могут производиться на основании свидетельских показаний, за исключением записей, в отношении которых имеется судебное решение, а также случаев массовой утраты работодателем трудовых книжек работников в результате чрезвычайных ситуаций (экологические и техногенные катастрофы, стихийные бедствия, массовые беспорядки и другие чрезвычайные обстоятельства).

Положение Центрального Банка РФ о ведении кассовых операций с монетами и банкнотами № 373-П делать это запрещает.

  1. надпись «исправленому верить”,
  2. личную подпись.
  3. фио и должность лица, которое вносит исправление,
  4. дату совершения исправления,

Ведение трудовых книжек и записи в них — это строго регламентированный и упорядоченный процесс, осуществлять который могут только специально назначенные в организации кадровые работники. Такая строгость связана прежде всего с необходимостью защиты персональных данных работников. Расскажем, какие правила ведения трудовых книжек в РФ 2019 году.
Внесение изменений путем зачеркивания имеющейся информации допускается только на титульном листе и странице 33 трудовой книжки.

По нормам законодательства нет специального списка должностей, которые могут вносить, заверять и исправлять записи в ТК. Согласно правилам на такую работу в организации назначают специальным приказом. Если на предприятии нет отдела персонала, вести и корректировать трудовые книжки может либо сам работодатель, либо назначенный его приказом любой специалист: бухгалтер, секретарь, администратор, офис-менеджер и т.п. Если работу предоставляет физическое лицо, то закон не разрешает ему вести и корректировать трудовые книжки.
При наличии других причин, по которым прежний наниматель в установленном порядке не внес соответствующую запись об образовании в трудовую книжку работника, новый наниматель не должен оставлять данную ошибку без изменений. Новому нанимателю следует внести соответствующую запись, руководствуясь требованиями Инструкции № 30, касающимися порядка оформления записей в трудовых книжках работников, т.е. такая запись вносится в трудовую книжку до записи о приеме на работу в раздел «Сведения о работе», ей присваивается следующий порядковый номер. Затем согласно общим правилам заполнения трудовых книжек вносится запись о приеме на работу к новому нанимателю.

Ошибки, подлежащие исправлению

К ситуациям, когда ошибки в оформлении ПУД подлежат обязательному исправлению, на наш взгляд, можно отнести следующие случаи:

  1. Ошибки в ПУД привели к искажению в бухгалтерском и (или) налоговом учете, и у хозяйствующего субъекта возникает необходимость (обязанность) вносить исправления в учет. В этом случае исправление ошибок в учет должно вносится на основании, в том числе исправленных ПУД.
  2. ПУД не содержит обязательных реквизитов, предусмотренных ч. 2 ст. 9 Закона N 402-ФЗ, или содержит в качестве этих реквизитов некорректные сведения, что не позволяет однозначно и полно установить содержание факта хозяйственной жизни.
  3. ПУД не содержит реквизитов (содержит некорректные реквизиты), прямо не предусмотренных ч. 2 ст. 9 Закона N 402-ФЗ, но ключевых для определения фактических обстоятельств и реальности хозяйственной операции.

Как исправить ПУД?

Законодательство РФ исходит из того, что в ПУД допускаются исправления, за исключением кассовых и банковских документов. Исправление в ПУД должно содержать дату исправления, а также подписи лиц, составивших документ, в котором произведено исправление, с указанием их фамилий и инициалов либо иных реквизитов, необходимых для идентификации этих лиц (ч. 7 ст. 9 Закона N 402-ФЗ, п. 16 Положения по ведению бухгалтерского учета и бухгалтерской отчетности в РФ, утвержденного приказом Минфина России от 29.07.1998 N 34н, п. 4.7 Указания Банка России 11.03.2014 N 3210-У, п. 10 Положения об осуществлении наличных денежных расчетов и (или) расчетов с использованием платежных карт без применения контрольно-кассовой техники, утвержденного постановлением Правительства РФ от 06.05.2008 N 359).

Исправлять ПУД можно несколькими способами:

1) Путем внесения исправлений в первоначальный документ.

В этом случае зачеркивается неправильный текст или суммы и надписывается над зачеркнутым исправленный текст или суммы. Зачеркивание производится одной чертой так, чтобы можно было прочитать исправленное. Исправление ошибки в первичном документе должно быть оговорено надписью «исправлено», подтверждено подписью лиц, подписавших документ, а также проставлена дата исправления (п.п. 4.2, 4.3 Положения о документах и документообороте в бухгалтерском учете, утвержденном Минфином СССР 29.07.1983 N 105, которое в силу ч. 1 ст. 30 Закона N 402-ФЗ применимо и в настоящее время).

2) Путем составления правильно заполненного (исправленного) документа дополнительно к документу с ошибкой

В этом случае ПУД исправляются в порядке, предусмотренном для исправления счетов-фактур (письма Минфина России от 22.01.2016 N 07-01-09/2235, ФНС России от 23.03.2018 N СД-4-3/5412@, от 05.03.2018 N СД-4-3/4226@).

Т.е. исправления вносятся путем составления нового экземпляра, в котором указывается номер и дата документа, составленного до внесения в него исправлений, а также порядковый номер и дата исправления.

Таким образом, применяется порядок, аналогичный пункту 4.2 Положения о документах и документообороте в бухгалтерском учете, утвержденного Минфином СССР 29.07.1983 N 105, а именно: по совокупности в первоначальном документе и документе с исправленными данными имеется в наличии информация о неправильном и верном тексте, дате исправления и подтверждении исправления подписями лиц, подписавших документ.

В частности, такой порядок реализован для внесения исправлений в первичные учетные документы, составленные в электронном виде (приказы ФНС России от 30.11.2015 N ММВ-7-10/552@, от 30.11.2015 N ММВ-7-10/551@).

Обратите внимание! Заменить ПУД с ошибками новым документом нельзя (письма Минфина России от 23.10.2017 N 03-03-10/69280, ФНС России от 12.01.2018 N СД-4-3/264), т.е. нельзя выбросить неправильно заполненный документ и вместо него подложить новый.

Порядок внесения исправлений в ПУД стороны сделки вправе определить самостоятельно.

Исправления в ПУД должны быть заверены представителями сторон, участвовавшими в составлении этого документа.

При исправлении ПУД, оформленных в нескольких экземплярах, исправления нужно внести в каждый из них, в том числе в экземпляры, находящиеся у контрагентов Внесение исправлений в ПУД в одностороннем порядке не допускается и нарушение данного правила может привести, в частности, к тому, что такие документы не будут приняты в качестве документального подтверждения расходов (Постановления Десятого арбитражного апелляционного суда от 09.04.2018 N 10АП-20651/17, от 16.01.2015 N 10АП-14763/14, Первого арбитражного апелляционного суда от 30.06.2015 N 01АП-3125/15, Четвертого арбитражного апелляционного суда от 18.02.2015 N 04АП-6483/14, Постановления ФАС Уральского округа от 01.04.2013 N Ф09-1090/13 по делу N А76-283/2012).

Если ошибки в ПУД привели к искажению данных бухгалтерского и налогового учета, то необходимо внести исправления в налоговые и бухгалтерские регистры, а при необходимости представить уточненные налоговые декларации.

Получите
консультацию
эксперта

Задайте вопрос по Вашей ситуации и получите консультацию эксперта.

Задать вопрос

Способ 1: исправить исходник

Исправление ошибок в первичных бухгалтерских документах разрешает закон о бухучете (от 06.12.2011 № 402-ФЗ). При внесении исправлений в исходный документ ошибочную информацию зачеркивают, записывают верную, ставят пометку: «Исправлено» или «Исправленному верить» и указывают дату внесения исправлений. На документе должны быть проставлены подписи лиц, которые составили данный документ, с указанием их Ф. И. О. Если на момент внесения исправления кто-то из них уволился, рекомендуем заверить исправление подписью руководителя. Ставить на исправительной надписи печать закон не требует.

Выглядит это примерно следующим образом:

Ошибка исправлена как пишется

ОБРАТИТЕ ВНИМАНИЕ! В каких первичных документах не допускаются исправления? Запрещается исправлять кассовые и банковские документы: приходный и расходный кассовый ордера, платежные поручения (п. 16 Положения по бухучету и отчетности, утв. приказом Минфина от 29.07.1998 № 34н). Такой ошибочный документ нужно заменить новым с верными данными.

Способ 2: сделать замену

Вместо правки исходного документа можно оформить другой — исправительный. Несмотря на то, что законом о бухучете такой способ исправления не предусмотрен, чиновники это разрешают (см., например, письмо ФНС от 05.03.2018 № СД-4-3/4226@). Порядок внесения исправлений в этом случае должен быть подобен выписке исправительного счета-фактуры. То есть в нем должно быть указание на то, что это исправительный документ, приведены номер и дата исходного документа, а также порядковый номер и дата исправления.

Алгоритм исправления ошибок в счете-фактуре хорошо описан в КонсультантПлюс. Чтобы его посмотреть, переходите в Готовое решение. Пробный полный доступ к правовой системе можно получить бесплатно.

Например, вот так:

Ошибка исправлена как пишется

Этот же способ используют, когда требуются исправления в первичных документах, составленных в электронной форме.

Узнайте, как исправлять ошибки в бухгалтерской отчетности.

Более полную информацию по теме вы можете найти в КонсультантПлюс.
Пробный бесплатный доступ к системе на 2 дня.

Уже несколько лет я веду разработку собственного языка программирования — Ü. Около двух лет назад я публиковал вводную статью о нём на Хабре. Компилятор этого языка написан на C++ и долгое время он таковым и оставался. Но после той публикации я пришёл к выводу, что язык Ü уже достаточно продвинут, чтобы написать на нём компилятор языка Ü. О написании этого компилятора и будет повествовать данная статья.

В данной статье описывается процесс разработки, имевший место (с перерывами) примерно с начала 2020-го года по начало лета 2021-го года. Далее я буду называть начальный компилятор, написанный на C++ «Компилятор0», а компилятор, написанный на Ü — «Компилятор1».

Логически разработку Компилятора1 можно разделить на три этапа. Первый этап — подготовительный/прототипный. Второй этап — собственно написание Компилятора1 до достижения самосборки. Третий этап — доделывание Компилятора1 и исправление недостатков.

Подготовительный этап

Данный этап проходил не сильно быстро и не интенсивно. На нём происходило больше теоретической и архитектурной работы, нежели просто написания кода.

Поддержка рекурсивных структур данных

В компиляторе почти что любого языка, да и вообще, во множестве программ, работающих с какими-либо формальными языками, широко используются рекурсивные структуры данных — напрямую или опосредованно включающие самих себя. Перед написанием Компилятора1 нужно было удостовериться, что язык и его стандартная библиотека поддерживают подобные структуры.

Оказалось, что в Компиляторе0 есть некоторые особенности, которые мешали объявлять такие структуры. Пришлось изменять некоторые аспекты и убирать из некоторых мест требование полноты типов.

Также оказалось, что даже после исправлений в Компиляторе0 не получается создать рекурсивные структуры с использованием контейнеров стандартной библиотеки box (аналог unique_ptr из C++) и vector. Первый я доработал, чтобы его можно было использовать для рекурсивных структур.

Со вторым дело обстояло сложнее. Всё дело в том, что наличие конструктора копирования у класса vector зависит от копируемости типа элемента, а его копируемость зависит от самого класса vector для рекурсивных структур. В принципе наверное можно как-то доработать vector, например, через задание пользовательских правил копируемости. Но я решил временно просто проигнорировать проблему и вручную где надо класть в vector значение, обёрнутое в box/shared_ptr.

Генерация отладочной информации

Опыт подсказывает, что написание хоть сколько нибудь сложного кода требует возможности периодически его отлаживать. Соответственно, прежде чем начать писать Компилятор1, следовало добавить в Компилятор0 возможность генерировать отладочную информацию.

Проект Ü основан на библиотеке LLVM. В ней есть встроенная поддержка генерации отладочной информации. Код фронтенда языка заполняет соответствующие структуры, детально описывая через них всё, что может быть полезно для отладки. Генератор бинарного кода LLVM способен на основе этих структур генерировать платформозависимую отладочную информацию в форматах DWARF (GCC) и CodeView (MSVC).

Из всего множества возможностей генерации отладочной информации понадобилась только небольшая часть. Во-первых, нужно создавать отладочную информацию о типах, используемых в программе — имена, состав, смещение полей и т. д. Во-вторых, нужно создавать отладочную информацию о стековых переменных — указать их локальный адрес и тип. В-третьих, нужно указывать связь фрагментов кода функций с их местоположением в файле исходного кода.

Итак, все вышеописанные я реализовал. Результат вышел вполне сносным. Стало возможным ставить точки останова в программах, смотреть значения локальных переменных, осуществлять вход/выход из функций и т. д. Возможно, это ещё не всё и есть какие-то более продвинутые механизмы отладки, для которых понадобилась бы более полная отладочная информация. Но мне хватило вышеописанного, наверное, в 95% случаев этого достаточно.

В процессе реализации генерации отладочной информации я столкнулся с, казалось бы, весьма странной ошибкой — отображение стека вызовов не работало, как надо. Оказалось, всему виною было использование атрибута nounwind у функций. Этот атрибут используется, чтобы не генерировать лишних данных для раскрутки стека, т. к. в Ü всё равно нету исключений и раскрутка стека поэтому не нужна. Но, как оказалось, информация, необходимая для раскрутки стека, используется также и отладчиком. Поэтому пришлось для случая генерации отладочной информации добавлять функциям атрибут uwtable, чтобы нормально работало отображение стека вызовов в отладчике.

Первый код Компилятора1 и первые проблемы

Итак, я начал писать код Компилятора1. Начал я с кода разбора исходного текста программы на лексемы. И в первых же нескольких сотнях строк кода я выявил несколько ошибок в Компиляторе0.

Первая ошибка была примерно в следующем коде:

type Iterator = ust::array_view_imut</char8/>;
fn ParseIdentifier( Iterator &mut it ) : Lexem
{
    ReadNextUTF8Char( it );

    var Lexem mut result;
    result.lexem_type= Lexem::Type::Identifier;

    while( !it.empty() )
    {
        auto mut it_next= it;
        if( !IsIdentifierChar( ReadNextUTF8Char( it_next ) ) )
        {
            break;
        }
        it= it_next; // Вот здесь Компилятор1 порождал ошибку
    }

    return result;
}

В чём же была проблема? А проблема была в коде контроля ссылок. Компилятор считал, что переменная it внутри хранит ссылку на некоторые данные. При этом изменяемость этой ссылки не была известна на уровне типа, считалось, что все переменные, хранящие внутри ссылки, могут содержать изменяемую ссылку. Так вот, при попытке вызвать оператор = для переменных it и it_next, компилятор обнаружил, что при вызове в него могут передастся две изменяемые ссылки на некую переменную, на которую указывает it, что не допустимо правилами языка.

Обдумав, я принял решение несколько изменить дизайн языка — сделать изменяемость внутренних ссылок свойством типа. К примеру:

struct RefImut // тип с неизменяемой ссылкой внутри
{
    i32 &imut r;
}

struct RefMut // тип с изменяемой ссылкой внутри
{
    i32 &mut r;
}

struct NonRef // тип без ссылок внутри
{
    i32 x;
}

Данное решение в дизайне языка в целом себя хорошо оправдало и до сих пор используется.

Ошибка исправлена? Не совсем. Как оказалось, код выше выявил ещё одну проблему. В коде Компилятора0 локальные переменные и ссылки контролировались структурой типа ациклического направленного графа — для целей того самого контроля ссылок. Но, как оказалось, граф таки может содержать циклы.

В примере выше переменная it держит ссылку на некие данные, переменная it_next ссылается на внутреннюю ссылку в it, а при присваивании it = it_next внутренняя ссылка переменной it начинает указывать на внутреннюю ссылку в it_next, тем самым создав цикл в графе ссылок. Данный код вызывал падение Компилятора0 с ошибкой переполнения стека, т. к. алгоритмы работы с графом ссылок предполагали его ацикличность. Подумав, я осознал, что циклы в графе — необходимость и стоит скорректировать алгоритмы работы с ним с учётом их наличия.

Взаимодействие с библиотекой LLVM

Лексический и синтаксический разбор текста программы — это всего лишь малая часть работы фронтенда компилятора. В Ü, например, код лексического/синтаксического разбора занимает лишь 20-25% объёма. Основная же часть фронтенда компилятора занимается построением промежуточного представления. В случае Ü это IR код LLVM.

В Компиляторе0 (на C++) промежуточный код строится непосредственно через соответствующие классы/функции библиотеки LLVM. Спрашивается, можно ли делать то же самое на Ü, или на каком-то другом языке, отличном от C++? Ответ положительный — да, можно. Авторы LLVM предусмотрели такое использование библиотеки и поэтому написали биндинги на чистом Си для построения IR кода (и не только).

Я решил взять за основу эти Си биндинги для написания Компилятора1. Но как же вызывать Си функции из Ü?

В начале у меня были планы автоматически сгенерировать Ü биндинги из Си биндингов. И у меня для этого даже есть преобразователь заголовочных файлов Си в Ü, написанный с использованием библиотеки ClangTooling. Но, как оказалось, выдаёт он весьма посредственный результат, который нельзя использовать напрямую. Автоматически преобразованные файлы в большинстве случаев оказывались нерабочими и требовали ручной доводки.

Казалось бы, что мешает доработать преобразователь? В принципе, думаю его можно доработать до более-менее вменяемого состояния. Но эту задачу я счёл слишком трудоёмкой для того, чтобы преобразовать только лишь один или два файла. Вместо этого для написания Компилятора1 я вручную написал биндинги для нужных LLVM функций. Результирующий файл с биндингами вышел примерно в 500 строк размером, да и писался не за один раз, а постепенно.

Кроме написания биндингов к уже имеющемуся Си интерфейсу LLVM пришлось вручную реализовать ряд биндингов, отсутствующих в нём. Это довольно специфичные функции, так что в принципе логично, что их нету в Си интерфейсе.

В дополнении к этим функциям по ходу написания Компилятора1 понадобилось реализовывать ещё немного функций на C++ — там, где по той или иной причине это было невозможно сделать с использованием Ü.

Адаптация тестов

Перед разработкой Компилятора1 для Компилятора0 было написано уже достаточно много тестов — около двух тысяч. Чуть менее половины этих тестов написаны на C++ и запускаются как исполняемый файл. Чуть более половины тестов — это тесты, написанные на Python и запускающиеся с использованием разделяемой библиотеки, реализующей функционал компилятора. Ещё несколько тестов — это тесты с полноценной компиляцией в бинарные файлы и компоновкой.

Такое странное разделение родилось исторически. Сначала тесты писались на C++, потом, чтобы ускорить перезапуск тестов при их правке, было принято решение писать их на Python. Тесты на компоновку нужны там, где не достаточно просто запустить интерпретатор LLVM для IR кода тестируемой программы.

Итак, перед написанием Компилятора1 все эти тесты надо было адаптировать для Компилятора0. Для C++ тестов была добавлена относительно тонкая абстракция над библиотекой компилятора. Для Python тестов была написана отдельная разделяемая библиотека с кодом Компилятора1. Тесты компоновки же были переделаны на двукратный запуск — с Компилятором0 и Компилятором1.

Ещё одна проблема была в том, что не возможно за один мах написать весь Компилятор1. Надо было, чтобы в ходе его разработки были включены только те тесты, что тестируют уже созданный функционал. Эту проблему я решил через белый список тестов, которые стоит запускать в Компиляторе1. В начале белый список был пуст, в последствии он всё более и более пополнялся. Под самый конец разработки, когда в этом списке было уже более 90% тестов, белый список был заменён чёрным списком — с тестами, которые ещё не проходят. По правде говоря, даже сейчас в чёрном списке тестов Компилятора1 кое-что остаётся — в основном для экспериментального/сомнительного функционала.

Доказательство возможности

Исправив наиочевиднейшие ошибки в Компиляторе0 и стандартной библиотеке, выполнив ряд приготовлений я продолжил написание Компилятора1. Сразу писать весь Компилятор1 от начала и до конца я считал несколько рискованным. Поэтому я решил написать только небольшую его часть чтобы проверить, что это вообще возможно на текущем уровне развития языка. Целью было написать (недо)компилятор с минимумом базовых возможностей, проверяемых сотней-другой тестов. Сомнения были в возможности создать нужные компилятору структуры данных и в наличии необходимых для разработки конструкций языка и кода стандартной библиотеки.

Как читатель уже наверное догадывается, первая стадия написания Компилятора1 удалась. Оказалось, что имеющихся конструкций языка (за некоторым исключением) вполне достаточно для написания C++-подобного кода. Имеющихся контейнеров стандартной библиотеки — box, optional, vector, unordered_map, shared_ptr* тоже оказалось достаточно для создания внутренних структур данных компилятора.

Также уже на этом этапе обнаружились некоторые особенности языка, которые потребовали несколько иного подхода к организации структур данных в Компиляторе1 по сравнению с Компилятором0. Основные отличия были следующие:

  • В Компиляторе1 более распространено использование shared_ptr-подобных контейнеров, которые переносят правила контроля ссылок на время выполнения. В C++, к примеру, можно итерироваться по коллекции с целью изменить её элементы и в то же время иметь к ней доступ на чтение из кода, который эти элементы изменяет. Статический контроль ссылок в Ü такого не позволяет. Использование же shared_ptr-подобных контейнеров для элементов коллекции позволяет по этой коллекции итерироваться логически не изменяя её, но при этом изменяя элементы внутри shared_ptr.
  • Описанная несколькими разделами ранее проблема с vector для рекурсивных структур была отчасти решена через использование box для элементов vector-а.
  • Опережающее объявление в C++ позволяет использовать неполный тип в гораздо больших контекстах, чем это позволено в Ü. Из-за этого пришлось объявлять почти все внутренние структуры компилятора в одном файле.
  • В структурах построителя промежуточного кода в Компиляторе0 местами есть сырые ссылки/указатели на соответствующие структуры синтаксического дерева. В Компиляторе1 из-за того самого контроля ссылок такое было сделать проблематично. Вместо этого в структурах построителя промежуточного кода используется контейнер shared_ptr_final, являющийся облегченной версией shared_ptr для неизменяемых данных. Накладные расходы на его использование не сильно выше использования сырых ссылок/указателей в аналогичном C++ коде, но зато есть гарантия времени компиляции, что ссылка не протухнет (чего нельзя сказать о подобных гарантиях в C++).

Доделывание Компилятора1

Самая долгая, трудоёмкая и (относительно) скучная часть работы по написанию Компилятора1 состояла в реализации всех необходимых возможностей. Но даже про эту часть работы есть чего рассказать. Как оказалось, даже на этапе доделывания Компилятора1 в Компиляторе0 выявился ряд недостатков, один серьёзный и ряд более мелких.

Отлавливание не очевидных ошибок Компилятора0

Несколько раз при написании Компилятора1 я замечал странное — код вёл себя не так, как ожидалось. После некоторого времени, потраченного на отладку, я локализовывал ошибку в конкретном месте и не мог найти, что же в этом коде не так. Прибегнув в просмотру ассемблерного кода, я находил, в чём же дело.

Оказывалось, что ассемблерный код не соответствовал исходному. В одном из случаев я обнаружил ошибку, когда Компилятор0 пропускал ошибку с отсутствием return в функции, из-за этого функция возвращала мусор. В другом случае я обнаружил отсутствие вызова деструктора там, где это было необходимо.

Ещё несколько раз я натыкался на ошибки контроля ссылок, возникающие на пустом месте. В последствии оказывалось, что виною всему ошибки в Компиляторе0. В одном из таких случаев я обнаружил, что связывание ссылок проверяется не перед каждым оператором return, а только в конце тела функции, что было методологически неверно, но что самое болезненное, приводило иногда к падениям компилятора, когда последним элементом тела функции не был оператор return.

О вычислителе constexpr функций

Реализация большинства возможностей Компилятора1 не представляла особых проблем. Но одним из немногим исключений оказался вычислитель constexpr функций.

Что же это такое? Это специальный компонент, задача которого, исполнять во время компиляции constexpr функции. В Ü constexpr функции это специальный класс функций, имеющий некоторые ограничения позволяющие им выдавать детерминированный результат, и как следствие, позволяющие вызывать эти функции на этапе компиляции, чтобы использовать результаты такого вызова в качестве констант времени компиляции. К примеру, можно вычислить достаточно сложным образом число, которое будет использовано как размер массива.

Так вот, по своей сути этот компонент представляет собой свою реализацию интерпретатора некоторого подмножества IR кода. Продвинутый читатель спросит, а зачем он нужен, если в библиотеке LLVM уже есть подобный интерпретатор? Ответ следующий — он не подошёл, т. к. завязан на параметры системы, на которой запускается интерпретатор, а не целевой системы. В Компиляторе это критично — размер указателя, выравнивание структур, порядок байт при вычислении constexpr функций должны совпадать с таковыми на целевой системе.

С этим компонентом проблема оказалась следующая — он слишком завязан на структуры данных LLVM, полный доступ к которым не возможен через Си биндинги. Написать этот компонент на Ü было весьма проблематичным. Оказалось, что гораздо проще переиспользовать его как есть в Компиляторе1, написав соответствующие прокладки. Кода прокладок вышло всего несколько десятков строк.

Оператор for в стиле Си

В ходе разработки Компилятора1 я обнаружил, что набор базовых конструкций языка всё-же не совсем достаточен. Оказалось, что цикла while не достаточно для всех случаев. Проблема оказалась в том, что цикл while не позволяет выполнить какие-то действия на каждой итерации цикла, включая переход к следующей итерации через continue. А выполнять такие действия оказалось необходимо, например, в циклах итерирования по коллекциям.

Данную проблему я посчитал весьма серьёзной — она мешала использовать continue в циклах и вынуждала писать плохо читаемые комбинации if-else. Поэтому, прямо по ходу разработки Компилятора1, пришлось добавлять в язык/Компилятор0 поддержку такой конструкции цикла, которая бы не обладала таким недостатком. Я решил не изобретать велосипед и просто позаимствовал классический цикл for из Си — с объявлением переменных, условием продолжения цикла и набором операций конца итерации. После реализации такого цикла я переделал макрос цикла foreach с while на for, что позволило упростить код многих циклов в Компиляторе1.

Достижение самосборки

В какой-то момент я реализовал большинство возможностей языка в Компиляторе1. Возможность собрать Компилятор2 (собранный Компилятором1 из исходного кода Компилятора1) показалась на горизонте.

Но всё оказалось не столь простым. Удивительно, но в Компиляторе1 оказалось какое-то количество ошибок, которые не выявились юнит-тестами. Часть этих ошибок выявилась при запуске тестов стандартной библиотеки через Компилятор1. Исправление этих ошибок заняло какое-то время. Часть ошибок выявилась при попытке таки собрать Компилятор2, их тоже какое-то время пришлось исправлять.

Но и это ещё не всё. Отладочная сборка работала, но не работала выпускная сборка — она падала где-то в оптимизаторах IR кода в недрах библиотеки LLVM. Оказалось, что кое-где Компилятор1 генерирует не совсем правильный IR код. Это пришлось исправлять.

Наконец, спустя несколько месяцев активной разработки, мне удалось собрать Компилятор2. После этого я для проверки, что всё в порядке, по такой же схеме собрал ещё и Компилятор3.

Послесамосборочные исправления

Оказалось, что достижение самосборки — это ещё не конец. В процессе были выявлены недостатки как Компилятора0, так и самого языка. Это всё надо было исправлять.

Многократное ускорение сборки

По ходу разработки Компиятора1 я замечал, как всё медленнее и медленнее он собирается. К моменту достижения самосборки Компилятор1 собирался с нуля несколько минут, против нескольких десятков секунд Компилятора0 (на C++). Я стал искать причину столь долгой сборки.

Ключ к решению проблемы дало наблюдение размера объектных файлов, созданных Компилятором1. Они оказались на порядки более объёмными и содержали кратно больше символов, чем аналогичные файлы Компилятора0. Анализ показал, что подавляющее большинство этих символов это методы шаблонных классов, шаблонные функции, сгенерированные конструкторы/операторы присваивания/деструкторы. Наличие этих символов казалось вполне логичным — для них ведь, как и для других символов используется публичная видимость.

Когда я писал Компилятор0 и даже Компилятор1 я об этом не задумывался. Использование публичной видимости символов казалось само собою разумеющимся. Я решил пересмотреть этот подход. Оказалось, что для шаблонных/сгенерированных символов публичная видимость и не нужна, т. к. они по необходимости генерируются в каждой единице компиляции. Поэтому, сначала в качестве эксперимента, я изменил видимость таких символов на приватную.

И это сработало! Оказалось, что проходы оптимизации LLVM выбрасывают приватные символы, если они не используются (были встроены), после чего генератор кода не создаёт для них бинарный код и в результирующий объектный файл они тоже не записываются. Компиляция Компилятора1 (и последующих поколений) кратно ускорилась и стала сравнимой по времени с компиляцией Компилятора0. Объектные файлы сильно потеряли в размере и их размер стал сравним с таковыми файлами Компиялтора0.

У продвинутого читателя может возникнуть вопрос — а зачем вообще на уровне фронтенда компилятора генерировать символы, которые не используются? Для шаблонных классов это сознательное решение в дизайне языка. В отличие от C++, где методы шаблонных файлов генерируются лениво, в Ü они генерируются сразу, чтобы убедиться в консистентности кода для заданных аргументов шаблона. Если какой-то метод не нужен в конкретных условиях, его можно явно отключить через enable_if. Для методов это просто упрощение кода компилятора, проще сгенерировать методы сразу, чем делать это отложенно.

Ведёт ли вышеописанный подход к снижению производительности компилятора? Да, в некоторой степени. Но как будет показано ниже, влияние его на производительность незначительно. Всё-же на всякий случай перед запуском оптимизирующих проходов библиотеки LLVM я добавил запуск прохода на удаление неиспользуемых символов, чтобы для них не запускались непосредственно проходы оптимизации.

Реализация недостающих возможностей

После достижения самосборки осталось реализовать в Компиляторе1 ещё ряд возможностей, которые не были необходимы для неё.

Во-первых оставалось доделать создание отладочной информации. Не без проблем, но я это сделал.

Во-вторых пришлось реализовать библиотечную функцию быстрой сортировки. До этого в Компиляторе1 (к моему стыду) использовалась тупо пузырьковая сортировка, которая в некоторых ситуациях значительно замедляла его работу.

В-третьих, пришлось добавить генерацию ряда служебных символов (номера версии, поколения компилятора) в результирующие объектные файлы. Это нужно, иногда, для отладки.

Облагораживание массивов

Исторически так сложилось, что типы массивов были не совсем полноценными — их нельзя было передавать в функцию по значению и возвращать из функции, их нельзя было присваивать и инициализировать копией. Я решил, что такая дискриминация ни к чему и реализовал все эти возможности для массивов.

Подобное изменение дало возможность использовать типы массивов, например, в шаблонах и работать в с ними так же, как и с любыми другими типами.

Сырые указатели

В языке до этого не было указателей, только ссылки. Там, где всё же были нужны указатели (в недрах стандартной библиотеки) использовался шаблонный класс, реализованный через целочисленный тип и преобразования число < — > ссылка. Такой подход порождал не совсем удобочитаемый IR код (с множеством операций inttoptr/ptrtoint). Но что более существенно, он потенциально мог вредить будущему внедрению type based alias analysis (TBAA).

Поэтому я решил реализовать типы сырых указателей на уровне языка. Данный класс типа предназначен для небезопасного кода и реализации всяческих контейнеров, для написания прикладного кода он не нужен. Использование этого типа не дозволено в constexpr функциях, разыменование указателя позволено только в unsafe коде. Синтаксически работу с сырыми указателями я сделал специально непохожей на таковую в C++, чтобы отвадить ими пользоваться.

Переделка типа void

Долгое время тип void в Ü был похожим на таковой в C++ — использовался для возвращаемого значения функций и в качестве типа для указателей/ссылок на нетипизированные данные. Но, как оказалось, такой тип не очень то удобен и я решил его изменить.

Во-первых я сделал данный тип полноценным, чтобы можно было объявлять переменные/поля этого типа, инициализировать/копировать значения этого типа, явно передавать их в функцию, сравнивать на равенство. Данное изменение позволило использовать этот тип наравне со всеми другими типами в шаблонном коде. К примеру, после этого изменения я реализовал библиотечный контейнер unordered_set через unordered_map с void в качестве значения.

Во-вторых, я убрал возможность неявных преобразований ссылок в void. Это было сделано, т. к. я счёл неверным и небезопасным считать тип void базовым для всех других типов. Вместо этого я планирую в будущем ввести некоторый другой тип для этого, который бы подобно char в C++ мог пересекаться с любым другим типом.

Доработка контроля ссылок

В ходе разработки Компилятора1 я периодически писал примерно такой код:

fn Foo(T& x, T& y);
///
var [ T, 2 ] mut arr= zero_init;
Foo( arr[0], arr[1] );

На последней строке я получал ошибку контроля ссылок. В чём же дело? Оператор [] для изменяемого массива создавал в графе ссылок (внутренней структуре данных компилятора) узел — изменяемую ссылку на arr. Далее для аргумента функции создавался узел неизменяемой ссылки, связанный с предыдущим узлом. При вычислении второго аргумента оператор [] уже не мог создать узла изменяемой ссылки, т. к. уже имелась одна изменяемая ссылка для arr. Чтобы обойти подобную проблему, приходилось писать код так:

Foo( cast_imut(arr)[0], cast_imut(arr)[1] );

Оператор cast_imut преобразовывал ссылку в неизменяемую, после чего оператор [] тоже создавал неизменяемую ссылку и ошибок контроля ссылок далее не возникало.

Я счёл, что необходимость написания данного кода — недостаток языка и от него необходимо избавится. Решил я эту проблему следующим способом — промежуточные узлы графа ссылок удалялись, после того, как стали ненужными. В примере в начале узел изменяемой ссылки, созданной оператором [] удалялся после создания узла неизменяемой ссылки аргумента функции.

Внесение данного исправления позволило упростить подобные места в Компиляторе1 а также избавиться от ложных ошибок контроля ссылок в будущем.

Замеры производительности

Я произвёл замеры производительности Компилятора0 и Компилятора1. Для замеров использовался инструмент Valgrind. Компилятор0 был скомпилирован при помощи GCC. Компилятор1 был скомпилирован Компилятором0. В обоих случаях использовался уровень оптимизации -O2.

Замеры производились путём компиляции одного из файлов Компилятора1. Ниже представлена таблица с результатами — общим временем работы компилятора, временем, затраченным на фронтенд компилятора и на бекенд (оптимизации, генерацию бинарного кода).

В целом Компилятор1 работает дольше Компилятора0 на ~5.5%. Но при этом собственно работа фронтенда (отличающегося в разных компиляторах) занимает только 31-36% времени. Так что если сравнить производительность фронтендов, то в Компиляторе1 он работает дольше на 21%.

С одной стороны это хорошо, что Компилятор1 по порядку производительности близок к Компилятору0. Но стоит ещё учесть, что даже во фронтенде Компилятора1 значительная часть исполняемого кода — это код на C++ внутри библиотеки LLVM. Так что сравнение чисто кода на Ü по отношению к коду на C++ может дать ещё большее отставание первого.

Вопрос — в чём же дело? Откуда такое отставание? Я предполагаю следующие причины:

  • Отсутствие TBAA в компиляторе Ü. В C++ эта оптимизация есть и потенциально может давать прирост производительности в несколько процентов.
  • Отсутствие оптимизации коротких строк в стандартной библиотеке Ü. Там, где на C++ часто не нужно выделения памяти для строки в куче, в Компиляторе1 она всегда выделяется.
  • Контейнер для большинства структур данных в Компиляторе1 это unordered_map с string ключём. unordered_map кривовато написан, да и вся связка может работать медленно. В Компиляторе0, для сравнения, используется llvm::StringMap — специально оптимизированный контейнер.
  • Несколько более частое использование shared_ptr-подобных типов в Компиляторе0, по сравнению с Компилятором1.
  • Использование C API библиотеки LLVM из Ü не позволяет использовать встраивание функций, тогда как в Компиляторе0 вызовы LLVM функций/методов могут быть легко встроены. Проблему могло бы решить использование кросс-языковой оптимизации времени компоновки, но ею я ещё не занимался.

Заключение

В результате долгой и упорной работы самодостаточный (почти) компилятор таки был создан. В процессе сам язык был немного исправлен и дополнен. Изначальный компилятор (на C++) был местами доработан и исправлен.

В дальнейшем я пока планирую продолжить поддержку двух версий компилятора. Это даёт некоторые преимущества вроде кросс-верификации и сравнения производительности. Да и чисто технически отказ от Компилятора0 пока что не возможен. Отказаться от начального компилятора можно будет только когда (и если) язык Ü и его компилятор станут достаточно распространены, чтобы было можно разрабатывать Компилятор1 собирая его собранной ранее предыдущей версией себя же.

Ссылки

Ü на GithHub, код Компилятора1

Документация

Как правильно писать слова: «исправлено» или «исправленно»

Часть речи

Говоря о том, как пишется «исправлено», стоит отметить, что огромное значение оказывает то, какой частью речи выражена конструкция. Однако определить это может быть не так просто, как кажется. Очень многие писатели путают слово с другими частями речи, в результате чего применяют к нему совершенно неподходящее правило и делают в тексте массу ошибок. Единственно верный вариант — провести синтаксический анализ предложения, в котором употреблено интересующее слово: «Я не мог верить тому, что все было исправлено, поскольку список выглядел точно так же, как и в предыдущем случае». Однако делать это нужно по инструкции:

Как найти грамматическую основу предложения

  1. Найти грамматическую основу предложения, то есть определить его главные члены. Для этого необходимо внимательно прочитать конструкцию и понять, о чем в ней говорится. Вот все подлежащие и сказуемые: «я не могу верить», «все было исправлено», «список выглядел точно так же».
  2. Определить второстепенные члены предложения. Делать это необходимо даже в том случае, если то, чем выражена интересующая конструкция, уже определено. Ведь нередко бывает так, что какое-нибудь наречие или краткое причастие, которое должно было выступать в роли именной части сказуемого, попросту «зависает» в тексте.
  3. Надписать над каждым словом, чем именно оно выражено. Чтобы определить это с максимальной точностью, необходимо знать не только то, на какие вопросы отвечает та или иная часть речи, но и какую роль она выполняет. К примеру, прилагательные обозначают признак предмета, а наречия — признак действия.

Пользуясь этой инструкцией, можно определить, что слово «не исправлено» является второй частью составного именного сказуемого. Из школьного курса известно, что оно может быть выражено практически любой частью речи, однако, задав от главного слова вопрос к зависимому — было каково? — исправлено, можно сделать вывод о том, что приходится иметь дело с кратким причастием. Об этом же свидетельствует и лексическое значение конструкции «все исправлено» — обозначает признак предмета и отвечает на тот вопрос, который характерен для краткого причастия.

Морфологический разбор

Чтобы понять, как правильно писать «исправлено», будет весьма полезно определить, как именно было образовано слово. Сделать это не так сложно, если знать, что краткие формы страдательных причастий образуются от полных путем усечения окончания. Вот несколько примеров:

  • исправленный документ — документ исправлен;
  • исправленное правило — правило исправлено;
  • исправленная конструкция — конструкция исправлена.

Аналогичное правило действует в отношении слова правленные.

    Морфологический разбор слова

    Из примеров становится понятно, что усекается не только несколько букв из окончания, но и одна буква «н» из суффикса. Это характерно для каждого краткого причастия, благодаря чему можно сделать вывод о том, что эта часть речи всегда пишется с одной буквой «н» в суффиксе. Причем наличие противопоставления или зависимых слов в предложении никак не отразится на этом. Писатель просто должен запомнить, что в кратких причастиях пишется всего одна буква «н».

    Стоит отметить, что такой способ образования характерен только для тех случаев, когда речь идет о прошедшем времени. Если же необходимо образовать форму настоящего времени, то делается это путем отсечения окончания «им», «ом» или «ем». Вот лишь три наиболее простых примера:

    • изучаемый курс — курс изучаем;
    • хранимый артефакт — артефакт храним;
    • выполняемый доклад — доклад выполняем.

    Также стоит отметить, что это касается и тех слов, которые имеют в своем составе отрицательную приставку «не», например, неисправленный — не исправлено или не исправленный — не исправлено. Наличие «не» в слове никак не отражается на правоприменение по поводу «н» или «нн» в суффиксе, однако правописание отрицательной частицы с кратким причастием — тема, которая сама по себе заслуживает отдельного упоминания.

    Из всего этого можно сделать вывод о том, что в кратких причастиях прошедшего времени в любом случае будет писаться в суффиксе одна «н».

    Однако сложность темы заключается вовсе не в том, что столь простую истину трудно запомнить. Просто очень многие писатели путают причастия с другими частями речи, поскольку сходство действительно практически идентично. Именно поэтому так важно уметь правильно проводить синтаксический анализ, а также знать некоторые приемы, которые помогут упростить работу.

    Отглагольные прилагательные

    Из курса 10 класса старшей школы ученикам стало известно, что помимо причастий в русском языке также присутствуют отглагольные прилагательные (ОП), которые очень сильно похожи друг на друга по внешнему виду, но имеют принципиально разные лексические значения. Вот несколько примеров:

    • летящие листья (причастие) — летучие облака (ОП);
    • позолоченный рожок (причастие) — золоченое кольцо (ОП);
    • раненный в руку (причастие) — раненый солдат (ОП);
    • рассеянные тучи (причастие) — рассеянный мальчик (прилагательное).

    Правописание «н» и «нн» в кратких прилагательных

    Само собой, правописание «н» и «нн» в кратких прилагательных и причастиях совершенно отличается, поэтому важно научиться отличать эти части речи друг от друга. Сделать это можно сразу несколькими способами:

    Как заменить конструкцию придаточным определительным

    1. Взглянуть на лексическое значение конструкции. Причастия обычно говорят о том, что действие совершалось в определенный промежуток времени: «Мне довелось подправить рукопись, используя для этого ручку, которая была неисправлена» (прошедшее время, а отглагольные прилагательные, образованные от глаголов, обычно обозначают постоянный признак предмета: «Ручка неисправлена (в настоящий момент), поэтому я не могу отредактировать статью, провести проверочную работу или хотя бы написать заявление или договор».
    2. Посмотреть на наличие приставок в слове. Только в причастиях (полных или кратких) будет находиться приставка «по», а в ОП ее не будет — «Исправлять недочеты позолоченного украшения — все равно что откорректировать запись на листке бумаги» и «Для того, чтобы подправить недочет в золоченом кольце, мне потребуется устранить все неровности с помощью шлифовальной машинки». Само собой, применить этот пункт получается далеко не всегда, однако он может быть крайне полезным в некоторых случаях.
    3. Взглянуть на наличие зависимых (пояснительных слов). У причастия они могут иметься, причем в довольно большом количестве: «Раненный в левую руку солдат пытался починить уже давно исправленный механиком автомобиль». В ОП пояснительные конструкции всегда будут отсутствовать: «Раненый солдат писал письмо матери по заранее составленному образцу» — тоже весьма полезный способ, который позволяет быстро найти причастия (особенно краткие) на письме.
    4. Попробовать заменить конструкцию придаточным определительным. Вместо причастий обычно можно поставить глагол со словом «который» — лепестки рассеяны ветром — лепестки, которые рассеял ветер. С отглагольными прилагательными удается лишь подобрать синоним: рассеянный ребенок — невнимательный ребенок. Именно этим методом предпочитает пользоваться большинство учеников и писателей, поскольку он является практически беспроигрышным.

    Таким образом, если правильно определить часть речи, то удастся подобрать правило, которое подходит к конкретному случаю. Но сколько же букв «н» писать в отглагольном прилагательном, если его все-таки удастся найти?

    Правило «н» и «нн» в ОП

    Если выйдеттак, что слово «исправлено» выражено не причастием, а отглагольным прилагательным, то к нему придется применять совершенно другое правило. Кроме того, придется обратить внимание на наличие определенных слов внутри самой конструкции. Правило, что в кратких прилагательных (пусть и отглагольных) пишется столько же букв «н», сколько и в полных, от которых они образованы. В начальной же форме «нн» пишется в следующих случаях:

    Правило «н» и «нн» в ОП

    1. Если прилагательное образовано от глагола совершенного вида (укороченный, проведенный, сложенный и так далее). Определить их можно по вопросу, в котором имеется приставка «с» (что сделать? — укоротить, провести, сложить). Исключение составляют несколько устоявшихся слов, правописание которых следует смотреть в орфографическом словаре: контуженый (солдат), раненый (офицер), названый (отец).
    2. Если слово оканчивается на «ованный» или «еванный», например, неорганизованный, малеванный, избалованный и так далее. Исключение составляют слова: клеваный, жеваный, кованый.
    3. В прилагательных — неожиданный, чеканный, нечаянный, медленный, священный, неслыханный, желанный, негаданный, невиданный, нежданный — в этих исключениях всегда пишется две буквы «н».

    Слово «исправлено» (в роли краткого прилагательного) не относится к исключениям, поэтому в суффиксе вполне может писаться 2 буквы «н» в том случае, если оно образовано от глагола совершенного вида (что сделать?) «исправить». Однако справедливости ради стоит отметить, что в большинстве случаев конструкция будет являться все-таки причастием, а это значит, что в краткой форме будет писаться всего одна «н».

    Значение слова «исправить»

    Тема с одной и двумя буквами «н» в кратких причастиях и кратких отглагольных прилагательных является одной из самых сложных в русском языке, поскольку даже эксперту не всегда с первого раза понятно, какая именно часть речи находится перед ним. Однако если часто иметь дело с теми или иными конструкциями, то у человека может выработаться интуиция. В будущем шестое чувство будет подсказывать, сколько букв «н» нужно вставить в конструкции в данном случае, поскольку мозг уже имел дело с похожим случаем когда-то давно. Однако для этого придется научиться разбираться в лексических значениях похожих слов:

    Значение слова «исправить»

    • исправлено (КП) — что-то было кем-то исправлено и теперь его можно использовать;
    • исправлено (краткое ОП) — что-то отличается хорошими качествами на данный момент;
    • исправиться (глагол СВ) — провести работу над собой в лучшую сторону;
    • исправляться (глагол СВ в настоящем времени) — проводить работу над собой в данный момент;
    • исправимый (отглагольное прилагательное) — что-то подлежит возможности изменения в лучшую сторону;
    • поправить (глагол с приставкой «по») — провести какую-то мелкую доработку, например, заправить двигатель маслом;
    • исправный (ОП) — предмет, находящийся в рабочем состоянии и не нуждающийся в восстановлении;
    • исправление (существительное) — работа, проводимая с целью улучшить качества предмета;
    • исправленый — (полное причастие) — предмет, который был кем-то исправлен в прошлом;
    • правленый — (причастие без приставки) — объект, который был слегка усовершенствован.

    Основные лексические формы слова «исправить»

    И это лишь основные лексические формы, которые встречаются на письме гораздо чаще других. За более детальной информацией можно обратиться к специальному справочнику. Само собой, запомнить все «переводы» слов из орфографического словаря будет невозможно, однако у каждого человека есть интуиция, которая позволяет примерно сопоставлять различные слова в одной категории, чтобы подбирать к ним одно и то же подходящее правило.

    Если научиться верно находить лексическое значение, то со временем даже не потребуется задумываться над тем, почему в одном случае пишется «н», а другом — «нн». Интуиция просто будет подсказывать, как написать конструкцию, и в большинстве случаев окажется полностью права. Нужно лишь как можно больше времени уделять синтаксическим разборам и чтению, чтобы увеличивать свой словарный запас.

    Ошибка исправлена как пишется


    3

    11 ответов:

    Ошибка исправлена как пишется



    6



    0

    Часть речи слова «исправленный» — причастие образованное от слова «исправлять».

    Раздельно отрицательная частица «не» пишется с причастиями, если у причастия есть зависимое слово.

    Пример предложения. Никем не исправленный недочет. (Не исправленный «кем?» — никем. Зависимое слово — «никем»)

    Раздельно частица «не» пишется с причастиями, если в предложении присутствует противопоставление выраженное союзом «а», либо такой союз в предложении подразумевается.

    Пример предложения. Не исправленный, а пропущенный недочет.

    Раздельно пишется частица «не» с причастиями, и в том случае, если частица «не» употребляется в смысловом значении отрицания, а в случае усиления смыслового значения отрицания такими словами, как: вовсе не, отнюдь не, ещё не, крайне не, совершенно не, далеко не, совсем не, ничуть не, точно не, нимало не, нисколько не, никто не, больше не, ничего не и другими аналогичными этим.

    Пример предложения. Еще не исправленная жизненная ошибка.

    С краткими причастиями отрицательная частица «не» всегда пишется раздельно.

    Пример предложения. Недочет не исправлен.

    Во всех прочих случаях отрицательная частица «не» с причастиями пишется слитно.

    Пример предложения. Неисправленный вариант. Неисправленный счет-фактура.

    Ошибка исправлена как пишется



    5



    0

    Неисправленный и не исправленный пишется слитно и раздельно в зависимости от состава слова и грамматических условий в предложении.

    Сначала рассмотрим, в каких случаях слово «неисправленный» пишется слитно.

    Несправленный текст нельзя публиковать.

    Глагол «исправить» образует страдательное причастие прошедшего времени «исправленный». От него с помощью приставки не- можно образовать новое слово с противоположным значением:

    исправленный — неисправленный;

    не-ис-правл-енн-ый — приставка/приставка/­<wbr />корень/суффикс/оконча­<wbr />ние.

    Если в предложении у этого причастия нет зависимых слов, противопоставления и слов, усиливающих отрицание, то слово «неисправленный» пишется слитно.

    Неисправленный очерк следует переработать.

    Слово «не исправленный» пишется раздельно в следующих случаях:

    1) у причастия имеется зависимое слово

    Не исправленный корректором текст лежит на столе.

    2) В предложении имеется противопоставление

    Этот документ не исправленный, а выданный снова.

    3) В высказывании есть слово «отнюдь», «вовсе» или «далеко»

    Вовсе не исправленный рассказ требует корректировки.

    4) В присутствии слов с ни- (местоимение или наречие)

    Никем не исправленный мотор не заводится.

    Ошибка исправлена как пишется



    2



    0

    Данное слово (не)исправленный является причастием, в зависимости от контекста предложения оно может быть написано как слитно, так и раздельно.

    Писать данное причастие с частицей «не» необходимо отдельно в случаях:

    • В предложении слово имеет зависимое слово.

    Не исправленный учителем реферат.

    • В предложении есть противопоставление.
    • В предложении имеет место быть таким словам, как «совсем», «отнюдь», «вовсе», «далеко».

    Совсем не исправленный договор признан неверным.

    • Имеется усиление отрицания с часттцей «ни».

    Ничуть не исправленный макет корабля был забракован.

    Стоит ориентироваться на данные условия, определяющие слитное или раздельное написание слова не/исправленный.

    Ошибка исправлена как пишется



    2



    0

    Здесь оба варианта имеют место быть, так как и тот, и другой вариант может быть верен, а зависит это от каждого конкретного случая, то есть определять где как писать, то есть слитно или же раздельно, нужно в контексте того или иного предложения или словосочетания. Ведь если данное слово противопоставляется, то есть существует противопоставление, тогда следует писать только раздельно, то есть к примеру не исправленный, а ошибочный. Ну а ежели ничего подобного нет и слово это можно заменить любым синонимом без частицы не, то в этом случае пишем всегда только слитно. Вот такие вот правила, которые говорят нам о том, что чтобы определить когда и как писать это слово нужно смотреть индивидуально, то есть каждый случай рассматривать в отдельности, потому что писать можно и слитно, и раздельно, то есть оба варианта в общем-то верны.

    Ошибка исправлена как пишется



    2



    0

    В русском языке, существуют и используются оба варианта, то есть и слитный «неисправленный­» и раздельный «не исправленный». Но раздельный вариант нужно использовать в тех предложениях, в которых есть такие слова как: «совсем», «отнюдь», «вовсе», «далеко», которые используются как усиливающие отрицание и создают противопоставление или такие союзы как «а» или «но», которые тоже создают противопоставление.

    Если всех этих слов и союзов нет, тогда применяете слитный вариант написания данного слова.

    Примеры:

    Мой новый телевизор был неисправленный и я не знал что делать.

    Мой старый телевизор был совсем не исправленный.

    Ошибка исправлена как пишется



    2



    0

    Чтобы ответить на данный вопрос, надо знать в каком значении употребляется это слово.

    <hr />

    Чаще всего оно пишется слитно:

    • Я перепутал и сдал на проверку неисправленный вариант.
    • Она долго переживала из-за неисправленной ошибки.

    <hr />

    Раздельно «не исправленный» надо писать:

    • при противопоставлении («не исправленный, а подчеркнутый текст»);
    • при усилении отрицания («текст нисколько не исправленный»);
    • при скрытом отрицании («я считаю, что этот текст НЕ исправленный»);
    • при наличии зависимых слов («не исправленная никем ошибка»).

    Ошибка исправлена как пишется



    1



    0

    Если это слово в предложении используется одно, и для него не слово противопоставленного ему по смыслу, или же нет наоборот — слов усиливающих его значение, то пишется слитно, поскольку самостоятельно и завершенно выражает мысль.

    Ну и в противном случае (при наличии таковых) будет писаться раздельно.

    Ошибка исправлена как пишется



    0



    0

    Если для прилагательного можно подобрать синоним — в данном случае синонимом будет ошибочный, то пишется слитно: «неисправленный»

    Ошибка исправлена как пишется



    0



    0

    Можно написать «неисправленный», а можно «не исправленный», оба варианта присутствуют в русском языке, жа и слово «исправленный» вполне можно употреблять без частицы «не».

    Иными словами, надо смотреть по предложению, если есть противопоставление в предложении , пишете раздельно.

    Ошибка исправлена как пишется



    0



    0

    От глагола «исправлять» имеет происхождение слово «исправленный», следовательно, это в прошедшем времени страдательное причастие. Его написание починяется правилам. Если можно заменить синонимом без потери смысла такое слово, пишем его слитно. В случае смысла этого слова, заключающегося в отрицании либо противопоставлении пишем раздельно. Пример: Это неисправленный фрагмент текста, который сегодня неактуален. Пример: Это текст не исправленный редактором, а оставшийся в прежнем виде.

    Ошибка исправлена как пишется



    0



    0

    Данные слова подпадают под общее правило о правописании не с прилагательными. так что в случае противопоставления пишется отдельно, а так в основном вместе. вот вам примеры. Этот текст не исправленный. а просто забытый. Этот вариант ответа неисправленный.

    Читайте также

    Ошибка исправлена как пишется

    Разберем как писать правильно с отрицательной частицей «не» слово «атлетический­». В русском языке возможно как слитное, так и раздельное написание слова.

    Часть речи слова «неатлетический­» — имена прилагательные.

    Слитно с частицей «не» имена прилагательные пишутся, в том случае, если к слову можно подобрать синоним без данной частицы. Слово «неатлетический­» можно заменить практически любым словом-синонимом подходящим по смыслу и контексту.

    Пример предложения.

    Неатлетическая фигура.

    Раздельно пишутся прилагательные с частицей «не», если в предложении есть противопоставление с союзом «а», либо такой союз в нем подразумевается.

    Пример предложения.

    Не атлетический, а игровой спортивный снаряд.

    Раздельно имена прилагательные пишутся, если частица «не» используется в предложении для выражения смыслового значения отрицания, которое, как правило, устанавливает сам пишущий. В этом случае с прилагательным могут встречаться слова отрицание усиливающие. Примеры таких слов: совсем не, нисколько не, вовсе не, ещё не, отнюдь не, ничуть не, нимало не, далеко не, больше не, совершенно не, крайне не и другими подобными.

    Пример предложения.

    Спортсмен имел вовсе не атлетический внешний вид.

    В предложениях вопросительной формы частица «не» пишется с прилагательными раздельно.

    Пример предложения.

    Это у Вас не атлетический спортивный костюм?

    Ошибка исправлена как пишется

    Пишется «недостойный» в тех предложениях, где можно заменить это прилагательное синонимом без «не». Таких случаев большинство. Например:

    • Это недостойный («скверный») человек.
    • Ты поступил как человек недостойный («бесчестный»).

    <hr />

    Пишется «не достойный» в предложениях, где есть противопоставление («а»), усиление отрицания («нисколько не», «ничуть не» и т.д.) и скрытое отрицание. Примеры:

    • Ты человек не достойный, а низкий.
    • Он нисколько не достойный человек, хотя ты и отзывался о нем хорошо.
    • А я считаю, что он НЕ достойный человек.

    Ошибка исправлена как пишется

    Часть речи слова «непогашение­» — имена существительные. Слово может быть написано с отрицательной частицей «не» как слитно, так и раздельно. Тем не менее в языковой практике чаще применяется его слитное написание. Согласно с правилами русского языка, имена существительные с частицей «не» пишутся слитно в том случае, если употребление слова с отрицательной частицей придает слову некое новое противоположное смысловое значение. Достаточно часто слово «непогашение­» употребляется в финансовых, юридических официальных документах, где оно имеет смысловое значение отсутствия выполнения некого предписанного, должного либо ожидаемого действия. В случае слова «непогашение­» — это отсутствие исполнения каких-либо взятых на себя финансовых либо иных обязательств.

    Пример предложения. Непогашение кредита в установленный срок.

    Раздельно пишутся имена существительные с частицей «не», если в предложении выражено смысловое противопоставление однородных членов с союзом «а».

    Пример предложения. В этом случае мы видим не только не погашение задолженности по алиментам, а самое злостное уклонение от своих обязательств.

    Раздельно пишется, если частица «не» употребляется вместе со словами: совсем не, вовсе не, далеко не, ничуть не, крайне не, совершенно не, больше не, нисколько не, ничуть не, нимало не, отнюдь не и другими словами усиливающими смысловое значение отрицания частицы «не».

    Частица «не» пишется раздельно в любом случае если она передает выраженное значение отрицания, которое зачастую определяет сам пишущий.

    Ошибка исправлена как пишется

    Слово «неимение», это существительное, которое обозначает отсутствие чего либо и в таком смысловом значении, оно с «не», пишется слитно.

    Например: Неимение денег, заставило меня вести очень бедную жизнь.

    Однако слово «имение», может обозначать земельное владение, которым раньше например владели помещики и в данном значении, это существительное пишется с «не» раздельно, а именно — «не имение».

    Пример: Я купил не имение как когда-то хотел, а скромную дачу.

    Ошибка исправлена как пишется

    Слово «неструктуриров­анны­<wbr />й» может быть написано с частицей «не» как слитно, так раздельно. Часть речи — имена прилагательные.

    Прилагательные с «не» пишутся слитно, если можно подобрать синонимическую замену к слову, например, слово можно заменить синонимами хаотичный, беспорядочный, спонтанный.

    Пример. Неструктурированные данные.

    Раздельно пишется при противопоставлении с союзом «а».

    Пример. Интервью получилось не структурированным, а спонтанным.

    Раздельно пишется, если частица употребляется в контексте отрицания. А также со словами отрицание усиливающими. Например: вовсе не, крайне не, отнюдь не, больше не, нисколько не, никто не и другими подобными.

    Пример. Представленные в отчете данные были совершенно не структурированы.

  • Ошибка профессора преображенского сочинение
  • Ошибка или преступление сочинение итоговое
  • Ошибка не отмечена как пишется
  • Ошибаешься как пишется правильно
  • Ошибка в задание как пишется правильно