Как списать товар 1с общепит
Перейти к содержимому

Как списать товар 1с общепит

Как сделать списание товара в 1С 8.3: пошаговая инструкция

Любая компания, деятельность которой связана с большим оборотом ТМЦ – будь то сфера производства или торговли – должна производить процедуру списания товаров. Автоматизация бухгалтерского учета с помощью программы 1С, позволяет выполнить операцию по списанию быстро и без проблем. В данной статье мы подробнее рассмотрим процедуру и варианты списания ТМЦ со склада в программе 1С, а именно рассмотрим последовательность работы в 1С:ERP Управление предприятием 2 (далее 1С:ERP).

Причины списания ТМЦ

Наиболее часто встречающиеся на практике причины списания:

  • Порча товаров/выявленная недостача. Когда возникает необходимость списания потерянного или испорченного товара, а сумму списания необходимо сделать как вычет с соответствующих материально-ответственных лиц, следует использовать специальную функцию «Списание недостач товаров».
  • Передача ТМЦ внешним контрагентам безвозмездно либо списание их на внутреннее использование (для нужд организации и на производство). Для списания товаров на внутреннее использование применяется конфигурация 1С: Бухгалтерия 3.0, специальный документ «Требование-накладная». Кроме того, к списанию подлежат товары, передаваемые внешним контрагентам (подарки, рекламные материалы со склада и прочее).

Операции по передаче ТМЦ внешним контрагентам раньше оформлялись документами, где сумма продажи ТМЦ равнялась нулю (например, в конфигурации 1С УПП).

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

Как списать недостачу ТМЦ в 1С

После того как в ходе инвентаризации, либо пересчета ТМЦ была выявлена порча товара, либо его недостача на складе, его нужно списать на потери. Чтобы отразить операцию по списанию ТМЦ в программе 1С ERP, используют функцию «Списание недостач товаров».

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

Как сделать списание товара в 1С

Как сделать списание товара в 1С

В новом документе нужно заполнить следующую информацию:

  • наименование организации, кому принадлежат списываемые ТМЦ;
  • статья расходов, на которую будут списывать выбранные товарно-материальные ценности;
  • перечень товаров, подлежащих списанию на потери.

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

Помощь консультанта по 1С:ERP

Списание ТМЦ на расходы в 1С

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

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

Повторимся, что в других конфигурациях программы 1С аналогичным документом является «Требование накладная».

Как сделать списание товара в 1С

Статья расходов в данном документе, в отличие от списания недостач указывается построчно. Кроме того, здесь можно уточнить на какой счет будет списываться ТМЦ.

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

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

В прочих случаях ТМЦ списываются с помощью отдельного документа «Внутреннее потребление товаров/Списание на расходы».

Передача ТМЦ в эксплуатацию

Передать ТМЦ в эксплуатацию можно, используя уже ранее рассмотренный документ «Внутреннее потребление товаров». Однако в данном случае вид операции будет другой – «Передача в эксплуатацию».

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

  • материально-ответственное лицо;
  • категория эксплуатации.

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

Выводы

Программа 1С ERP, в отличие от других конфигураций программы 1С обеспечивает охват всех бизнес-процессов в производственных компаниях за счет большого количества разнообразных инструментов для списания товарно-материальных ценностей.

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

Остались вопросы? Задайте!

Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку

Списание материалов в 1С 8.3 пошаговая инструкция

Это руководство поможет разобраться с порядком списания материалов в 1С Бухаглтерия. За пример будем брать конфигурацию БП 8.3. Так же предоставим пошаговую инструкцию по самой процедуре списания.

Рассмотрение статьи начнем с методологического подхода с точки налогового и бухгалтерского учета, после рассмотрим порядок действий во время списания материалов.

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

Методологические указания

