Какой должен быть тип измерения «Партия» в регистре и почему?

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

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

        2. А точно нужна именно такая структура регистра? Какой тип должен быть у измерения «Партия»? Это должен быть «ДокументСсылка.ПриходнаяНакладная»?
        3. Почему в движениях мы пишем Движение.Партия = Ссылка, а не Движение.Партия = Дата? Ведь партии у нас по датам или я ошибаюсь?

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

          ### 2. Нужна ли именно такая структура регистра?

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

          Если партия означает:

          > конкретное поступление товара по конкретной приходной накладной,

          то измерение Партия можно сделать типом:

          Например, структура регистра накопления может быть такой:

          Измерения:

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

          Ресурсы:

          — Количество
          — Стоимость

          В этом случае одна приходная накладная является одной партией или, точнее, источником партии.

          Например:

          | Номенклатура | Склад | Партия | Количество |
          |—|—|—|—:|
          | Телефон | Основной склад | Приходная накладная № А-001 | 10 |
          | Телефон | Основной склад | Приходная накладная № А-015 | 7 |

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

          В коде проведения поступления:

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

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

          где СтрокаТаблицы.Партия должна содержать ссылку на приходную накладную.

          —

          ### Когда типа ДокументСсылка.ПриходнаяНакладная будет недостаточно

          Если партия может появляться не только из приходной накладной, например:

          — из документа производства;
          — из документа оприходования;
          — из возврата покупателя;
          — из инвентаризации;
          — из другого вида поступления,

          то тип ДокументСсылка.ПриходнаяНакладная окажется слишком узким.

          В этом случае есть несколько вариантов.

          #### Вариант 1. Общий справочник «Партии»

          Создается справочник, например ПартииТоваров.

          У него могут быть реквизиты:

          — Номенклатура;
          — ДатаПоступления;
          — ДокументПоступления;
          — Серия;
          — СрокГодности;
          — Производитель;
          — НомерПартии.

          Тогда измерение регистра Партия имеет тип:

          Это более универсальный вариант.

          Одна запись справочника будет соответствовать одной партии:

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

          #### Вариант 2. Составной тип ссылки

          Можно сделать измерение Партия составного типа:

          — ДокументСсылка.ПриходнаяНакладная;
          — ДокументСсылка.ОприходованиеТоваров;
          — ДокументСсылка.ВозвратОтПокупателя.

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

          #### Вариант 3. Использовать серию номенклатуры

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

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

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

          —

          ### 3. Почему Движение.Партия = Ссылка, а не Движение.Партия = Дата?

          Потому что Партия и Дата являются разными понятиями.

          — Дата отвечает на вопрос: когда произошло движение.
          — Партия отвечает на вопрос: к какому конкретному запасу относится движение.

          Если в качестве партии использовать дату, вы фактически говорите:

          > все товары одного вида, поступившие в одну дату, относятся к одной партии.

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

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

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

          Однако у такого подхода есть проблемы.

          #### Проблема 1. В один день могут быть разные поступления

          Например:

          — приходная накладная № А-001 от 15.10.2026;
          — приходная накладная № А-002 от 15.10.2026.

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

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

          #### Проблема 2. Дата не содержит информации о документе

          По значению 15.10.2026 невозможно определить:

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

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

          Позже можно получить дату партии так:

          То есть дата партии не теряется. Она хранится в самом документе поступления.

          #### Проблема 3. Дата документа может быть изменена

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

          Ссылка на документ остается тем же идентификатором:

          Меняется ее дата, но не сама ссылка.

          #### Проблема 4. Для списания нужен конкретный источник

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

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

          | Партия | Дата | Количество |
          |—|—|—:|
          | Приходная накладная № А-001 | 01.10.2026 | 10 |
          | Приходная накладная № А-002 | 15.10.2026 | 20 |

          При продаже 12 штук система должна списать:

          — 10 штук из партии № А-001;
          — 2 штуки из партии № А-002.

          Для этого в расходных движениях должны быть указаны именно ссылки на партии:

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

          —

          ### Что тогда означает дата движения?

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

          Например:

          Получается:

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

          Для приходного документа регистратор и партия могут совпадать:

          А для расходного документа они будут разными:

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

          —

          ### Рекомендуемый вариант для вашей задачи

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

          Регистр накопления ОстаткиТоваров:

          Измерения:

          Тип измерения Партия:

          Ресурсы:

          При поступлении:

          При списании:

          Но это решение корректно только при условии, что:

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

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

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

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