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


Описание механизмов партионного учета

Содержание статьи.
В данной статье приводится упрощенное описание алгоритма проведения документов по партионному учету (далее ПУ), которое отражает основные особенности данного механизма.
Для упрощения и уменьшения объема данной статьи, в качестве примера использована типовая конфигурация фирмы «1С» «Управление торговлей 10.2». Описание алгоритмов списания партий регламентированного и международного учетов здесь не приводится, поскольку оно практически не отличается от рассматриваемого управленческого учета, за исключением некоторых особенностей, которые будут приведены.

Краткое описание механизма.
Механизмом партионного учета выполняется добавление к существующим движениям документа по регистрам дополнительных движений по регистрам ПУ. Эти движения могут формироваться либо сразу при проведении документа, либо впоследствии, с помощью специальной обработки проведения по партиям. Выбор режима проведения: сразу при проведении документа (далее режим online) или впоследствии обработкой (далее режим offline) выполняется в настройках учетной политики.
Важно отметить, что при использовании offline-режима не выполняется полное перепроведение всего документа – обрабатываются только движения документа, относящиеся к партионному учету, остальные движения при этом не затрагиваются.
Например, документ «Реализация товаров услуг» выполняет движения по регистрам накопления «Товары на складах» и «Партии товаров на складах» (соответственно, последние относятся к ПУ). При использовании обработки проведения документа по партиям движения по регистру «Товары на складах» будут оставаться нетронутыми. Обработкой будут удалены (в случае их наличия) и сформированы заново только движения по «Партии товаров на складах».
Описание принципов действия.
Для «отделения» механизма проведения документа по ПУ от самого документа в конфигурацию был добавлен дополнительный регистр сведений «Списанные товары». В этом регистре документом при проведении сохраняется список товаров с некоторой дополнительной информацией, которые необходимо будет впоследствии списать по партионному учету. Другими словами, можно сказать, что в данный регистр документом помещается «заявка» на проведение по ПУ, в виде информации «что и как» необходимо будет потом списывать. Механизм ПУ эту информацию читает, и выполняет необходимые действия. Механизмы документа, поместившего эти записи, при этом уже не задействуются.
Далее приводится описание основных ресурсов регистра сведений «Списанные товары»:
- Номенклатура – товар, который надо списать по партиям;
- Склад – склад, с которого должна списываться партия (можно не указывать, зависит от параметра учетной политики «Вести партионный учет по складам»);
- ДопустимыйСтатус1…4 – каждая партия товара имеет так называемые статус партии, который ее характеризует, это может быть значение «Купленный», «На комиссию», «По ордеру» и т. д. Соответственно, в данных ресурсах записывается возможные значения статусов, с партий которых данный товар может списаться;
- КодОперацииПартииТоваров – значение перечисления, характеризует выполняемую операцию, например: «Реализация», «Передача на комиссию» и т. д.;
- СчетУчетаБУ (НУ, МУ) – используется при списании партии по регламентированному учету, является аналогом поля ДопустимыйСтатус. То есть, если в управленческом учете партия характеризуется статусом, то в регламентированном учете для этого служит счет учета. Соответственно, в данных ресурсах записываются возможные счета, с партий которых товар должен будет списываться по регламентированному учету.

Запуск механизма проведения документа по ПУ выполняется вызовом процедуры ДвижениеПартийТоваров(). Это может выполняться либо из процедуры ОбработкаПроведения() самого документа (при online-проведении):

Либо из обработки проведения по партиям (offline-режим):

Таким образом, входной информацией и единицей обработки для механизма ПУ является ссылка на документ, который необходимо провести.

Процедура ДвижениеПартийТоваров(), а также все остальные процедуры ПУ принадлежат общему модулю УправлениеЗапасамиПартионныйУчет. Для повышения производительности в клиент-серверных версиях, для данного модуля не установлен признак его компиляции на клиенте, зато установлен для сервера. В результате все действия механизма ПУ будут выполняться непосредственно на сервере, а не на более «слабом» клиентском компьютере.

В упрощенном виде алгоритм проведения документа по ПУ можно разбить на несколько логических блоков:
- получение таблицы списания из регистра «Списанные товары»,
- получение остатков по товарам из регистров ПУ,
- подготовка наборов записей регистров обрабатываемого документа,
- выполнение списания партий по таблице списания,
- формирование корреспондирующих движений,
- запись движений документа (наборов записей по регистрам ПУ).

Получение таблицы списания из регистра «Списанные товары».
Выполняется в процедуре ДвижениеПартийТоваров().
Как уже было сказано выше, в регистр сведений «Списанные товары» документом помещается информация о том, что именно надо списывать по ПУ. Способ получения этой информации из регистра различается для режимов проведения документа по ПУ. В случае online-проведения вызов указанной процедуры выполняется из модуля документа, поскольку в этом случае существует простая возможность получения этой таблицы из движений документа, данная информация (таблица списания) передается в блок партионного учета из документа параметром процедуры (см. пример выше).
В случае offline-проведения такой возможности нет, поэтому таблица списания получается путем выполнения запроса к регистру «Списанные товары»:

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

ВЫБРАТЬ
Регистратор,
Период,
НомерСтроки,
<Перечень все ресурсов регистра>
ИЗ
РегистрСведений. СписанныеТовары
ГДЕ
Регистратор = &ОбрабатываемыйДокумент

Результат запроса выгружается в таблицу значений, которая потом передается во все остальные процедуры (далее под ТаблицаСписания будет всегда подразумеваться таблица, полученная в этой функции).

Получение остатков по товарам из регистров партионного учета.
В данном блоке выполняется запрос к остаткам товаров из таблицы списания в регистрах партионного учета.

Процедура ВыполнитьСписание(ТаблицаСписания, МоментКон, РегламентныйДокумент=Неопределено)

// Структура общих параметров, используемых в большинстве процедур
СтруктураПараметров = Новый Структура;

Если ТаблицаСписания. Количество()>0 Тогда

// Выгрузка списка товаров из таблицы списания в массив
МассивНоменклатуры = ТаблицаСписания. ВыгрузитьКолонку("Номенклатура");

// из полученного массива с товарами удаляются повторяющиеся позиции,
// это делается для уменьшения времени выполнения запросов, где данный
// массив используется как параметр
УдалитьПовторяющиесяЭлементы(МассивНоменклатуры);

СтруктураПараметров. Вставить("УчетнаяПолитика", ПолучитьУчетнуюПолитику(МоментКон));

// Добавление в структуру остатков по партионному учету
ПолучитьОстатки(СтруктураПараметров, ТаблицаСписания, МоментКон, МассивНоменклатуры);

КонецЕсли

КонецПроцедуры

Как видно из приведенного кода, в процедуре появляется новый объект СтруктураПараметров. Поскольку данная структура будет использоваться во всех описываемых далее блоках, стоит описать ее чуть подробнее. СтруктураПараметров представляет собой значение типа «Структура», в которую помещаются все необходимые для выполнения в дальнейшем значения. И уже эта структура передается как один параметр во все вызываемые впоследствии процедуры. Из примера приведенного кода видно, что в любом месте, где данная структура доступна, возможно, например, простое обращение к учетной политике через:

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

