Как правильно организовать учет услуг в 1С при ведении товароучета?

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как правильно организовать учет услуг в 1С при ведении товароучета?

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38936
      Фото аватараOdineski
      Участник

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

        Что мне делать с услугами? Их же не надо записывать в регистр «остатки номенклатуры»? Тогда в приходной накладной при проведении в запросе выбирать условие «не услуга»? Или как?

      • #38937
        bot_avaOdin — Одинэсник
        Участник

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

          Лучше использовать не условие «не услуга», а явное условие:

          Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар

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

          ## 1. Как настроить номенклатуру

          В справочнике Номенклатура должен быть реквизит, например:

          — ВидНоменклатуры;
          — тип: ПеречислениеСсылка.ВидыНоменклатуры.

          В перечислении:

          — Товар;
          — Услуга.

          Если в каркасной базе уже есть такой реквизит или перечисление, используйте существующие объекты.

          ## 2. Регистр остатков

          Регистр накопления остатков, например ОстаткиТоваров, должен содержать только товарные остатки.

          Рекомендуемая структура:

          Измерения:

          — Номенклатура;
          — Склад;
          — Партия.

          Ресурсы:

          — Количество;
          — Сумма.

          Партией обычно является документ поступления или ссылка на документ прихода. Например:

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

          ## 3. Приходная накладная

          В приходной накладной нужно:

          1. обработать товарные строки;
          2. сформировать приход в регистр остатков;
          3. строки услуг в регистр остатков не записывать.

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

          |ВЫБРАТЬ
          | ПриходнаяНакладная.Товары.Номенклатура КАК Номенклатура,
          | СУММА(ПриходнаяНакладная.Товары.Количество) КАК Количество,
          | СУММА(ПриходнаяНакладная.Товары.Сумма) КАК Сумма
          |ИЗ
          | Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
          |ГДЕ
          | ПриходнаяНакладнаяТовары.Ссылка = &Ссылка
          | И ПриходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры =
          | &ВидТовара
          |СГРУППИРОВАТЬ ПО
          | ПриходнаяНакладнаяТовары.Номенклатура

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

          |ВЫБРАТЬ
          | ПриходнаяНакладнаяТовары.Номенклатура КАК Номенклатура,
          | СУММА(ПриходнаяНакладнаяТовары.Количество) КАК Количество,
          | СУММА(ПриходнаяНакладнаяТовары.Сумма) КАК Сумма
          |ИЗ
          | Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
          |ГДЕ
          | ПриходнаяНакладнаяТовары.Ссылка = &Ссылка
          | И ПриходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры = &ВидТовара
          |СГРУППИРОВАТЬ ПО
          | ПриходнаяНакладнаяТовары.Номенклатура

          Установка параметров:

          Формирование движений:

          Строка с услугой просто не попадет в выборку и движения по ней не будет.

          ## 4. Почему не стоит использовать условие <> Услуга

          Технически такой вариант может работать:

          |ГДЕ
          | Номенклатура.ВидНоменклатуры <> &ВидУслуги

          Но для экзамена правильнее использовать:

          |И Номенклатура.ВидНоменклатуры = &ВидТовара

          Причины:

          1. В регистр остатков должны попадать только позиции, являющиеся товаром.
          2. Если позже появится вид Работа, он ошибочно может попасть в остатки при условии <> Услуга.
          3. Явное условие проще проверять и объяснять экзаменатору.
          4. Услуги могут иметь другие особенности, не сводящиеся к простому исключению.

          ## 5. Расходная накладная

          В расходной накладной нужно разделить обработку строк на два вида.

          ### Товар

          Для товара необходимо:

          — контролировать остаток;
          — подобрать партии;
          — списать количество;
          — списать себестоимость;
          — сформировать расход в регистр остатков;
          — использовать FIFO, LIFO или среднюю стоимость.

          ### Услуга

          Для услуги не нужно:

          — проверять остаток;
          — подбирать партию;
          — списывать количество со склада;
          — формировать движение Расход в регистр остатков;
          — рассчитывать себестоимость как для товара.

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

          Для экзамена предпочтительнее сначала получить товарные строки отдельным запросом. Тогда в алгоритм FIFO, LIFO или средней стоимости услуги вообще не попадут.

          ## 6. Что делать с услугами при продаже

          Здесь зависит от того, какие отчеты указаны в полном билете.

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

          В него можно записывать:

          — товар;
          — услугу;
          — количество;
          — сумму продажи;
          — себестоимость;
          — прибыль.

          Структура регистра Продажи может быть такой:

          Измерения:

          — Номенклатура;
          — при необходимости Склад;
          — при необходимости Контрагент.

          Ресурсы:

          — Количество;
          — Выручка;
          — Себестоимость;
          — Прибыль.

          Для товара в расходной накладной:

          Для услуги:

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

          Прибыль услуги в простом варианте будет:

          Но это допустимо только если в условии нет отдельного учета затрат на услуги.

          Пример формирования оборота продаж для услуги:

          Главное, чтобы эта запись не дублировалась движением в ОстаткиТоваров.

          ## 7. Услуги при поступлении

          Фраза:

          > Услуги могут быть оказаны и при поступлении товаров

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

          | Номенклатура | Вид | Количество | Сумма |
          |—|—|—:|—:|
          | Товар 1 | Товар | 10 | 1 000 |
          | Доставка | Услуга | 1 | 300 |

          В этом случае:

          — Товар 1 записывается приходом в ОстаткиТоваров;
          — Доставка в ОстаткиТоваров не записывается;
          — услуга не создает партию;
          — услуга не увеличивает количество товаров;
          — услуга не влияет на FIFO, LIFO или среднюю себестоимость, если в условии прямо не сказано включать стоимость доставки в стоимость товаров.

          Это последний момент особенно важен.

          ### Если доставка является отдельной услугой

          Если доставка просто отдельная строка табличной части, то:

          В остатки товара записывается:

          Сумма доставки в стоимость партии товара не включается.

          ### Если по условию доставка увеличивает себестоимость товара

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

          1. определить товарные строки;
          2. определить стоимость услуг;
          3. распределить стоимость услуги между товарами;
          4. увеличить сумму партий;
          5. записать распределенную сумму в регистр остатков.

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

          ## 8. Что делать с услугой в приходном документе в регистре продаж

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

          Итого для приходной накладной:

          | Строка | Остатки товаров | Продажи |
          |—|—:|—:|
          | Товар | Приход | Нет |
          | Услуга | Нет | Нет |

          Для расходной накладной:

          | Строка | Остатки товаров | Продажи |
          |—|—:|—:|
          | Товар | Расход | Оборот продажи |
          | Услуга | Нет | Оборот продажи |

          Это наиболее логичная модель для данного условия.

          ## 9. Как учитывать услуги в проверке отрицательных остатков

          Услуги не должны участвовать в запросе контроля остатков.

          Запрос контроля должен отбирать только товарные позиции. Например:

          |ВЫБРАТЬ
          | РасходнаяНакладнаяТовары.Номенклатура,
          | СУММА(РасходнаяНакладнаяТовары.Количество) КАК Количество
          |ПОМЕСТИТЬ ВТТоварыДокумента
          |ИЗ
          | Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
          |ГДЕ
          | РасходнаяНакладнаяТовары.Ссылка = &Ссылка
          | И РасходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры = &ВидТовара
          |СГРУППИРОВАТЬ ПО
          | РасходнаяНакладнаяТовары.Номенклатура

          Затем уже по этим позициям получаются остатки по складу.

          Нельзя проверять услуги в остатках, потому что система будет либо:

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

          ## 10. Как учитывать услуги при подборе партий

          Запрос подбора партий также должен содержать только товары:

          |ВЫБРАТЬ
          | Остатки.Номенклатура,
          | Остатки.Склад,
          | Остатки.Партия,
          | Остатки.КоличествоОстаток,
          | Остатки.СуммаОстаток
          |ИЗ
          | РегистрНакопления.ОстаткиТоваров.Остатки(
          | &Момент,
          | Номенклатура В
          | (ВЫБРАТЬ
          | ВТТоварыДокумента.Номенклатура
          | ИЗ
          | ВТТоварыДокумента КАК ВТТоварыДокумента)
          | И Склад = &Склад
          | ) КАК Остатки
          |ГДЕ
          | Остатки.КоличествоОстаток > 0
          |УПОРЯДОЧИТЬ ПО
          | Остатки.Номенклатура,
          | Остатки.Партия.Момент ВОЗР

          Для LIFO порядок будет обратным:

          |УПОРЯДОЧИТЬ ПО
          | Остатки.Номенклатура,
          | Остатки.Партия.Момент УБЫВ

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

          ## 11. Как быть при переходе с партийного учета на среднюю стоимость

          При переходе с партийного учета на среднюю стоимость услуги не участвуют:

          — у услуги нет остатка;
          — у услуги нет партии;
          — ее не нужно перераспределять между партиями;
          — ее не нужно переносить в новый способ учета.

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

          Например, если в регистре есть такие остатки:

          | Номенклатура | Партия | Количество | Сумма |
          |—|—|—:|—:|
          | Товар 1 | Приход №1 | 5 | 500 |
          | Товар 1 | Приход №2 | 3 | 360 |

          При переходе на среднюю стоимость можно продолжить хранить партии, но при списании использовать общую среднюю стоимость:

          Услуги в этот расчет не попадают.

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

          ## 12. Как построить «Корректировку регистров»

          Документ КорректировкаРегистров должен позволять пользователю вручную создавать записи в регистрах накопления.

          Практический вариант:

          В документе создать реквизит:

          — Комментарий, тип Строка неограниченной длины.

          Создать табличную часть, например Записи:

          — РегистрНакопления, тип Строка или перечисление;
          — ВидДвижения;
          — Период;
          — Номенклатура;
          — Склад;
          — Партия;
          — Количество;
          — Сумма.

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

          На экзамене обычно делают один из двух вариантов:

          1. создать табличные части под конкретные регистры;
          2. реализовать универсальный механизм через Метаданные, НаборЗаписей и значения реквизитов.

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

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

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

          ## Правильная схема для этой задачи

          ### Приходная накладная

          — товар: приход в ОстаткиТоваров;
          — услуга: движений по ОстаткиТоваров нет;
          — партия создается только для товара;
          — услуга не участвует в методе списания.

          ### Расходная накладная

          — товар: проверка остатков, списание по партии, FIFO/LIFO/средняя;
          — услуга: нет проверки остатков и расхода по ОстаткиТоваров;
          — товар и услуга могут записываться в обороты продаж, если нужен отчет по продажам.

          ### Учетная политика

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

          Таким образом, в приходной накладной действительно нужно отбирать только товары:

          |И Номенклатура.ВидНоменклатуры = &ВидТовара

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С