База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Какой должен быть тип измерения «Партия» в регистре и почему?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 час, 52 минуты назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
31 октября 2026 в 15:22 #38938
2. А точно нужна именно такая структура регистра? Какой тип должен быть у измерения «Партия»? Это должен быть «ДокументСсылка.ПриходнаяНакладная»?
3. Почему в движениях мы пишем Движение.Партия = Ссылка, а не Движение.Партия = Дата? Ведь партии у нас по датам или я ошибаюсь? -
31 октября 2026 в 15:22 #38939
### 2. Нужна ли именно такая структура регистра?
Не обязательно. Структура регистра зависит от того, что в вашей задаче считается партией.
Если партия означает:
> конкретное поступление товара по конкретной приходной накладной,
то измерение
Партияможно сделать типом:1С (Код)1ДокументСсылка.ПриходнаяНакладнаяНапример, структура регистра накопления может быть такой:
Измерения:
— Номенклатура
— Склад
— ПартияРесурсы:
— Количество
— СтоимостьВ этом случае одна приходная накладная является одной партией или, точнее, источником партии.
Например:
| Номенклатура | Склад | Партия | Количество |
|—|—|—|—:|
| Телефон | Основной склад | Приходная накладная № А-001 | 10 |
| Телефон | Основной склад | Приходная накладная № А-015 | 7 |Даже если товар один и тот же, это две разные партии, потому что они поступили по разным документам.
В коде проведения поступления:
1С (Код)1Движение.Партия = Ссылка;где
Ссылкаявляется ссылкой на текущую приходную накладную.Для расходного документа партия должна быть указана той же ссылкой на документ поступления, из которого товар списывается:
1С (Код)1Движение.Партия = СтрокаТаблицы.Партия;где
СтрокаТаблицы.Партиядолжна содержать ссылку на приходную накладную.—
### Когда типа
ДокументСсылка.ПриходнаяНакладнаябудет недостаточноЕсли партия может появляться не только из приходной накладной, например:
— из документа производства;
— из документа оприходования;
— из возврата покупателя;
— из инвентаризации;
— из другого вида поступления,то тип
ДокументСсылка.ПриходнаяНакладнаяокажется слишком узким.В этом случае есть несколько вариантов.
#### Вариант 1. Общий справочник «Партии»
Создается справочник, например
ПартииТоваров.У него могут быть реквизиты:
— Номенклатура;
— ДатаПоступления;
— ДокументПоступления;
— Серия;
— СрокГодности;
— Производитель;
— НомерПартии.Тогда измерение регистра
Партияимеет тип:1С (Код)1СправочникСсылка.ПартииТоваровЭто более универсальный вариант.
Одна запись справочника будет соответствовать одной партии:
1С (Код)1234Партия 000001Номенклатура: ТелефонДата поступления: 15.10.2026Документ поступления: Приходная накладная № А-001А в движении регистра будет храниться ссылка на элемент справочника:
1С (Код)1Движение.Партия = ПартияОбъект.Ссылка;#### Вариант 2. Составной тип ссылки
Можно сделать измерение
Партиясоставного типа:— ДокументСсылка.ПриходнаяНакладная;
— ДокументСсылка.ОприходованиеТоваров;
— ДокументСсылка.ВозвратОтПокупателя.Но это менее удобно. В запросах, отборе и алгоритмах списания придется учитывать несколько типов ссылок. Для учебной или небольшой конфигурации допустимо, но для полноценного учета обычно удобнее отдельный справочник партий.
#### Вариант 3. Использовать серию номенклатуры
Если в конфигурации уже есть сущность «Серия номенклатуры», и именно серия является партией, тогда измерение можно сделать ссылкой на справочник серий.
Это подходит, например, когда партия определяется не документом поступления, а номером партии производителя:
1С (Код)123Товар: МукаСерия: ПАРТИЯ-2026-001Срок годности: 01.03.2027В таком случае партия может приходить несколькими документами, но оставаться одной и той же серией.
—
### 3. Почему
Движение.Партия = Ссылка, а неДвижение.Партия = Дата?Потому что
ПартияиДатаявляются разными понятиями.—
Датаотвечает на вопрос: когда произошло движение.
—Партияотвечает на вопрос: к какому конкретному запасу относится движение.Если в качестве партии использовать дату, вы фактически говорите:
> все товары одного вида, поступившие в одну дату, относятся к одной партии.
Это может быть правильным только в очень простой модели учета.
Например, если товар поступил 15.10.2026, можно было бы записать:
1С (Код)1Движение.Партия = ДатаПоступления;Но тогда у измерения
Партиядолжен быть типДата, а неДокументСсылка.ПриходнаяНакладная.Однако у такого подхода есть проблемы.
#### Проблема 1. В один день могут быть разные поступления
Например:
— приходная накладная № А-001 от 15.10.2026;
— приходная накладная № А-002 от 15.10.2026.Это могут быть разные поставщики, разные цены и разные фактические партии. Если записывать в качестве партии только дату, обе партии сольются:
1С (Код)1Телефон + Основной склад + 15.10.2026В результате система не сможет различить, из какой именно поставки был списан товар.
#### Проблема 2. Дата не содержит информации о документе
По значению
15.10.2026невозможно определить:— поставщика;
— документ поступления;
— закупочную цену;
— количество в конкретной поставке;
— срок годности;
— серию;
— номер партии производителя.Ссылка на документ содержит эту связь напрямую:
1С (Код)1Движение.Партия = Ссылка;Позже можно получить дату партии так:
1С (Код)1ДатаПартии = Движение.Партия.Дата;То есть дата партии не теряется. Она хранится в самом документе поступления.
#### Проблема 3. Дата документа может быть изменена
Если пользователь изменит дату приходной накладной, при использовании даты в качестве идентификатора партия фактически изменится. Это создает проблемы при сопоставлении старых движений.
Ссылка на документ остается тем же идентификатором:
1С (Код)1Приходная накладная № А-001Меняется ее дата, но не сама ссылка.
#### Проблема 4. Для списания нужен конкретный источник
При FIFO, FEFO или ручном выборе партии нужно списывать товар из конкретного источника.
Например, есть остатки:
| Партия | Дата | Количество |
|—|—|—:|
| Приходная накладная № А-001 | 01.10.2026 | 10 |
| Приходная накладная № А-002 | 15.10.2026 | 20 |При продаже 12 штук система должна списать:
— 10 штук из партии № А-001;
— 2 штуки из партии № А-002.Для этого в расходных движениях должны быть указаны именно ссылки на партии:
1С (Код)12345Движение.Партия = Партия1;Движение.Количество = 10;Движение.Партия = Партия2;Движение.Количество = 2;Если в регистре хранится только дата, при совпадении дат или нескольких поступлениях за день определить источник будет невозможно.
—
### Что тогда означает дата движения?
У регистра накопления уже есть системное поле
Период. При проведении документа платформа обычно устанавливает его по дате документа.Например:
1С (Код)123Период: 15.10.2026 10:30:00Регистратор: Приходная накладная № А-001Партия: Приходная накладная № А-001Получается:
—
Периодпоказывает хронологию движения;
—Регистраторпоказывает документ, который сформировал движение;
—Партияпоказывает источник товара.Для приходного документа регистратор и партия могут совпадать:
1С (Код)12Регистратор = Приходная накладная № А-001Партия = Приходная накладная № А-001А для расходного документа они будут разными:
1С (Код)12Регистратор = Реализация товаров № Р-005Партия = Приходная накладная № А-001Это принципиально важно. Документ реализации формирует движение, но источником списываемого товара является приходная накладная.
—
### Рекомендуемый вариант для вашей задачи
Если задача учебная и партия определяется каждой приходной накладной, используйте:
Регистр накопления
ОстаткиТоваров:Измерения:
1С (Код)123НоменклатураСкладПартияТип измерения
Партия:1С (Код)1ДокументСсылка.ПриходнаяНакладнаяРесурсы:
1С (Код)12КоличествоСтоимостьПри поступлении:
1С (Код)12345Движение.Номенклатура = СтрокаТоваров.Номенклатура;Движение.Склад = Склад;Движение.Партия = Ссылка;Движение.Количество = СтрокаТоваров.Количество;Движение.Стоимость = СтрокаТоваров.Стоимость;При списании:
1С (Код)12345Движение.Номенклатура = СтрокаТоваров.Номенклатура;Движение.Склад = Склад;Движение.Партия = СтрокаТоваров.Партия;Движение.Количество = -СтрокаТоваров.Количество;Движение.Стоимость = -СтрокаТоваров.Стоимость;Но это решение корректно только при условии, что:
1. партия всегда создается приходной накладной;
2. одна приходная накладная считается одной партией;
3. внутри одной накладной не требуется разделять товар на несколько партий;
4. других источников поступления нет.Если партия определяется именно датой и в один день допускается только одна поставка товара, тогда можно использовать дату, но это уже другая модель. В таком случае измерение
Партиядолжно иметь типДата, а в движении записывалось бы:1С (Код)1Движение.Партия = ДатаПоступления;Для реального учета обычно надежнее хранить ссылку на документ поступления или отдельный элемент справочника
ПартииТоваров, а дату получать из реквизитов партии или документа.
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.