// Процедура ПолучитьОстаткиУпр() вызывается из процедуры ПолучитьОстатки()
Процедура ПолучитьОстаткиУпр(СтруктураПараметров, ТаблицаСписания, МоментКон, МассивНоменклатуры)

// По партионному учету остатки берутся из двух регистров
ЕстьНаСкладах=Ложь;
ЕстьПереданные=Ложь;
Для Каждого СтрокаСписания Из ТаблицаСписания Цикл

// вид выполняемого списания определяется по значению колонки
// КодОперацииПартииТоваров строки таблицы списания
Источник=ПолучитьИсточникПоКодуОперации(СтрокаСписания. КодОперацииПартииТоваров);

Если Источник = "НаСкладах" Тогда
// товар будет списываться со склада (с регистра ПартииТовароНаСкладах),
// то есть это купленный или принятый на комиссию товар
ЕстьНаСкладах=Истина;

ИначеЕсли Источник = "Переданные" Тогда
// товар списывается с регистра ПартииТоваровПереданные,
// то есть товар, переданный на комиссию
ЕстьПереданные=Истина;
КонецЕсли;

КонецЦикла;

Если ЕстьНаСкладах Тогда
ПолучитьОстаткиПартийНаСкладахУпр(СтруктураПараметров, МоментКон, МассивНоменклатуры);
КонецЕсли;
Если ЕстьПереданные Тогда
ПолучитьОстаткиПартийПереданныхУпр(СтруктураПараметров, МоментКон, МассивНоменклатуры);
КонецЕсли;


КонецПроцедуры // ПолучитьОстаткиУпр()

В процедурах ПолучитьОстаткиПартийНаСкладахУпр() и ПолучитьОстаткиПартийПереданныхУпр() выполняются запросы к соответствующим регистрам накопления, с фильтром по переданному массиву номенклатуры. То есть выполняется запрос вида:

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

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

Коротко описать выполняемые при этом действия можно следующим образом. В процедуре СоздатьНаборыЗаписей() создаются и записываются в структуру параметров наборы записей регистров:

Которые потом соответствующим образом подготавливаются для записи в процедуре ПодготовитьНаборыЗаписей():

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

и дополнительная таблица движений:

Выполнение списания партий.
В данном блоке выполняется распределение списываемых товаров по партиям.

Условно действия, выполняемые в процедуре СписаниеПартий() можно разделить на несколько отдельных блоков

Процедура СписаниеПартий(СтрокаДокумента, СтруктураПараметров, РегистрУчета)

// 1. Получение таблицы остатков партий из структуры параметров
ИмяРегистра = ПолучитьИмяРегистра("ПартииТоваров", РегистрУчета, СтрокаДокумента);
// Если нет регистра, по которому списываем, тогда пропускаем
Если ИмяРегистра="" Тогда
Возврат;
КонецЕсли;
ТаблицаПартий = СтруктураПараметров["Таблица"+ИмяРегистра] ;

// 2. Выборка из полученной таблицы партий строк, соответствующей текущей обрабатываемой // строки таблицы списания
НайденныеСтроки = ОтобратьСтрокиПартий(ТаблицаПартий, СтрокаДокумента, РегистрУчета);

// 3. Перенос отобранных строк во временную таблицу остатков
// Найденные строки перенесем в таблицу значений, которую нужно отсортировать в соответствии со стратегией списания
ТаблицаОстатки = Новый ТаблицаЗначений;
// Добавим колонку с индексом
ТаблицаОстатки. Колонки. Добавить("ИндексНайденнойСтроки", ПолучитьОписаниеТиповЧисла(15, 2));
ТаблицаОстатки. Колонки. Добавить(Кол. Имя, Кол. ТипЗначения);
КонецЦикла;
Сч = 0;
Для Каждого Строка Из НайденныеСтроки Цикл
НоваяСтрока = ТаблицаОстатки. Добавить();
НоваяСтрока. ИндексНайденнойСтроки = Сч;
Для Каждого Кол Из ТаблицаПартий. Колонки Цикл
Если ПустаяСтрока(Кол. Имя) ИЛИ Кол. Имя = "QuieryId" Тогда
Продолжить;
КонецЕсли;
НоваяСтрока[Кол. Имя] = Строка[Кол. Имя];
КонецЦикла;
Сч = Сч + 1;
КонецЦикла;

// 4. Сортировка строк таблицы остатков по стратегии списания
ОтсортироватьПартииПоСтратегии(ТаблицаОстатки, СтрокаДокумента, СтруктураПараметров);

// 5. Распределение списываемого количества по партиям, формирование движений регистров

// 6. Перенос изменений во временной таблице остатков в таблицу остатков партий
// (уменьшение списанных остатков)

КонецПроцедуры

1. Из структуры параметров получается таблица остатков партий, заполненная до этого в процедуре ПолучитьОстатки()

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

То есть, отбираются строки по текущему списываемому товару.

3. Общая таблица остатков партий ТаблицаПартий в некоторых случаях может содержать большое количество строк, соответственно сортировка такой таблицы (по стратегии списания в п.4) может занимать значительное количество времени. Поскольку такая сортировка выполняется еще и для каждой строки исходной таблицы списания, это может заметно увеличить время проведения документа по ПУ. Поэтому массив отобранных в п.2 строк переносится в промежуточную таблицу значений ТаблицаОстатки. И далее сортируется уже эта таблица.
Поскольку при списании партий остаток этих партий будет уменьшаться, данные изменения необходимо впоследствии перенести из временной таблицы ТаблицаОстатки обратно в таблицу ТаблицаПартий. Для простого определения соответствия строк этих таблиц в таблицу значений ТаблицаОстатки добавляется дополнительная колонка ИндексНайденнойСтроки, в которой сохраняется индекс соответствующей строки в массиве найденных строк.

4. Сортировка строк таблицы значений ТаблицаОстатки.
Здесь выполняется сортировка строк таблицы значений в соответствии с указанной в учетной политике стратегии списания партий – по хронологии (ФИФО, ЛИФО, по средней) и по статусу (сначала собственные потом принятые или наоборот).
Соответственно при сортировке по хронологии таблица сортируется по колонке с датой документа оприходования партии. Для сортировки по статусу в таблицу добавляется временная колонка ЧислоСтатусПартии, содержащая числовое представление значения статуса партии (0 или 1) - по этой колонке и выполняется сортировка таблицы. После чего колонка удаляется.

5. Распределение списываемого количества по партиям, формирование движений регистров.
Поиск подходящей партии выполняется путем перебор строк таблицы ТаблицаОстатки:

КоличествоОсталосьПогасить = СтрокаДокумента. Количество;
Для Каждого СтрокаПартии Из ТаблицаОстатки Цикл
Если КоличествоОсталосьПогасить <= 0 Тогда
Прервать;
КонецЕсли;
// Количество по строке больше 0
Если НЕ СтрокаПартии. Количество > 0 Тогда
Продолжить;
КонецЕсли;

// Выполняется проверка соответствия необходимым условиям параметров
// партии – склад, на котором хранится партия; ее допустимый статус;
// заказ; качество
Если НЕ ПроверитьПартию(СтрокаПартии, СтрокаДокумента, СтруктураПараметров, РегистрУчета) Тогда
Продолжить
КонецЕсли;
Если СтрокаПартии. Количество >= КоличествоОсталосьПогасить Тогда
КоэффСписания = КоличествоОсталосьПогасить/СтрокаПартии. Количество;
Иначе
КоэффСписания = 1;
КонецЕсли;