Любой порядок списания материалов в бухучете регулируется согласно ПБУ 5/10. Согласно пункту номер 16 данного ПБУ, существует три варианта списания, которые ориентированы на следующие пункты:

  • Себестоимость одной единицы товара;
  • Средняя себестоимость товара;
  • Себестоимость первых приобретений МПЗ (способ ФИФО);

Налоговый учет во время списания материалов рекомендует ориентироваться на 254 статью налогового кодекса, в котором в пункте 8 указываются следующие варианты оценки:

  • Стоимость одной единицы запаса;
  • Средняя стоимость товара;
  • Стоимость первых приобретений;

Бухгалтер закрепляет выбранный метод списания товара в учетной политике для налогового и бухгалтерского учета. Как правило, для упрощения учета стараются выбирать в обоих случаях одинаковые способы. Чаще выбирают списание по средней себестоимости.

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

Списание материалов в 1С 8.3: настройка учетной политики

  • Зайдите в настройки и найдите подменю «Учетная политика»;
  • В данном подменю необходимо найти пункт «Способ оценки МП3»;

Не забывайте о некоторых чертах, которые характерны для данной конфигурации 1С версии 8.3, а именно:

  • Предприятия, использующие общий режим, могут выбирать любой способ оценки. Например, если вы хотите оценивать по стоимости одной единицы за материал, то выбирайте метод ФИФО;
  • Предприятия на УСН чаще всего выбирают ФИФО. Если предприятие работает по упрощенной системе в 15%, то в 1С версии 8.3 будет стоять по умолчанию именно эта строчка, а возможность выбрать оценку по средней стоимости будет убрана вообще. Это обусловлено особенностями учета при упрощенной системе налогообложения;
  • Не игнорируйте вспомогательную информацию, которой делится с вами 1С, там написано, что материалы, принятые в переработку, считаются исключительно по средней стоимости и никак по-другому.

Как происходит списание материалов через 1С версия 8.3

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

  • Подменю «Склад» -> Требование-накладные;
  • Подменю «Производство» -> Требование-накладные;

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

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

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

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

Если вы посмотрите на скриншот, то заметите, что включена функция «Счета затрат», которая находится во вкладке «Материалы». Там же видно, что из всех выбранных позиций «Яблочное повидло» списано на счет 20, а вода на 25-й счет.

Не забывайте заполнять раздел «Подразделение затрат», «Статья затрат» и «Номенклатурная группа».

«Подразделение затрат» и «Номенклатурная группа» становятся доступными только в документах, в которых в параметре системы установлены следующие значения:

«Вести учет затрат по подразделениям» — «Использовать несколько номенклатурных групп».

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

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

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

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

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

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

Как только вы указали все параметры, вам нужно нажать кнопку «Закрыть и провести». После этого вы можете просмотреть все проводки.

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

Расчет средней цены в программе 1С

Давайте рассмотрим, каким образом рассчитывается средняя цена на позиции «Яблочное повидло». Например, до списания к вам в магазин было всего два поступления яблочного повидла.

100 килограмм яблок х 1000 рублей = 100 000 рублей;

80 килограмм яблок х 1200 рублей = 96 000 рублей;

Средняя сумма списания будет равна (100 000 + 96 000)/(100+80) = 108,89 рублей.

Полученную сумму умножаем на 120 килограмм яблок и получаем 130 666, 67.

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

После списания произошло еще одно поступление. Нам пришло 50 килограмм яблок по 1 100 рублей.

Исходя из этого, средняя взвешенная сумма за месяц будет равна:

(100 000+55 000 + 96 000)/(100+50+80) = 1091,30 рублей. Если мы умножим это на 120, то получим сумму равную 130 956, 52.

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

Расчет по методу ФИФО

Если использовать этот метод, то расходы за месяц будут следующими:

100 килограмм яблок х 1 000 рублей = 100 000 руб;

20 килограмм яблок х 1 200 рублей = 24 000 руб;

Общий итог 124 000 рублей.

Что еще важно знать?

