Можно ли переделать структуру регистров, добавив регистр сведений «Продажи»?

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

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

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

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

          Да, так переделать можно. Более того, для этой задачи это будет более аккуратная архитектура:

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

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

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

          Для учебной задачи я бы предложил именно эту структуру.

          —

          # 1. Итоговая структура

          ## Регистр накопления

          Вид:

          Измерения:

          Ресурсы:

          —

          ## Регистр сведений

          Настройки:

          Измерение:

          Ресурсы:

          Регистраторами регистра сведений сделать:

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

          —

          # 2. Регистр накопления «ОстаткиНоменклатуры»

          ## Измерения

          Типы:

          Партия будет ссылкой на приходную накладную.

          Например:

          | Номенклатура | Склад | Партия | Количество | Себестоимость |
          |—|—|—|—:|—:|
          | Куртка | Основной | Приходная накладная № 1 | 10 | 1000 |
          | Куртка | Основной | Приходная накладная № 2 | 5 | 600 |

          ## Ресурсы

          Типы:

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

          —

          # 3. Регистр сведений «Продажи»

          Создать регистр сведений:

          ## Настройки регистра

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

          — Период;
          — Регистратор;
          — Номер строки.

          Пользователь самостоятельно создает только измерение Номенклатура.

          ## Измерения

          Тип:

          ## Ресурсы

          Типы:

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

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

          —

          # 4. Что хранится в регистре «Продажи»

          ## Продажа товара

          Например, продано 3 штуки товара на сумму 500, себестоимость 320.

          В регистре сведений:

          | Номенклатура | Количество | Себестоимость | СуммаПродажи |
          |—|—:|—:|—:|
          | Куртка | 3 | 320 | 500 |

          ## Продажа услуги

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

          В регистре сведений:

          | Номенклатура | Количество | Себестоимость | СуммаПродажи |
          |—|—:|—:|—:|
          | Доставка | 1 | 0 | 331 |

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

          —

          # 5. Проведение приходной накладной

          Приходная накладная записывает данные только в регистр накопления ОстаткиНоменклатуры.

          Для товара:

          Услуги в приходной накладной не формируют остатки.

          —

          # 6. Проведение расходной накладной

          При проведении расходной накладной нужно:

          1. определить метод списания;
          2. списать товар из ОстаткиНоменклатуры;
          3. рассчитать себестоимость проданных товаров;
          4. записать продажи товаров и услуг в регистр сведений Продажи.

          В регистр накопления попадают только складские движения товаров.

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

          —

          # 7. Списание товара

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

          Для FIFO:

          Для LIFO заменить сортировку:

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

          —

          # 8. Движения по регистру накопления при продаже товара

          Для товара движение в регистре ОстаткиНоменклатуры формируется по каждой партии:

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

          —

          # 9. Формирование записей регистра «Продажи»

          После списания товаров нужно сформировать записи регистра сведений.

          ## Создание набора записей

          Почему сначала выполняются Прочитать() и Очистить():

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

          —

          ## Запись продажи товара

          После расчета себестоимости товара:

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

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

          —

          # 10. Запись услуг в регистр «Продажи»

          Услуги не обрабатываются алгоритмом списания.

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

          Параметры:

          Запись:

          В конце:

          —

          # 11. Важное замечание о времени регистра «Продажи»

          Периодичность регистра:

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

          Например, отчет задает:

          В запросе к регистру сведений используется поле Период:

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

          —

          # 12. Полный фрагмент обработки проведения расходной накладной

          Общая структура будет такой:

          Вспомогательная процедура ОбработатьПродажуТоваров должна:

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

          —

          # 13. Отчет «Продажи товаров»

          Теперь этот отчет строится по регистру сведений:

          ## Запрос отчета

          Параметры:

          Группировки СКД:

          Ресурсы:

          В результате будет получена структура:

          Для услуг поле Себестоимость будет равно нулю.

          —

          # 14. Отчет «Остатки товаров»

          Этот отчет по-прежнему строится по регистру накопления:

          ## Запрос

          Параметры:

          Группировки:

          Ресурсы:

          —

          # 15. Документ «КорректировкаРегистров»

          Документ корректировки работает с регистром накопления ОстаткиНоменклатуры.

          Табличная часть:

          Поля:

          Проведение:

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

          —

          # 16. Переходы между методами списания

          Механизм не меняется.

          В регистр сведений УчетнаяПолитика вводятся записи:

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

          Регистр продаж на выбор метода не влияет. В нем просто записывается рассчитанная при проведении себестоимость.

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

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

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

          —

          # 17. Преимущества такого варианта

          ## Регистр накопления простой

          В нем только необходимые складские данные:

          ## Продажи не влияют на остатки

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

          ## Услуги обрабатываются естественно

          Услуги не имеют склада и партии, но могут иметь:

          ## Себестоимость фиксируется на момент проведения

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

          ## Перепроведение работает корректно

          Перед записью продаж по документу старые записи регистра сведений удаляются:

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

          —

          # 18. Что нужно сказать на экзамене

          Корректная формулировка архитектуры:

          > Регистр накопления ОстаткиНоменклатуры предназначен для хранения складских остатков товаров по складам и партиям. В нем хранятся ресурсы Количество и Себестоимость. Для формирования отчета по продажам используется периодический регистр сведений Продажи, подчиненный регистраторам. В него при проведении расходной накладной записываются количество, рассчитанная себестоимость и сумма продажи по каждой номенклатуре. Услуги в регистр остатков не попадают, а в регистр продаж записываются с нулевой себестоимостью. Метод списания определяется по регистру УчетнаяПолитика на дату документа.

          Такое решение технически корректно и существенно проще варианта с четырьмя ресурсами в одном регистре.

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

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