Движение = ДобавитьДвижение(ПолучитьИмяРегистра("ПартииТоваров", РегистрУчета, СтрокаДокумента),
СтруктураПараметров);

// Свойства
Движение. Период = СтрокаДокумента. Период;
Движение. Регистратор = СтрокаДокумента. Регистратор;
Движение. ВидДвижения = ВидДвиженияНакопления. Расход;

// Измерения
Движение. Номенклатура = СтрокаПартии. Номенклатура;

// Ресурсы
Движение. Количество = Окр(СтрокаПартии. Количество * КоэффСписания,3,1);

// в таблице значений уменьшается остаток партии
СтрокаПартии. Количество = СтрокаПартии. Количество - Движение. Количество;

КонецЦикла;

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

6. Перенос изменений во временной таблице остатков в таблицу остатков партий.
Все изменения, выполненные во временной таблице ТаблицаОстатки (уменьшение остатка и стоимости партии) необходимо перенести обратно в таблицу остатков партий:

Формирование корреспондирующих движений.
Кроме собственно списания партий при проведении по ПУ может выполняться формирование корреспондирующих движений. Это обусловлено тем, что товар обычно списывается не «насовсем», как правило, он попадает в какой-то другой учет. Хотя система учета основана целиком на отдельных регистрах, каждый из которых отражает отдельные существенные (с точки зрения разработчиков) разделы учета, обычно операции отражаются сразу в нескольких из них, причем связанным образом. В случае с учетом стоимости товаров в большинстве случаев при списании партии выполняются связанные движения в других учетах (если эти учеты предусмотрены в системе), обычно с суммой, равной стоимости товаров (иногда и с количеством).
Например, при проведении по ПУ документа «Реализация товаров и услуг» при реализации по комиссии, кроме собственно списания партии со склада, механизмом выполняется оприходование этой партии в раздел учета переданных на комиссию товаров. Или другими словами, кроме движения списания с регистра «Партии товаров на складах» механизмом выполняется связанное (корреспондирующее) движение в приход по регистру «Партии товаров переданные».

Собственно само формирование этих движений инициируется одновременно со списанием партий в только что рассмотренной процедуре СписаниеПартий() в цикле обхода таблицы остатков партий:

Определение, в каком разделе учета следует выполнить корреспондирующее движение, выполняется функцией ПолучитьНаправлениеСписанияПоКодуОперации()

Процедура ВыполнитьКорДвижение(РегистрУчета, СтрокаДокумента, СтруктураПараметров, Движение)

ВыполнитьКорДвижениеУпр(РегистрУчета,
ПолучитьНаправлениеСписанияПоКодуОперации(СтрокаДокумента. КодОперацииПартииТоваров,
СтрокаДокумента. СтатьяЗатрат),
СтрокаДокумента,
СтруктураПараметров,
Движение);

КонецПроцедуры // ВыполнитьКорДвижение()

Функция ПолучитьНаправлениеСписанияПоКодуОперации(КодОперации, СтатьяЗатрат = Неопределено)

КодыОпераций = Перечисления. КодыОперацийПартииТоваров;
НаправлениеСписания = "";

Если КодОперации=КодыОпераций. Реализация
ИЛИ КодОперации=КодыОпераций. РеализацияКомиссия
ИЛИ КодОперации=КодыОпераций. РеализацияРозница Тогда

ИначеЕсли КодОперации=КодыОпераций. ВозвратОтПокупателя Тогда
НаправлениеСписания = "СебестоимостьПродаж";

ИначеЕсли КодОперации=КодыОпераций. ПередачаНаКомиссию Тогда
НаправлениеСписания = "Переданные";


КонецЕсли;
Возврат НаправлениеСписания;

КонецФункции

Как видно из приведенного кода, определение «направления списания» выполняется путем анализа кода выполняемой операции.
Далее, в соответствие с полученным «направлением» выполняется формирование движений по определенному разделу учета (регистру)

Процедура ВыполнитьКорДвижениеУпр(СписаноИз, ПриходоватьВ, СтрокаДокумента,
СтруктураПараметров, Движение)

// параметр ПриходоватьВ содержит полученное «направление списания»

Если ПриходоватьВ = "НаСкладах" Тогда

ПоступлениеНаСкладУпр(СписаноИз, СтрокаДокумента, СтруктураПараметров, Движение);

ИначеЕсли ПриходоватьВ = "Переданные" Тогда

ПоступлениеПереданныхУпр(СтрокаДокумента, СтруктураПараметров, Движение);

ИначеЕсли ПриходоватьВ = "Затраты" Тогда

СписаниеНаПостоянныеЗатратыУпр(СтрокаДокумента, СтруктураПараметров, Движение);

ИначеЕсли ПриходоватьВ = "СебестоимостьПродаж" Тогда

СписаниеНаСебестоимостьПродажУпр(СтрокаДокумента, СтруктураПараметров, Движение);

КонецЕсли;

КонецПроцедуры

Непосредственно само формирование движений будет рассмотрено на примере процедуры ПоступлениеПереданныхУпр().

Процедура ПоступлениеПереданныхУпр(СтрокаДокумента, СтруктураПараметров, Строка)

Учет = "Упр";
// создание новой записи соответствующего набора записей регистра
Движение = ДобавитьДвижение("ПартииТоваровПереданные"+Учет, СтруктураПараметров);

////////////////////////////////////////////////////
/// заполнение полей записи набора

// Свойства
Движение. Период = Строка. Период;
Движение. Регистратор = Строка. Регистратор;
Движение. Активность = Истина;
Движение. ВидДвижения = ВидДвиженияНакопления. Приход;
Движение. Номенклатура = Строка. Номенклатура;
Движение. ХарактеристикаНоменклатуры = Строка. ХарактеристикаНоменклатуры;
Движение. ДокументОприходования = Строка. ДокументОприходования;
Движение. СтатусПартии = Строка. СтатусПартии;
Движение. СтатусПередачи = СтрокаДокумента. СтатусПередачи;
Движение. ДоговорКонтрагента = СтрокаДокумента. ДоговорКонтрагента;
Движение. ДокументПередачи = СтрокаДокумента. ДокументПередачи;

// Вспомогательные поля для списания
Движение. ДокументОприходованияДата = Строка. ДокументОприходованияДата;

// Ресурсы
Движение. Количество = Строка. Количество;
Движение. Стоимость = Строка. Стоимость;

// Оприходование с новой стоимостью
Если Строка. СтоимостьПоступление<>0 Тогда
Движение. Стоимость = Строка. СтоимостьПоступление;
КонецЕсли;

// Реквизиты
Движение. КодОперации = СтрокаДокумента. КодОперацииПартииТоваров;

// сохранение номера корреспондирующей строки

КонецПроцедуры