Любое формирование накладных и их применение во время списания требует выполнения одного важного условия:

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

Списание же происходит при указывании фактического количества использованного материала.

Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку

Как сделать инвентаризацию в 1С 8.3 Бухгалтерия 3.0

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

Логика проведения инвентаризации едина для всех версий 1С:

  • излишки товара нужно оприходовать;
  • недостающие товары нужно списать.

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

Заполнение документа инвентаризации в 1С:Бухгалтерия

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

Инвентаризация товаров

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

Создать новый документ в 1С

Обратите внимание на заполнение полей в шапке документа:

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

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

Заполнить по остаткам на складе

Сформируется таблица со всеми товарами, которые числятся на указанном складе в 1С:

Таблица с товарами

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

Печатная форма документа

Форма заполняется сотрудниками склада, после чего фактические данные вносятся в соответствующий столбец таблицы:

Таблица с товарами

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

Красным цветом со знаком «-» указываются недостачи, черным цветом – излишки

Инвентаризация в 1С:Бухгалтерия сама по себе не производит списания или оприходования, для данных операций предусмотрены отдельные документы.

Списание товара на основании инвентаризации в 1С:Бухгалтерия

Списать товар по результатам инвентаризации можно двумя способами: создать новый документ в разделе Склад-Инвентаризация, или воспользоваться функцией «Создать на основании». Второй способ более простой и быстрый:

Списание товаров

В этом случае товары заполнятся из данных документа инвентаризации автоматически:

Товары заполнятся из данных документа инвентаризации автоматически

После проверки документ проводится, товары списываются со склада и формируются проводки:

Движения документа

Оприходование товара на основании инвентаризации в 1С:Бухгалтерия

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

Оприходование товаров

1С заполнит документ, в котором необходимо указать статью доходов, которая впоследствии отразится на счете 91.01:

Указать статью доходов

Документ проверяется и проводится, после этого можно увидеть его движение:

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

Концигурация 1С:Предприятие 8. Общепит КОРП (3.0.77.106) Создали документ «Списание товаров» на основании «Инвентаризация Товаров» и в него вбили вручную другие товары, которые нужно было списать. (на основании большого количества документов) Теперь при перепроведении документа инвентаризации, документ «Списание товаров» помечается на удаление. Убрали ссылку на документ основание и основание у документа списания, но в структуре подчиненности документ остается. (Как у самой инвентаризации так и у Списания товаров). Процедура поиска ссылки на объект дает только ссылки на «версии объектов».
Как убрать Документ основание у документа «Списание товаров»?

По теме из базы знаний

  • 50+ советов для успешной сдачи 1С: Специалист по платформе
  • Загрузка документов и номенклатуры из Excel в 1С «одним нажатием»: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
  • Как сдать экзамен 1С:Специалист по платформе?
  • [БП 3.0][РТ 2.*] Проведение пересортицы в БП 3.0 после синхронизации с РТ 2.*
  • Переход с УПП на ERP с сохранением документов. Фантастика или реальность?

Найденные решения
14. EVKash 14 15.06.20 15:10 Сейчас в теме

(12) Для Каждого ЭлементСостава ИЗ Метаданные.КритерииОтбора.СвязанныеДокументы.Состав Цикл
смотрите что в Общие.КритерииОтбора.СвязанныеДокументы.Состав
для бухгалтерии это

Прикрепленные файлы:
Остальные ответы

  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
2. N0t_F0und 10 15.06.20 14:06 Сейчас в теме
Обработкой <Универсальные подбор и обработка объектов>, установить реквизит пустое значение
3. user1028443 14 15.06.20 14:14 Сейчас в теме

Программно установил значение Неопределено у реквизита ДокументОснование документа Списание товаров. Это ничего не дало.

4. N0t_F0und 10 15.06.20 14:19 Сейчас в теме
Значит, это не тот реквизит. Посмотрите в обработке ввода на основании, куда пишется основание
5. user1028443 14 15.06.20 14:34 Сейчас в теме

Я то понимаю, что оно куда-то пишется, но хоть «убей» не могу найти тот кусок кода, чтоб посмотреть куда именно пишется основание.

6. N0t_F0und 10 15.06.20 14:43 Сейчас в теме
В модуле объекта документа <Списание товаров>ищем процедуру либо что-то созвучное с этим
7. user1028443 14 15.06.20 14:48 Сейчас в теме

Вот процедур при записи Документа Инвентаризации товаров, он его точно пришет в ДОкумент основание но вот куда еще(6)

Процедура ПриЗаписи(Отказ)
Перем РежимЗаписи;

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

ЭтотОбъект.ДополнительныеСвойства.Свойство(«РежимЗаписи»,РежимЗаписи);
Если ТипЗнч(РежимЗаписи)=Тип(«РежимЗаписиДокумента») Тогда
РежимЗаписиПодчиненного = РежимЗаписи;
Иначе
РежимЗаписиПодчиненного = РежимЗаписиДокумента.Запись;
КонецЕсли;
ЭтоГрупповоеПерепроведение = ПроведениеСервер.ГрупповоеПерепроведение(ЭтотОбъект);

// Определим, является ли склад неавтоматизированной торговой точкой
ЭтоНТТ = ЗначениеЗаполнено(Склад) И (Склад.ТипСклада = Перечисления.ТипыСкладов.НеавтоматизированнаяТорговаяТочка);

// Проверим право на автоматический ввод документов Оприходования излишков и Списания недостач
Если ЭтоНТТ Тогда
ПравоАвтоматическогоВводаПодчиненных = Ложь;
Иначе
ПравоАвтоматическогоВводаПодчиненных = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию(«АвтоматическийВводПодчиненныхДокументовНаОснованииИнвентари ­зации»);
КонецЕсли;
МассивУдаляемыхДокументов = Новый Массив();

ТипыПодчиненныхДокументов = Новый Массив();
// +Общепит
// Если нет отрицательной партии проходим два раза, делаем два документа,
// Флаг ЭтоОтрицательнаяОбласть Устанавливаем в неопределено
// Если есть тогда делаем три документа. Что бы отличать приходование излишков,
// Флаг ЭтоОтрицательнаяОбласть Устанавливаем в истина на 1-ой итерации,
// Далее в ложь

// Функция может возвращать Истина или неопределено
ЭтоОтрицательнаяОбласть = НаличиеОтрицательнойОбласти(Товары);

Если ЗначениеЗаполнено(ЭтоОтрицательнаяОбласть) Тогда
// Строка отвечающая за создание документа
// приходования отрицательной партии
ТипыПодчиненныхДокументов.Добавить(«Документ.ОприходованиеТоваров»);
КонецЕсли;

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

Если НЕ ПравоАвтоматическогоВводаПодчиненных Тогда
Продолжить;
КонецЕсли;

ЭтоПроверкаНедостач = (ТипПодчиненногоДокумента=»Документ.СписаниеТоваров»);
// +Общепит
ЭтоПроверкаИзлишков = ((ТипПодчиненногоДокумента=»Документ.ОприходованиеТоваров») И (ЭтоОтрицательнаяОбласть <> Истина));
ЭтоОприходованиеОтрицательной = ((ТипПодчиненногоДокумента=»Документ.ОприходованиеТоваров») И (ЭтоОтрицательнаяОбласть = Истина));
// -Общепит