После того, как корреспондирующие движения сформированы, необходимо каким-нибудь способом связать их с «родительскими» движениями списания. Это обусловлено тем, что информация о корреспондирующих движениях может понадобиться в дальнейшем. Например, это может возникнуть, когда стоимость партии выяснилась позже, когда она уже была списана. В результате возникает ситуация, при которой необходимо поправить стоимость выполненного списания партии (например, при дополнительных расходах на приобретение и прочих корректировок стоимости) - естественно при этом нужно поправить стоимость и в корреспондирующем движении.
В конфигурации корреспонденции фиксируются следующим образом: корреспонденция не хранится как отдельная сущность, а может быть получена для определенного движения списания партии. Для того, чтобы знать, какая корреспондирующая запись соответствует данной записи списания по партионному учету, нужно знать:
- куда списана партия (в каком учете (регистре) отражается корреспондирующая запись) (1),
- идентификатор этой записи в данном учете (2).
Для целей (1) используется описанный механизм определения «направления списания» по коду операции - реквизиту регистров партионного учета "КодОперации».
В качестве (2) - документ, которому принадлежат оба движения и номер записи в наборе записей регистра, определяемого кодом операции (1) для этого документа (реквизит "НомерКорСтроки" регистров партий).
В указанном реквизите «НомерКорСтроки» для движения списания партии сохраняется номер соответствующей записи в наборе корреспондирующих движений.

Например, пусть необходимо скорректировать стоимость списанной партии по регистру «Партии товаров на складах». Это влечет за собой коррекцию корреспондирующего движения по регистру «Партии товаров переданные» (предположим, что такая запись есть). Для получения этого движения механизмом ПУ выполняется следующие действия:
- по коду операции списания c помощью функции ПолучитьНаправлениеСписанияПоКодуОперации() определяется регистр, в котором содержится корреспондирующая запись (в данном случае это «Партии товаров переданные»)
- по значению в реквизите «НомерКорСтроки» определяется номер «связанной» записи в наборе записей.

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

Следует понимать, что такой способ накладывает ряд ограничения на правила формирования корреспондирующих движений:
Для получения набора записей корреспондирующего движения списание партии и корреспондирующая запись должны относиться к одному и тому же документу (регистратору). Здесь нужно отметить, что записи могут быть в наборе записей одного документа, а относиться к другому, в этом случае тот документ, к которому они относятся, записывается в реквизит ДокументДвижения записи списания партий.
Одной записи списания партии соответствует строго одна корреспондирующая запись (может быть несколько, но с одинаковыми суммами и в разных регистрах).
Весь набор возможных корреспонденций определен набором кодов операций. Соответствие кодов и корреспонденций определяется в коде рассмотренной функции ПолучитьНаправлениеСписанияПоКодуОперации() и дополнительно нигде не настраивается.
В коде процедуры можно заметить, что номер корреспондирующей записи берется из структуры параметров:

Строка. НомерКорСтроки = СтруктураПараметров["ТекНомерСтрокиПартииТоваровПереданные"+Учет];

Данный параметр создается для регистров в процедуре ПодготовитьНаборыЗаписейУпр() (при этом инициализируется нулевым значением). Впоследствии, при каждом добавлении к набору записей следующей записи, данный параметр увеличивается на единицу (данные действия выполняются в процедуре ДобавитьДвижение(), см. выше). Таким образом в любой момент времени из данного параметра можно получить номер последней добавленной в определенный набор записи.

В регламентированном учете в записи движения списания партий дополнительно заносится информация о счете бухгалтерского учета , на который списан этот товар, и соответствующих субконто (реквизиты регистра "КорСчет", "КорСубконто1...3").

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

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

Непосредственно сама запись наборов выполняется в процедуре ЗаписатьДвижения()

Процедура ЗаписатьДвижения(ДвиженияРегистра, ТаблицаДвиженийРегистра, Замещать)
// При замещении нужно удалять записи, сформированные прошлым списанием
// партий (СписаниеПартий=Истина),
// если у регистра есть реквизит СписаниеПартий, то нужно удалить строки с Истина
ДМ = ДвиженияРегистра. Метаданные();
ЕстьРеквизитСписаниеПартий = (ДМ. Реквизиты. Найти("СписаниеПартий") <> Неопределено);
Если Замещать
И ЕстьРеквизитСписаниеПартий Тогда

Если ТаблицаДвиженийРегистра=Неопределено Тогда
ТаблицаДвиженийРегистра = ДвиженияРегистра. Выгрузить();
КонецЕсли;

// чтение сохраненных до этого движений регистра
ДвиженияРегистра. Прочитать();

// удаление всех записей, относящихся к механизму
// списания партий
Инд=0;
Пока Инд < ДвиженияРегистра. Количество() Цикл
Если ДвиженияРегистра[Инд].СписаниеПартий Тогда
ДвиженияРегистра. Удалить(Инд);
Иначе
Инд=Инд+1;
КонецЕсли;
КонецЦикла;

// Перенос строк из таблицы движений регистра
// (заполненной при списании партии)



// установка признака, что данная запись
// сформирована механизмом списания партий
КонецЦикла;
КонецЕсли;

// запись набора записей
ДвиженияРегистра. Записать(Истина);

Иначе
// В случае, если набор записей записывается в режиме без замещения
// существующих записей, или не имеет реквизита СписаниеПартий предварительного
// удаления записей не производится. Записи из таблицы движений
// добавляются к существующим.
Если ТаблицаДвиженийРегистра<>Неопределено Тогда
ДобавитьСтрокиВНаборЗаписей(ДвиженияРегистра, ТаблицаДвиженийРегистра);
КонецЕсли;

// Заполним параметр "Списание партий"
Если ЕстьРеквизитСписаниеПартий Тогда
Для Каждого Запись Из ДвиженияРегистра Цикл
Запись. СписаниеПартий = Истина;
КонецЦикла;
КонецЕсли;

// запись набора записей
ДвиженияРегистра. Записать(Замещать);

КонецЕсли;

КонецПроцедуры

Режимы offline - и online-проведения документов по ПУ.
Как уже говорилось выше, документы могут проводиться по партионному учету в двух режимах: когда списание партий выполняется сразу, при проведении документа – режим online; и когда списание партий выполняется позже (например, в конце дня, недели и т. п.) специальной обработкой «Проведение по партиям». С одной стороны метод online кажется более предпочтительным, при его применении после проведения документа сразу появляются все его движения, видно с каких партий списался товар. Но при этом следует учитывать последствия применения этого режима:
- заметно увеличивается время проведения документа
- поскольку механизм партионного учета активно использует объект платформы – последовательность, в online-режиме значительно снижается пропуская способность системы при многопользовательской работе

Особенности реализации обработки «Проведение по партиям».
Данная обработка выполняет «отложенное» проведение документов по партионному учету. В упрощенном виде выполняемые ею действия можно разбить на несколько шагов:
1. Получение списка документов, которые необходимо провести по ПУ.
В список документов попадают документов тех типов, которые могут регистрироваться в последовательности партионного учета за период с границы последовательности по дату, на которую проводятся документы. ВАЖНО учитывать – не все документы, зарегистрированные в последовательности, а все документы из указанного периода, для которых в метаданных конфигурации указан признак их вхождения в эту последовательность.