// Получение подчиненных документов списания/оприходования
мКэшПраваДоступаКМетаданным = Новый Соответствие();
мКэшПраваДоступаКМетаданным.Вставить(«Документ.ОперацияБух», Ложь);
мКэшПраваДоступаКМетаданным.Вставить(«Документ.ОбщепитРазделка», Ложь);
мКэшПраваДоступаКМетаданным.Вставить(«Документ.ОтчетОРозничныхПродажах», Ложь);
// +Общепит
мКэшПраваДоступаКМетаданным.Вставить(«Документ.ОприходованиеТоваров», ?(ЭтоПроверкаИзлишков ИЛИ ЭтоОприходованиеОтрицательной,Неопределено,Ложь));
// -Общепит
мКэшПраваДоступаКМетаданным.Вставить(«Документ.СписаниеТоваров», ?(ЭтоПроверкаНедостач,Неопределено,Ложь));
Попытка
ТаблицаПодчиненных = ПолучитьСписокПодчиненныхДокументов(ЭтотОбъект.Ссылка, мКэшПраваДоступаКМетаданным);
Исключение
ОбщегоНазначенияклиентСервер.СообщитьПользователю(«Ошибка: не удалось получить список подчиненных документов.». Отказ);
Возврат;
КонецПопытки;

// Если документ помечается на удаление, то и подчиненные документы
// должны быть помечены на удаление
Если ЭтотОбъект.ПометкаУдаления Тогда
Для Каждого ТекущийДокумент Из ТаблицаПодчиненных Цикл
МассивУдаляемыхДокументов.Добавить(ТекущийДокумент.Ссылка);
КонецЦикла;
Продолжить;
КонецЕсли;

// Проверка наличия в ТЧ Товары недостач/излишков
ЕстьОтклонения = Ложь;
Для Каждого ТекущаяСтрока Из Товары Цикл
Если ЭтоПроверкаНедостач Тогда
Если (ТекущаяСтрока.Количество + ТекущаяСтрока.ОбщепитКоличествоИзПолуфабрикатов — ТекущаяСтрока.КоличествоУчет) ИЛИ (ТекущаяСтрока.Сумма — ТекущаяСтрока.СуммаУчет) Тогда
ЕстьОтклонения = Истина;
Прервать;
КонецЕсли;
// +Общепит Партия отрицательной области
ИначеЕсли ЭтоПроверкаИзлишков Тогда
Если ((ТекущаяСтрока.Количество + ТекущаяСтрока.ОбщепитКоличествоИзПолуфабрикатов — ТекущаяСтрока.КоличествоУчет)>0 И ТекущаяСтрока.Количество>0)
ИЛИ ((ТекущаяСтрока.Сумма — ТекущаяСтрока.СуммаУчет)>0 И ТекущаяСтрока.Сумма>0 ) Тогда
ЕстьОтклонения = Истина;
Прервать;
КонецЕсли;
ИначеЕсли ЭтоОприходованиеОтрицательной Тогда
Если (ТекущаяСтрока.КоличествоУчет < 0)
ИЛИ (ТекущаяСтрока.СуммаУчет < 0) Тогда
ЕстьОтклонения = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
// -Общепит
КонецЦикла;

// Обнаружены недостачи/излишки
Если ЕстьОтклонения Тогда
// +Общепит В зависимости от значения реквизита изменяем значение текущего документа
Если ЗначениеЗаполнено(ЭтоОтрицательнаяОбласть) И (НЕ ЭтоПроверкаНедостач) Тогда
Если ЭтоОтрицательнаяОбласть = Истина Тогда
ПодчиненныйДокумент = ?(ТаблицаПодчиненных.Количество()>0,ТаблицаПодчиненных[0].Ссылка,Неопределено);
ПодчиненныйДокумент2 = ?(ТаблицаПодчиненных.Количество()>1,ТаблицаПодчиненных[1].Ссылка,Неопределено);
Иначе
ПодчиненныйДокумент = ?(ТаблицаПодчиненных.Количество()>1,ТаблицаПодчиненных[1].Ссылка,Неопределено);
ПодчиненныйДокумент2 = ?(ТаблицаПодчиненных.Количество()>0,ТаблицаПодчиненных[0].Ссылка,Неопределено);
КонецЕсли;
Иначе
ПодчиненныйДокумент2 = Неопределено;
// Стандартное поведение Бухи
ПодчиненныйДокумент = ?(ТаблицаПодчиненных.Количество()>0,ТаблицаПодчиненных[0].Ссылка,Неопределено);
КонецЕсли;
// -Общепит
Для Каждого ТекДокумент Из ТаблицаПодчиненных Цикл
Если ТекДокумент.Ссылка = ПодчиненныйДокумент
// +Общепит
// Добавляется 2-ой документ приходования, —
// приходование отрицательной области
// что бы он не удалялся при проверке
ИЛИ ( ТекДокумент.Ссылка = ПодчиненныйДокумент2 И ЗначениеЗаполнено(ЭтоОтрицательнаяОбласть))
// -Общепит
Тогда
ИначеЕсли
// +Общепит
ЗначениеЗаполнено(ПодчиненныйДокумент) И
// -Общепит
(НЕ ПодчиненныйДокумент.Дата = Дата)
И (ТекДокумент.Ссылка.Дата = Дата
ИЛИ ТекДокумент.Ссылка.Дата > ПодчиненныйДокумент.Дата) Тогда
МассивУдаляемыхДокументов.Добавить(ПодчиненныйДокумент);
ПодчиненныйДокумент = ТекДокумент.Ссылка;
Иначе
МассивУдаляемыхДокументов.Добавить(ТекДокумент.Ссылка);
КонецЕсли;
КонецЦикла;

Если ПодчиненныйДокумент=Неопределено Тогда
Если ЭтоПроверкаНедостач Тогда
ПодчиненныйОбъект = Документы.СписаниеТоваров.СоздатьДокумент();
// +Общепит
ИначеЕсли ЭтоПроверкаИзлишков ИЛИ ЭтоОприходованиеОтрицательной Тогда
// -Общепит
ПодчиненныйОбъект = Документы.ОприходованиеТоваров.СоздатьДокумент();
Иначе
Прервать;
КонецЕсли;
Иначе
ПодчиненныйОбъект = ПодчиненныйДокумент.ПолучитьОбъект();
КонецЕсли;

// Заполняем шапку
ПодчиненныйОбъект.Дата = Дата;
ПодчиненныйОбъект.Организация = Организация;
ПодчиненныйОбъект.Склад = Склад;
ПодчиненныйОбъект.Ответственный = Ответственный;
ПодчиненныйОбъект.Основание = Строка(ЭтотОбъект.Ссылка);
ПодчиненныйОбъект.ИнвентаризацияТоваровНаСкладе = ЭтотОбъект.Ссылка;
ПодчиненныйОбъект.ПометкаУдаления = Ложь;
// +Общепит
Если ЭтоОприходованиеОтрицательной Тогда
ПодчиненныйОбъект.ОбщепитОприходованиеПустойПартии = Истина;
КонецЕсли;
// -Общепит

Если ЭтоПроверкаНедостач Тогда
ПодчиненныйОбъект.ОбщепитСписыватьНаРасходы = ОбщепитСписыватьНаРасходы;
ПодчиненныйОбъект.ОбщепитСтатьяРасходов = ОбщепитСтатьяРасходов;
ИначеЕсли ЭтоПроверкаИзлишков ИЛИ ЭтоОприходованиеОтрицательной Тогда
ПодчиненныйОбъект.СтатьяПрочихДоходовРасходов = СтатьяПрочихДоходовРасходов;
ПодчиненныйОбъект.ТипЦен = ТипЦен;
КонецЕсли;

ЗаполнениеДокументов.Заполнить(ПодчиненныйОбъект, ЭтотОбъект, Истина);

Если ПодчиненныйОбъект.Товары.Количество()>0 Тогда
ПодчиненныйОбъект.Товары.Очистить();
КонецЕсли;