2. Поочередное проведение документов из списка по ПУ.
Для каждого документы из списка обработкой запускается проведение по партиями, которое было рассмотрено выше. Но здесь есть некоторая особенность – с одной стороны формирование движений по списанию партий должно выполняться в транзакции. С другой стороны попытка провести большое количество документов с большим количеством строк в одной транзакции может не выполниться из-за нехватки ресурсов компьютера. Поэтому здесь применяется промежуточная фиксация транзакции. То есть, обработкой циклически выполняется проводка документов по ПУ, при превышении объемом изменений, вносимых в базу данных, некоторого порога выполняется фиксация открытой транзакции и начало новой. При этом измерением объема изменений является количество строк документов, обработанных в рамках одной транзакции.

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

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

Вопрос: УТ 11 Актуализировать партии


В УТ 11 В форме списка регистра "Партии товаров организаций" есть волшебная кнопка "Актуализировать партии", но при нажатии на нее возникает ошибка деление на 0, в чем может быть причина. В регистре посмотрела нигде 0 нет

Ответ: () нашла документ корректировка реализации, убрала проведение, удалось актуализировать. но как теперь быть с этой корректировкой... Посмотрела в отчете Ведомость по партиям там по номенклатуре по которой корректировали количество не указан документ поступления, как это исправить?

Вопрос: Списание Товаров по партиям 1с


Народ, подскажите пожалуйста, как правильно сделать обход результата запроса с начало по итогам, а после
по партиям?
Сделал следующим образом
1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 //разрешение на движения в регистре перед запросом Дерево = РезультатЗапроса. Выбрать (ОбходРезультатаЗапроса. ПоГруппировкам, "Товар" ) ; Пока Дерево. Следующий () Цикл //Проверка количества товара на складе //...... //формирование списания товара по партиям ОсталосьСписать = Дерево. Количество ; Выборка = Дерево. Выбрать (ОбходРезультатаЗапроса. ПоГруппировкам, "Товар" ) ; Пока Выборка. Следующий () И ОсталосьСписать <> 0 Цикл КСписанию = МИН(ОсталосьСписать, Выборка. Количество ) ; СуммаСписания = ?(Выборка. Количество Остаток = КСписанию, Выборка. СуммаОстаток, Выборка. СуммаОстаток/ Выборка. Количество Остаток* КСписанию) ; Движение. ВидДвижения = ВидДвиженияНакопления. Расход; Движение. Период = Дата ; Движение. Регистратор = Ссылка ; Движение. Товар = Выборка. Товар; Движение. Склад = Склад; Движение. Организация = Организация; Движение. Количество = КСписанию; Движение. Партия = Выборка. Партия; Движение. Сумма = СуммаСписания; ОсталосьСписать = ОсталосьСписать - КСписанию; КонецЦикла ; КонецЦикла ;

Но в регистре движения только по товару, а не по партиям
Результат запроса прилагается, списание по ФИФО

Ответ:

Сообщение от alex1248

в запросе сортировку сделать не просто по партии (только Бог 1С знает, как оно сортируется в этом случае)

Смотря какой тип имеет партия

Вопрос: Важно! Указание количества КАЖДОЙ партии в таблице значений


Всем привет!

Исходя из задания мне нужно вывести список каждой партии по выбранному товару (у меня есть поле для выбора товара и кнопка что бы сформировать список)

Я с помощью следующего запроса:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Процедура СформироватьТаблицуЗначений(Товар) Запрос = Новый Запрос; Запрос. Текст = "ВЫБРАТЬ | ТоварыНаСкладеОстатки.Товар, | ТоварыНаСкладеОстатки.КоличествоОстаток КАК Количество |ИЗ | РегистрНакопления.ТоварыНаСкладе.Остатки КАК ТоварыНаСкладеОстатки |ГДЕ | ТоварыНаСкладеОстатки.Товар = &Товар" ; Запрос. УстановитьПараметр ("Товар" , Товар) ; Результат = Запрос. Выполнить () ; ВыборкаДетальныеЗаписи = Результат. Выбрать () ; Пока ВыборкаДетальныеЗаписи. Следующий () Цикл НоваяСтрока = СписокПартий. Добавить() ; ЗаполнитьЗначенияСвойств(НоваяСтрока , ВыборкаДетальныеЗаписи) ; КонецЦикла ; КонецПроцедуры

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

Мне нужно что бы показывало не общее количество товаров, а по партиям (1 партия - 1 проведение документа накладной) и что бы в третее поле заносилась дата, когда товар был доставлен на склад

Например:

Помидор 100 01.11.2013
Помидор 200 04.11.2013

Вместо (что у меня получилось):

Помидор 300 <дата не заполняется>

Подскажите пожалуйста как исправить! Как вклинить еще и заполнение даты (которой нет в запросе) и так, что бы по партиям! Спасибо!

Ответ:

Сообщение от DoLoveRun

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

Партия в Регистре, а не в документе

Вопрос: НДС по партиям товаров и производство


УПП 1.3 ФИФО
Включен сложный учет НДС, но в некоторых ОПзС нет стоимости по партиям НДС (при этом в регистре по партиям БУ суммы есть).
Проведение по партиям НДС делал.
Этот регистр под производство не заточен или что-то не так делаю?

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

Ответ: () Ну что вы, никаких проблем!
Непонятно только, зачем днём закрывали квартал, если вечером запустили его проведение.. Но в общем-то, мне это понимать и не обязательно.

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

Вопрос: Партии товаров списываются в минус


Добрый день! Подскажите, пожалуйста, те, кто сталкивался с подобным. 8.2УТ ред.10.3. Начали старые партии уходить в минус, а свежие партии есть в остатке. В настройках метод списания ФИФО, не ведется партионный учет по складам. Есть поступления 2018 года, при реализации, партия списывается в минус с партий 2010-2013 годов. При этом 1С не ругается и никак не оповещает! Видно только в отчете по партиям. При обнаружении проблемы была сделана ручная корректировка регистров, но это не помогло, продолжаются минуса. Скрины: и

Ответ:

nbIpKuH_BaH9I сказал(а):

Итоги регистров пересчитываете? Я на скрине у вас увидел уже регистратор. Списание партий происходит в момент проведения документа продажи. Следовательно в регистрах на момент проведения документа, данные некорректные. Необходимо восстановить последовательность, либо откорректировать данные регистров в ручную. В ут 10.3 для партионного учета их 18 штук вроде. Нужно выяснить где проблема. Удаленно это сделать трудно. Нужно смотреть вашу базу. Лучше дайте ее специалисту посмотреть. Дешевле выйдет.

Нажмите, чтобы раскрыть...

спасибо

Вопрос: Отчет Валовая прибыль по партиям


Здравствуйте, уважаемые форумчане, спешу спросить, можно ли в УТ 11.1 модифицировать отчет "Выручка и себестоимость розничных продаж" так, чтобы он выводил валовую прибыль по партиям? и если можно, то каким образом?

Ответ: Методологический вопрос: партии виртуальные или реальные? Т.е. есть ли входное штрих-кодирование товара по партиям?

Вопрос: Проведение по партиям (последовательность)


Всем Здравствуйте, есть такая очень напрягающая проблема, может кто уже и сталкивался. В общем у нас УПП 1.2.17.3 и круглосуточное производство. Запуская обработку "Проведение по партиям" непонятно по каким причинам вылетает конфликт блокировок у операторов, т.к. операторы постоянно отгружают продукцию, ну ладно понятно если это было бы всегда, а то бывает обработка "проведение по партиям" проходит большой период и хоть бы раз вылетел конфликт блокировок, хоть бы что, и не зависит от близости проводимого периода к текущей дате. Возникает только одна мысля, для нормальной работы нужно настроить запись в последовательность. Каким образом мне пока не очень понятно, с последовательностями работать не приходилось, конечно проблема может быть и не в последовательности, поделитесь опытом пожалуйста.

Ответ:

Да, сейчас запущу поочередно по НУ потом БУ, посмотрим что будет. А вчера значит запускаю проведение по партиям, перед запуском устанавливаю границу партионки на нужную дату, запускаю. Через час захожу во второй сеанс и смотрю на каком документе идет и офигел), документы проводились за 2 месяца перед нужной датой. Искал в инете инфу, оказалось что граница по реализации стояла на дату 2-мя месяцами назад. Что наталкивает на мысль: Если восстановление по преобретению и реализациям передвинет последовательность документов на необходимый период, тогда восстановление партионки как отреагирует!?: Если Не Передвигать границу партионки Тогда она будет смотреть на границу документов и ничего не сделает, Иначе если передвинуть границу партионки на необходимый период то она запустится и изменит границу документов!?

Вопрос: Не списываются партии БУХ


"Управление производственным предприятием для Украины", редакция 1.3
Разработка конфигурации: "ABBYY Ukraine", 2005-2015 (1.3.45.1)

Добрый день!
Создается документ Расходный ордер на товары (расход по накладной). Создается на основании Реализации товаров и услуг.
При проведении выдает сообщение:

Бухгалтерский учет. Документ Расходный ордер на товары 000000605 от 22.03.2016 16:12:21, табличная часть "Товары" Не списано по партиям 1 шт товара М_____Т, х-ка: , серия: 2200003204544, счета учета, налоговое назначение Обл. НДС, со склада: Реализации склад

На самом деле, по ведомости остатка хватает. Настораживает то, что в уведомлении счета учета пустые, в регистре то они заполнены! Видимо в этом кроется причина.
НО! В документе Реализации все счета заполнены, РС Счета учета номенклатуры заполнен. И, что интересно, ситуация периодически повторяется, но не на всех документах - часть документов проводится нормально, все списывается.

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

Ответ:

Задача решена.
Вдруг кому пригодится:
Причина следующая.
В таблице которая проводилась по Партиям БУХ не заполнены были счета учета. Счета учета подтягивались из движений РТиУ по РС Списание товаров. Там же они были пустыми т.к. при заполнении документа РТиУ в ТЧ Состав набора не подтянулись счета учета.
Перевыбрав реализации комплект в ТЧ Товары заполнилось значение, осталось только перепровести неоперативно документы.

Вопрос: erp 2.2 Почему Списание недостач товаров не делает движ по РН.Партии товаров организации


Почему Списание недостач товаров не делает движ по РН.Партии товаров организации. Каким документом нужно списывать товары, чтобы их кол-во уменьшилось в Ведомости по партиям товаров?

Ответ: кстати в партионном учете 2.2 все партии только в регистре себестоимости

Вопрос: 1с Упп Принятие к учету ОС не формирует движения по партиям товаров на складах управ.уч?!


Добрый день!
Ошибка в проведение документа Принятие к учету ОС! Не формируется движение по партиям УУ(движения по партиям БУи НУ есть).
Не пойму в чем дело! Все делаю,как обычно
ПТиУ с видом операции Оборудование,затем Принятие к учету ос с вводом нового ОС.
Подскажите,на что можно обратить внимание

Ответ: () посмотри в движения по партиям БУ - с аналитикой по складам, и если было перемещение, тогда ()

Алексей Кириллов - Младший бизнес-аналитик компании Antegra consulting

Рассмотрим новые возможности, представленные в редакции 11.1 прикладного решения фирмы «1С» - «Управление торговлей» (УТ). Основные направления развития в новой редакции УТ сделаны с целью добавления различных опций, которые позволяют упростить работу пользователей при использовании программы на небольших предприятиях, а также развития функциональности системы.

Партионный учет

В УТ 11.1 добавлена возможность использования партионного учета. Проведение по регистрам партий включается функциональной опцией «Включить использование партионного учета» в разделе «Администрирование - Поддержка и обслуживание».

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

Расчет себестоимости по ФИФО (скользящая оценка)

В программе реализован новый вариант расчета себестоимости по ФИФО - ФИФО (скользящая оценка). В данном варианте, себестоимость партий не усредняется, а рассчитывается независимо для каждой из списываемых партий. Старый вариант расчета назван ФИФО (взвешенная оценка).

Расчет себестоимости по скользящему ФИФО выполняется по данным специального регистра партий товаров.

Закрытие месяца

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

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

Автоматизация процесса доставки

В конфигурации «Управление торговлей» реализован функционал, позволяющий автоматизировать процесс доставки товаров клиентам, а также при перемещении товаров между складскими помещениями. Функциональная возможность по автоматизации процесса доставки включается в разделе «Администрирование - Склад» (опция «Управление доставкой»).

Информация об адресах и способах доставки товара указывается в документах продажи и перемещения товаров. Предусмотрено три способа доставки: самовывоз, до клиента и силами перевозчика:

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

При оформлении доставки товаров предусмотрена печать маршрутного листа, этикеток на доставку товаров.

Обособленное обеспечение заказов

Функционал обособленного обеспечения позволяет отдельно учитывать товары, предназначенные для конкретного заказа. Обособленное обеспечение ведется только для количества, указанного в заказе, по которому есть необходимость обособленно обеспечить потребности в товарах.
Обособленное обеспечение включается в разделе «Администрирование - Запасы и закупки» с помощью функциональной опции «Обособленное обеспечение заказов».

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

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

Планирование и учет выполненных работ

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

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

Учет возвратной тары

В «1С:Управление торговлей» редакции 11.1 реализован учет возвратной тары. Тара - это вид запасов, предназначенных для упаковки, транспортировки и хранения продукции, товаров и других материальных ценностей. Для использования учета возвратной тары необходимо установить флаг «Многооборотная тара» в разделе «Администрирование - Настройки номенклатуры».

Для возвратной тары используется отдельный вид номенклатуры с типом «Тара».

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

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

Копирование табличной части документов

В программе добавлена новая сервисная возможность копирования информации о товарах во всех документах, где используется обработка «Подбор номенклатуры». При необходимости скопировать список товаров из табличной части одного документа в табличную часть другого документа необходимо выделить нужные строки (зажимая клавишу ctrl) или выделать сразу все строки (ctrl+a) и нажать на кнопку «Скопировать строки» в командной панели:

Вставка скопированных строк в табличную часть документа осуществляется по кнопке «Вставить строки»:

Помощник заполнения настроек и справочников

Для первоначальной настройки и заполнения справочников реализовано специальное рабочее место - «Помощник заполнения настроек и справочников». При помощи данного помощника осуществляется настройка программы с детализацией по разделам. Рабочее место вызывается из раздела «Администрирование - Начальное заполнение».

По итогам заполнения ключевых справочников устанавливаются соответствующие отметки о завершении на выполненных пунктах.

На текущий момент в типовых 1С конфигурациях УТ11, КА2, ERP учет номенклатуры сделан абсолютно аналогично. В более старых конфигурациях на обычных формах (УТ10, КА, УПП) учет немного отличается, но общая идея та же. На первый взгляд учет достаточно сложен. Например, в популярной типовой конфигурации УТ11 для учета номенклатуры используется более 40ка регистров накопления . Попробуем разобраться, для чего они нужны, как используются, какие из них основные и какие вспомогательные. В данной статье рассматриваем только УТ11. В других конфигурациях (КА, ERP) всё несколько сложнее, хотя и похоже.

1. Контуры товарного учета

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

Финансовый контур использует документы, которые связаны с финансовым и бухгалтерским учетом и вводятся бухгалтерами или менеджерами ("Поступление товаров и услуг","Реализация товаров и услуг", "Перемещение товаров", "Списание недостач товаров" и т.д). Эти документы содержат информацию о том, какие товары с точки зрения учета должны быть у нас на cкладе, кому они принадлежат, сколько стоят. Складской контур использует документы, в которых отражено реальное состояние товара на физических складах. Вводятся эти документы кладовщиками, которые видят реальное наличие товара на складе, независимо от того, чей это товар, почему он у нас и сколько он стоит. К складским документам относятся "Приходный ордер на товары", "Расходный ордер на товары", "Пересчет товаров" и др.

Разумеется, в конфигурации есть упрощенный режим работы без разделения на контуры учета. Он используется при отключенном ордерном учете. Использование складского контура настраивается независимо для каждого склада. Соответственно, мы можем настроить использования отдельного складского ордерного документооборота лишь для нескольких необходимых складов. Настройка выполняется в форме справочника "Склады." Для каждого склада мы также можем указать различные даты начала использования отдельного складского учета и необходимость учета товаров по ячейкам.


2. Основные регистры учета номенклатуры

Теперь немного подробнее рассмотрим хранение в УТ11 данных об остатках товаров. Регистров, используемых для учета номенклатуры, в конфигурации больше 40ка и разобраться в них сразу достаточно сложно.

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

"Товары на складах" - это основной регистр складского контура. В нем хранятся данные о фактическом количестве товаров на физических складах. Данные в этом регистре меняются при вводе кладовщиками складских документов.

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

"Партии товаров организаций" и "Себестоимость товаров" это два основных регистра финансового контура, отвечающих за стоимостной учет товаров. Основное отличие этих регистров в том, что в регистре партий хранится стоимость товаров в разрезе каждой партии. Благодаря этому при продаже/списании/потреблении товара есть возможно корректно учесть его стоимость с учетом стоимости конкретной партии поступления. Данные в регистре "Партии товаров организаций" заполняются при проведении финансовых документов. Регистр "Себестоимость товаров" содержат сгруппированные данные о товарах без учета партий. Также в нем есть информация о дополнительных расходах по товарам. Расчет данных этого регистра более сложен, количественные данные заполняются при проведении финансовых документов, а суммовые отдельным документом "Расчет себестоимости товаров"

Эти 4 регистра являются ядром системы товарного учета. В них содержится вся основная информация о товарах предприятия.

Однако, как упомянуто выше, номенклатурных регистров в конфигурации более 40ка. Зачем нужны остальные?

3. Дополнительные регистры учета номенклатуры

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

Именно для решения этих 3х задач используются все остальные регистры.

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

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

К регистрам, обеспечивающим дополнительные разрезы данных , можно отнести, например, "Товары переданные на комиссию" .

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

Регистрами производственного учета условно можно назвать "Партии затрат на выпуск" , "Партии производственных затрат" и "Материалы и работы в производстве" . Название "производственные" достаточно условно, так как полноценного производства в УТ11 нет, только сборка/разборка. В этих регистрах хранится дополнительная информация о затратах на сборку/разборку товаров, и сама себестоимость собранных товаров.

Также можно выделить отдельные в отдельные группы регистры с данными планового учета по номенклатуре ("Заказы на перемещение", "Заказы поставщикам", "Заказы клиентов" и др), и дополнительные регистры партионного учета ("Партии производственных затрат", "Партии производственных затрат", "Партии расходов на себестоимость товаров" и др.)

4. Согласованность регистров номенклатуры

Для корректного учета очень важно отследить, что введены документы по обоим контурам учета (финансовому и складскому). Автоматически 1С это не проверяет, так как технически это не является ошибкой и ситуация со временным расхождением данных абсолютно корректна. Разрыв в несколько дней между обработкой данных бухгалтерами и кладовщиками вполне логичен. Однако важно, чтобы по итогам месяца данные в контурах учета сходились. Наиболее простой способ такой проверки, это обычный запрос к двум регистрам накопления с выводом отличающихся данных. При наличии расхождений просто просматриваем документы по номенклатуре с расхождением и довводим недостающие документы.

В качестве иллюстрации возьмем демо-базу УТ11.2 и сверим по регистрам "Товары на складах" и "Товары организаций" остатки по организации "Торговый дом "Комплексный"". При проверке видно, что остатки не совпадают по 7ми позициям. При переходе в движения по документам однозначно понятно, что по первому отличающемуся остатку не введен в складском контуре расходный ордер по документу реализации в финансовом контуре, по второму не введен финансовый документ отражения излишков по складскому пересчету товаров. Для корректного расчета себестоимости и правильного учета в будущих месяцах необходимо доввести недостающие документы до закрытия месяца и расчета себестоимости.

(Скриншот сверки остатков в типовой демо-базе УТ11.2 из отчета " " )

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

Несогласованность регистров "Партии товаров организаций" и "Себестоимость товаров" в большинстве случаев возникает из-за несогласованности прошлой пары ("Товары организаций" и "Партии товаров организаций"). Большинство ошибок связаны с тем, что по различным причинам (ввод задним числом, ручная корректировка данных) номенклатура не списалась корректно в регистре партий, однако списалась в регистре себестоимости. В этом случае система не может корректно расчитать себестоимость списываемых товаров и в регистре себестоимости может зависнуть сумма с нулевым количеством. Такие ошибки уже отслеживаются системой. Именно с ними связано сообщение вида "По номенклатуре -ХХХХХ- обнаружен некорректный остаток в регистре "Себестоимость товаров" : Количество = 0, Стоимость = Х.ХХ, СтоимостьБезНДС = Х.ХХ , СтоимостьРегл = Х.ХХ ". Основная проблема таких ошибок в том, что они обнаруживаются не сразу, а лишь через несколько месяцев, после списания всех остатков в будущих периодах.

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

5. Отрицательные остатки по регистрам номенклатуры

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

Для вспомогательных регистров ("Товары к отгрузке", "Товары к поступлению", "Товары к оформлению поступления", "Товары к оформлению излишков и недостач") отрицательные остатки не всегда являются ошибками . В этих регитсрах любые остатки это просто информация о незаконченных операциях (вводе документа лишь в одном контуре учета). Это абсолютно нормальная ситуация в середине месяца. Однако в конце месяца любые остатки во вспомагательных регистрах обычно явлются ошибочными, как отрицательные, так и положительные. В большинстве случаев к концу месяца эти регистры должны выходить "в ноль". В этом случае можно быть уверенным, что все операции согласованы в обоих контурах учета.

6. Исправление ошибок расчета себестоимости.

Основные ошибки, отслеживаемые механизмом расчета себестоимости:

1. Остутствие товара на складе. В этом случае выдается сообение вида "Номенклатура: <НаименованиеНоменклатуры>, склад: <Наименование>, организация: <Наименование> обнаружен отрицательный остаток в регистре "Себестоимость товаров": 1" . Это сообщение означает, что на конец месяца товара списано больше, чем было на остатках. Основные возможные причины: не введены приходные документы; отредактированы приходные документы, по которым уже введен расход; ошибочно введен расходный документ. Для исправления необходимо проверить движения по номенклатуре с отрицательным остатком и отследить, на каком документе возникла ошибка.

2. Зависшие суммовые остатки с нулевым количестве. В этом случае выдается сообщение вида "По номенклатуре <Наименование>, склад: <Наименование>, организация: <Наименование> обнаружен некорректный остаток в регистре "Себестоимость товаров": Количество = 0, Стоимость = ХХХ,ХХ, СтоимостьБезНДС = ХХХ,ХХ" . Эта ошибка возникает лишь при использовании партионного учета. Она означает, что системе не удалось для списанного товара корректно определить себестоимость по партиям. Обычно она возникает в случае несогласованности остатков в регистрах "Себостоимость товаров" и "Партии товаров организации". Для устранения проблемы необходимо проверить по истории документов, на каком этапе разошлись остатки по данным регистрам. В большинстве случаев это проблема корректировки данных прошлого периода и решается распроведением и повторным проведением прошлого документа для перезаполнения вида запасов.

3. Передачи между организациями. Выдается сообщение вида ""Не оформлены передачи товаров от отправителя: <Наименование>, на получателя: <Наименование>, по складу: <Наименование>"" . Такая ошибка возникает только при использовании механизма Интеркампани. Фактически, это даже не ошибка. Это уведомление о том, что не выполнены передачи по проданному товару другой компании. С технической точки зрения система определяет эту ошибку по наличию остатков во вспомогательном регистре "Товары организаций к передаче". Необходимо оформить передачи через рабочее место "Оформление передач и возвратов" и выполнить расчет себестоимость повторно.

4. Товары на комиссии. Выдается сообщение вида "Не оформлены отчеты комитенту о списании по организации: <Наименование>, комитент: <Наименование>"" . Такая ошибка возникает только при использовании комиссионной торговли. Фактически, это не ошибка. Это уведомление о том, что не оформлены отчеты комитенту. С технической точки зрения система определяет эту ошибку по наличию остатков во вспомогательном регистре "Товары к оформлению отчетов комитенту ". Необходимо оформить отчеты комитентам и выполнить расчет себестоимость повторно.

5. Работы. Выдается сообщение вида "Не отражено поступление <Количество> шт. работы "<Номенклатура> " в подразделение "<Склад> " организации "<Организация> " . Такая ошибка может возникать при использовании номенклатуры с типом "Работа". Это уведомление о том, что реализовано/списано/использовано больше работ, чем фактически поступило. С технической точки зрения система определяет эту ошибку по наличию отрицательных остатков во вспомогательном регистре "Материалы и работы в производстве". Необходимо проверить движения по ошибочной работе и оформить пропущенное поступление либо откорректировать использование работы. После исправления выполнить расчет себестоимость повторно.

7. Итоги

На самом деле товарный учет в УТ11 реализован просто. Достаточно понимать базовые принципы и периодически контролировать состояние учета. В этом случае любую ошибку можно легко исправить. Основная проблема это то, что часто ошибки обнаруживаются лишь через несколько месяцев после возникновения, когда они уже повлияли на итоги прошлых периодов и правильно их исправить не всегда возможно, так как изменится уже рассчитанная и утвержденная и переданная в другие учетные системы себестоимость. В этом случае иногда встречается рекомендация просто списать непонятные остатки корректировкой регистров. Это очень плохое решение, так как в большистве случаев корректировка регистров не решает проблемы , а лишь снимает сообщения об ошибках расчета себестоимости. Ошибка все равно потом вылезет еще раз. Либо в расхождениях данных в отчетах, отображающих одну и ту же информацию, но использующих разные регистры для разных разрезов; либо при проведении, когда система запретит проведение из-за отсутствия товара, хотя он по отчету он вроде как есть; либо при расчете себестоимости в следующем месяце.

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

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

Отчеты по финансовым результатам формируются в программе в разрезе видов деятельности. Что это означает? Деятельность предприятия подразделяют на основную и прочую.

Основная деятельность торговой компании – продажа товаров и услуг. В программе «1С:Управление торговлей» эти операции отражаются документами «Реализация товаров и услуг» и «Акт выполненных работ». Результатом такой деятельности является прибыль.

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

Регламентные операции закрытия месяца

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

Раздел: Финансовый результат и контроллинг – Закрытие месяца – Закрытие месяца

Должны быть выполнены следующие операции:

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

Откроем панель «Отчеты по финансовому результату».

Раздел: Финансовый результат и контроллинг – Отчеты по финансовому результату

Этот отчет доступен также из формы «Отчеты по продажам»:

Раздел: Продажи – Отчеты по продажам

Сформируем отчет за месяц. В нем отражена валовая прибыль по основной деятельности, отчет не учитывает результаты прочей деятельности. Валовая прибыль рассчитывается как разница между выручкой и себестоимостью товаров (в которую, в свою очередь, входит закупочная стоимость и доп. расходы, они же ТЗР). Данные по умолчанию выводятся в валюте управленческого учета.

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

Раздел: НСИ и администрирование – Настройка разделов – Финансовый результат и контроллинг – Финансовый результат

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

Отчет «Финансовые результаты»

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

Отчет «Доходы и расходы»

В этом отчете мы видим постатейный анализ доходов и расходов и прибыль в отдельной графе:

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

Выбор редакции
12 января 2010 года в 16 часов 53 минуты крупнейшее за последние 200 лет землетрясение магнитудой 7 баллов в считанные минуты погубило,...

Незнакомец, советуем тебе читать сказку "Каша из топора" самому и своим деткам, это замечательное произведение созданное нашими предками....

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

© Зощенко М. М., наследники, 2009© Андреев А. С., иллюстрации, 2011© ООО «Издательство АСТ», 2014* * *Смешные рассказыПоказательный...
Флавий Феодосий II Младший (тж. Малый, Юнейший; 10 апр. 401 г. - † 28 июля 450 г.) - император Восточной Римской империи (Византии) в...
В тревожный и непростой XII век Грузией правила царица Тамара . Царицей эту великую женщину называем мы, русскоговорящие жители планеты....
Житие сщмч. Петра (Зверева), архиепископа ВоронежскогоСвященномученик Петр, архиепископ Воронежский родился 18 февраля 1878 года в Москве...
АПОСТОЛ ИУДА ИСКАРИОТ Апостол Иуда ИскариотСамая трагическая и незаслуженно оскорбленная фигура из окружения Иисуса. Иуда изображён в...
Когнитивная психотерапия в варианте Бека - это структурированное обучение, эксперимент, тренировки в ментальном и поведенческом планах,...