Если ТипЗнч(ПодчиненныйОбъект) = Тип(«ДокументОбъект.ОприходованиеТоваров») Тогда
ПодчиненныйОбъект.ЗаполнитьТоварыПоИнвентаризацииТоваров(ПодчиненныйОбъект.ИнвентаризацияТоваровНаСкладе, ЭтоОтрицательнаяОбласть);
Иначе
ПодчиненныйОбъект.ЗаполнитьТоварыПоИнвентаризацииТоваров(ПодчиненныйОбъект.ИнвентаризацияТоваровНаСкладе);
КонецЕсли;

Если НЕ ПодчиненныйОбъект.ПометкаУдаления = Ложь Тогда
ПодчиненныйОбъект.ПометкаУдаления = Ложь;
КонецЕсли;

Попытка
Если ПодчиненныйОбъект.Этоновый() И РежимЗаписиПодчиненного=РежимЗаписиДокумента.ОтменаПроведения Тогда
// Документа еще небыло, в этом случае при отмене проведения падает.
ПодчиненныйОбъект.Записать(РежимЗаписиДокумента.Запись);
ИначеЕсли ПодчиненныйОбъект.Этоновый() И ЭтоГрупповоеПерепроведение Тогда
// Нового документа нет в списке группового проведения, поэтому проводим сразу
ПодчиненныйОбъект.Записать(РежимЗаписиПодчиненного);
ИначеЕсли ЭтоГрупповоеПерепроведение И РежимЗаписиПодчиненного=РежимЗаписиДокумента.Проведение Тогда
// Документ будет проведен по списку группового проведения
ПодчиненныйОбъект.Записать(РежимЗаписиДокумента.Запись);
Иначе
ПодчиненныйОбъект.Записать(РежимЗаписиПодчиненного);
КонецЕсли;
Исключение
ОбщегоНазначенияклиентСервер.СообщитьПользователю(«Ошибка: не удалось записать(провести) подчиненный документ «+Строка(ПодчиненныйОбъект)+».». Отказ);
Возврат;
КонецПопытки;
Иначе
Для Каждого ТекущийДокумент Из ТаблицаПодчиненных Цикл
// +Общепит
Если (ТипЗнч(ТекущийДокумент.Ссылка) = Тип(«ДокументСсылка.СписаниеТоваров»))
ИЛИ (ЭтоОприходованиеОтрицательной И ТекущийДокумент.Ссылка.ОбщепитОприходованиеПустойПартии)
ИЛИ ((ЭтоПроверкаИзлишков) И (НЕ ТекущийДокумент.Ссылка.ОбщепитОприходованиеПустойПартии)) Тогда
МассивУдаляемыхДокументов.Добавить(ТекущийДокумент.Ссылка);
КонецЕсли;
// -Общепит
КонецЦикла;
КонецЕсли;

// +Общепит обнуление отрицательной партии, первой идет отрицательная партия
// затем приходование, флаг устанавливается в истину на 0-ой итерации, когда есть
// отрицательная партия, затем он должен быть сброшен
Если ЭтоОтрицательнаяОбласть = Истина Тогда
ЭтоОтрицательнаяОбласть = Ложь
КонецЕсли;
// -Общепит

// Удаляем ненужные документы
Для Каждого ПодчиненныйДокумент Из МассивУдаляемыхДокументов Цикл
Попытка
ПодчиненныйОбъект = ПодчиненныйДокумент.ПолучитьОбъект();
Если ПодчиненныйОбъект<>Неопределено И НЕ ПодчиненныйОбъект.ПометкаУдаления Тогда
ПодчиненныйОбъект.Проведен = Ложь;
ПодчиненныйОбъект.ПометкаУдаления = Истина;
ПодчиненныйОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЕсли;
Исключение
ОбщегоНазначенияклиентСервер.СообщитьПользователю(«Ошибка: не удалось пометить на удаление подчиненный документ «+Строка(ПодчиненныйОбъект)+».». Отказ);
Возврат;
КонецПопытки;
КонецЦикла;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *