Расчет себестоимости и его Откат в ERP: практика применения

08.02.17

Разработка - Механизмы типовых конфигураций

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

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

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

Наличие или же отсутствие таковых, можно отследить в том же универсальном отчете с настройкой:  

Одной из причин не закрытия себестоимости кроется в накопленных данных измерения регистра Себестоимость товаров - «Вид Запасов» ( «НСИ и администрирование – Финансовый результат и контролинг – Учет Товара – Обособленный учет себестоимости по видам запасов»), а именно в записях данного измерения сделанных первичными документами. Собственно мне думается идентично можно рассуждать и в отношении измерения Аналитика учета номенклатуры и его содержимым по сериям и характеристикам, если таковая детализация включена в системе.

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

Естественно, что решением данной проблемы – это пере проведение документов за весь период.

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

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

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

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

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

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

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

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

Под откатом будем понимать зачистку тех движений, которые сделал блок расчет себестоимости в обработке закрытия месяца. А технология работы расчета в erp интересная:  блок расчета себестоимости обслуживает 12 регистров,  и произведенные расчеты «дописывает» к имеющимся уже записям первичных документов. Такие записи имеют признак «расчет себестоимости» = Истина.

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

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

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

На первом этапе Стоимость товаров образуется по формуле:

(Стоимость начальный остаток + Стоимость прихода за период) / (количество нач. остаток + количество прихода за период).

Перемещения в данную формулу не входят, входят именно поступления, оприходования и тд.

Далее на полученное значение распределяются расходы по статьям с направлением на стоимость товара (например ТЗР).

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

Актуальность партий: не смотря на то, включен у вас партионный учет  или нет, и не смотря на то, что система имеет ряд чисто партионных регистров, например тот же «партии нзп (реквизит Документ источник и Документ Выпуска)», 1С ввела ноу-хау: рефакторинг партионного учета – оценка производится в целом за месяц, именно поэтому в системе теперь не надо соблюдать последовательность ввода документов! Главное что бы на начало и конец отчетного периода не было отрицательных сальдо по регистрам, например «Товары организаций», «Себестоимость товаров»....

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

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

Обслуживаемые регистры блоком РС:

  1. Движения Номенклатура Номенклатура
  2. Движения Номенклатура Доходы Расходы
  3. Прочие Расходы (кэш остатков)
  4. Прочие Доходы (кэш остатков)
  5. Себестоимость Товаров (кэш оборотов) (кэш остатков)
  6. Прочие Активы Пассивы
  7. Прочие Расходы Незавершенного Производства
  8. Закупки
  9. Финансовые Результаты
  10. Выручка И Себестоимость Продаж (кэш оборотов)

//во всех этих регистрах есть реквизит РасчетСебестоимости

  1.  Стоимость Товаров

//регистратором является только документ Расчета себестоимости

  1. Партии Производственных Затрат

//регистраторы Передача материалов в производство, Списание затрат на выпуск

  1. Партии незавершенного производства

//регистраторы Списание затрат на выпуск, Выпуск продукции

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

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

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

	// 2. Данное свойство позволяет очистить все старые расчетные движения перед новым расчетом - эмулирует первый расчет периода.
	// Следует использовать только для отладки, т.к. очистка может выполняться достаточно долго.
	ПараметрыРасчета.Отладка.Вставить("ОчищатьСтарыеДвижения", 		   Ложь);

- это и есть откат РС если установить значение параметра Истина. Я же оставляю в значении ложь так как написала свой Откат РС.

    // Многопоточная запись (если запущено не в файловой ИБ и не из регламентного задания)
	// Стабильность многопоточной записи на разном железе зависит от сочетания нескольких факторов:
	// - количества активных фоновых заданий (чем больше заданий, тем больше надо памяти для сервера Предприятия)
	// - количества движений, записываемых одним заданием (чем больше движений - тем больше памяти надо этому заданию)
	// - одновременности выполнения записи одного регистра разными заданиями (чем больше заданий пишет один регистр,
	//тем больше вероятность возникновения ошибок, например, "Lock request time out period exceeded")
	ПараметрыРасчета.Вставить("МаксимальноеКоличествоФЗ",
		?(ОбщегоНазначения.ИнформационнаяБазаФайловая()
     	ИЛИ ПредварительныйРасчет, 			   			   1, 5)); // максимальное количество одновременно выполняемых заданий записи

В моем случае система обрушалась с ошибкой форматного потока, поэтому я привела данный параметр к значению файловой базы (то есть вместо 5 поставила 1). Что еще мне это дало – я всегда работаю во время закрытия с журналом регистрации и при отключенном многопоточном режиме, можно увидеть последовательность закрытия и расчета регистров, а так же увидеть ошибки и во время остановить закрытие.

    // 4. Для анализа решения СЛУ можно сохранить таблицы, используемые при решении СЛУ, в виде файлов mxl в указанный каталог.
	// Если имя каталога не заполнено, сохранение таблиц не выполняется.
	//ПараметрыРасчета.Отладка.Вставить("КаталогДляСохраненияДанныхСЛУ", ""); //1С код
    ПараметрыРасчета.Отладка.Вставить("КаталогДляСохраненияДанныхСЛУ", "C:\РешениеСЛУ"); //код мной подправленный

P/S:   

1. Как возникло понятие «многопоточность фоновых заданий»:

Предстояло закрытие 13 месяцев и как было отмечено выше, база обладала большим документооборотом: на одно только отмена / проведение документов перемещений за один месяц уходило двое суток. Так вот, при закрытии месяца система почему то падала с ошибкой «Ошибка формата потока», что приводило меня в шок. Тестирование и исправление информационной базы ( все пункты входящие в него были сделаны)  не давали результатов. Тогда начинаю сильно дружить с журналом регистрации: отслеживаю на каком именно этапе идет обрушение системы. Выяснилось: на этапе работы блока расчета себестоимости, а именно при записях рассчитанных данных РС в  обслуживаемые регистры. При этом в журнале все «скакало и прыгало» - то есть было видно что отработка идет параллельно нескольких регистров и собственно понять что за чем и в какой последовательности считается / записывается не представлялось возможным, как не представлялось возможным понять на каком регистре систему выбивает (на данный этапе вопрос мучал только – таблица какого регистра в sql «покалечена»? ). Тогда начинаю сильно дружить с общим модулем Расчета Себестоимости, буквально разбирая его на косточки. Вот в этом то процессе (и спасибо 1с за щедрые комменты в модуле)  и был найден параметр РС, который определял многопоточность фоновых заданий. Что это значит – это значит  мы   говорим  системе, что она должна считать и записывать сразу несколько обслуживаемых регистров или все таки по одному последовательно.  Поразмыслив и оперевшись на высказывание «тише едешь – дальше будешь» привожу данный параметр к значению файловой базы – то есть в место значения 5 ставим 1. Собственно сделано это было с целью отследить на каком регистре система рушиться, а в итоге отработка блока РС прошла полностью без обрушений! При этом был получен еще один плюс: теперь в журнале регистрации можно было последовательно увидеть что и за чем считается и пишется расчетом и как практика показала это потом очень пригодилось.

2. Как вышла на ошибку в данных по видам запасов.

Как уже было сказано выше, по закрытии месяца имелись ошибки по расчету себестоимости: наличие суммовых остатков по нулевому количеству. Беру одну из позиций (работу ведем с универсальным отчетом по регистру себестоимость товаров с разворотом по регистратору), такую в которой у меня был остаток на начало месяца по количеству и сумме и весь этот количественный остаток со склада передавался в производство (просто удачный случай для отслеживания получения чистой суммы). По смыслу уйти в производство  данная позиция должна была с суммовым показателем в себестоимости равным начальному суммовому остатку, но у меня она уходила по такой сумасшедшей стоимости что ну просто безобразие! Начинаю размышлять : что могло увеличить стоимость материала? Это могли быть дополнительные расходы имеющие направление распределения на стоимость товара. Тогда начинаю разборки таковых статей и на что они распределились через тот же универсальный отчет, но уже по регистру партии прочих расходов, с отбором  

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

В данном модуле работа блока РС заключена в процедуре РассчитатьСебестоимостьПоГруппеОрганизаций(). В ней ключевыми до непосредственного решения СЛУ являются функции (выделены жирным шрифтом):

		//// Этап 3.2
		// Формирует временную таблицу ВТДопРасходов (для фактического расчета она пустая)
		//- это распределение поступивших расходов по статьям на себестоимость товара
		РаспределитьРасходыНаСебестоимость(ПараметрыРасчета);

		//// Этап 3.3
		// Формирует временную таблицу ВТВозвраты (для фактического расчета она пустая)
		// Формирует движения по регистрам (если выполняется фактический расчет):
		// - СебестоимостьТоваров
		// - ВыручкаИСебестоимостьПродаж
		// - ПрочиеРасходы
		// - ПрочиеДоходы
		// - ДвиженияНоменклатураДоходыРасходы
		// - ДвиженияНоменклатураНоменклатура
		СкорректироватьСтоимостьВозвратовПрошлыхПериодов(ПараметрыРасчета);

        //++ НЕ УТ
		// Этап 3.4
		// Формирует временные таблицы ВтАналитикаУчетаРасходов, ВтНезавершенноеПроизводство
		РаспределитьПрочиеРасходыНезавершенногоПроизводства(ПараметрыРасчета);

		// Этап 3.5
		// Формирует временную таблицу ВтПередачиТоваров
		СформироватьТаблицуПередачМеждуОрганизациями(ПараметрыРасчета);
        // Этап 3.6
		// Формирует временную таблицу ВтУзлыКорректировки
		СформироватьУзлыКорректировкиСписанияСтоимости(ПараметрыРасчета); 
       //Является ключевым моментом в расчете и главное себ-ть на начало периода
		Если ПараметрыРасчета.КоличествоУзлов <> 0 Тогда
			// Этап 3.7
			// Формирует временные таблицы ВтТаблицаРешений, ВтПеремещенияСписания
			РассчитатьСтоимость(ПараметрыРасчета, Ложь);
			
			// Этап 3.8
			// Формирует движения по регистрам:
			// - СтоимостьТоваров
			ЗарегистрироватьСтоимость(ПараметрыРасчета, Ложь);
		
		КонецЕсли;

……………………….. и т.д….

Сконцентрировать внимание стоит на процедурах :

СформироватьУзлыКорректировкиСписанияСтоимости  - здесь формируется временная таблица узлов корректировки на базе которой будет сформирован запрос в процедуре РассчитатьСтоимость и от туда результат данного запроса уйдет в процедуру РешитьСЛУ, в которой, при прочтении была обнаружена возможность задействовать параметр по сохранению произведенных расчетов во внешний файл:

// 4. Для анализа решения СЛУ можно сохранить таблицы, используемые при решении СЛУ,
// в виде файлов mxl в указанный каталог.  
//Если имя каталога не заполнено, сохранение таблиц не выполняется.

ПараметрыРасчета.Отладка.Вставить("КаталогДляСохраненияДанныхСЛУ", "C:\РешениеСЛУ");  
// значение C:\РешениеСЛУ поставила я, в 1с коде параметр не заполнен  .

Именно это сохранение во внешний файл очень пригодилось!

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

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

Ну Хорошо. Вернее плохо..

Тогда во всех пакетах запроса в место

*.ВидЗапасов                    КАК ВидЗапасов,  

//(* - имя таблицы, на которой построен пакет)
//ставлю :

Справочник.ВидЗапасов.ПусстаяСсылка КАК ВидЗапасов

//(у меня нет учета по виду запасов, значит он д.б. пустой)

запускаю на отработку процедуры, получаю внешний файл и вот оно чудо: стоимость по проблемной позиции получается = (стоимость начальный остаток /  количество начальный остаток). (напомню по проблемной позиции не было прихода в отчетном периоде а был только начальный остаток, а если бы был приход то считайте по формуле: (стоимость начальный остаток + стоимость прихода/ количество начальный остаток + количество приход)).

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

3. Как возникла мысль об откате себестоимости

«Ну Все, сколько можно!» сказала я себе после очередного не удачного закрытия, исправления ошибок первички, и отмене / проведения документов за месяц, занимающего несколько суток, нервов и т.д. и т.п. Села и написала обработку – кнопочку по откату себестоимости. В общем и в основном, задавшись вопросом «как же сделать так, что бы не дергать все время первичку при неудачных закрытиях», вооружившись крепкой дружбой с журналом регистрации, в котором путем отслеживания последовательности расчетов и изучением протоколов (спасибо 1с за это!),  был определен круг регистров, записи в которые дописывает РС, с соответствующим признаком и как следствие их надо просто очистить. К 11 регистрам, указанным в протоколе добавила еще отмену / проведение документов распределения расходов на себестоимость продукции, для сброса всех движений сделанных ими, а так же зачистку регистра Партии НЗП, что бы РС снова все в нзп пересчитал – ну так на всякий случай. Метить документы с подчищенными движениями РС к отражению, как было доказано опытным путем, не надо – РС сам делает к отражению документы, в которых дописывает движения. Таким образом, исходя из наличия большого документооборота, откат РС стал занимать всего лишь 3- 4 часа, а полное  закрытие месяца (все пункты процедуры закрытия месяца)  в пределах 12 часов, из которых блок РС занимает так же около 3-4 часов.

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

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

20.08.2024    1733    PROSTO-1C    0    

18

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1731    Vidz    0    

11

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

24.06.2024    1101    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4881    Serg2000mr    32    

108

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

11.04.2024    1054    tango    5    

3
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 1cNike 209 16.02.17 09:25 Сейчас в теме
Спасибо за статью, узнал кое-что новое для себя.
2. malvasia 18.02.17 13:57 Сейчас в теме
Спасибо за обозрение.
Сам уже в эту сторону полез. Но, вот, обнаружил эту публикацию, которая убедила меня в этом направлении поработать.
Действительно, поведение с перепроведением в системе довольно мутное и не однозначное. Уже не знаю, что с этим делать.
Вопрос по закрытию.
Можно-ли все регистры перед закрытием месяца просто почистить? Или какие, конкретно, можно очистить в моем случае?
Ну и потом просто все документы перепровести.
Руки чешутся. Но пока последствий этого действия еще не представляю. Какие проблемы в связи с этим могут появится.
Ситуация такая
Пока еще на этапе ввода всех остатков и ведется ввод первички более месяца. Пока попытки закрытия успеха не имеют.
Краснота и все такое.
И еще.
Операций по производству нет. То есть, блок производства отключен.
3. kristina 168 20.02.17 01:40 Сейчас в теме
(2) Здравствуйте!
1. Необходимо четко понять по каким регистрам идут минуса: например через тот же универсальный отчет, выбирая нужный и указывая в качестве основной таблицы "Остатки и обороты" (возьмите несколько проблемных номенкл. позиций и по ним прогоните отчеты) и например регистры
а) Товары организаций - не должно быть минусового остатка на конец месяца
б) Себестоимость товаров - - не должно быть минусового остатка на конец месяца в количественном отношении до РС.
в) есть ли у вас партионный учет? если да то надо смотреть синхронность срабатывания регистров "Себестоимость товаров" и "Партии товаров организации"..
г) Прочие расходы нге должны иметь остатков на конец периода после сделанного РС, кроме расходов будущих периодов...
Посмотрев отчеты сделайте для себя вывод: а) действительно ли ошибки в первичке? то есть количества реально не хватает? какие то документы / остатки не до ввели? или же б) вручную те документы которые образуют минуса отменить и снова провести - снова переформ. отчет - уходит минус?. Обычно какой то из этих вариантов дает ответ: то есть либо действительно не до ввели приход или же отмена / проведение документа лечит ситуацию...
Так же при формировании отчетов выводите в него: характеристики / серии / виды запасов если таковой учет включен. Может включали и потом отключили и в регистрах где то сохранились записи? - тогда напишите свою обработку которая должна будет вывести в табличную часть обработки те записи по которым данная аналитика заполнена - опять же надо четко понять по каким регистрам идет перекос и есть ли в нем данное измерение...
Перед анализом прикиньте сколько у вас на тек момент ориентировочно документов введено? может по времени будет проще вам просто документы перепровести? В моем случае просто было 13 месяцев в каждом в среднем 60 тыс. документов, поэтому я писала свою обработку которая выцепит именно заполненные записи, а в вашем случае может проще будет документы перепровести....

Далее все эти телодвижения лучше делать:
а) на копии когда пользователи не дергают первичку и цифры в итоге не скачут.
б) на фоне отката а именно сделать зачистку записей с Реквизитом "Расчет себестоимости" = Истина по регистрам накопления:
1. Движения Номенклатура Номенклатура
2. Движения Номенклатура Доходы Расходы
3. Прочие Расходы
4. Прочие Доходы
5. Себестоимость Товаров
6. Прочие Активы Пассивы
7. Прочие Расходы Незавершенного Производства
8. Закупки
9. Финансовые Результаты
10. Выручка И Себестоимость Продаж
11. Регистру сведений Стоимость Товаров - его регистратором является только документ Расчет себестоимости - для этого достаточно сам РС отменить и провести.
(если вы говорите что блока производства нет - то регистры Партии Производственных Затрат и Партии незавершенного производства трогать вам не надо)

Процедуру по откату рекомендую написать свою .

2. если в пункте 1. анализируя отчеты по регистрам, на фоне отката, понимаете что все таки ошибки уходят при отмене проведении первички, то рекомендую написать свою обработку . Еще раз напомню в ерп под "пере проведением" надо четко понимать что только последовательно сделанные над документом Отмена а потом Проведение обновят записи в регистрах, в противном случае в записях регистра ничего не изменится и надеяться на то что РС это сделает не стоит! Последовательность какие виды документов за какими вы будете это делать не важны - помним про рефакторинг партионного учета - главное это конечные остатки.Так же При отмене проведении документов учитывать надо что доки могут иметь ручные проводки
их надо в обработке учесть и не сносить а сохранять. ручные увидеть можно в регистре ОтражениеДокументовВРеглУчете с измерением Статус = Отражен вручную или Требует подтверждения..

После можно приступать к закрытию.

3. Рекомендую включить в регламенте "Предворительный расчет себестоимости", правда если он у вас не включен на тек момент то прошлые периоды он не обсчитает - то есть он работает только на текущий отчетный период. Для обсчета прошлых я писала свою процедуру:
Если Не Значениезаполнено(Объект.РСТ) Тогда
возврат;
КонецЕсли;
Об = Объект.РСТ.ПолучитьОбъект();
Об.Дата = КонецМесяца(Объект.Период.ДатаОкончания);
Об.Организация = Объект.Организация;
Об.ПредварительныйРасчет=Ложь;
Об.МетодОценки=Перечисления.МетодыОценкиСтоимостиТоваров.СредняяЗаМесяц;
Об.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Попытка
Объект.РСТ.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение); //возводим в статус проведен
РасчетСебестоимости.РассчитатьВсе(Об.Дата,Ложь,Об.Организация,Ложь,); //не предворительный расчет
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


4. Еще Рекомендую к прочтению очень хорошие статьи (мне было полезно например): Учёт себестоимости в УТ 11 - http://infostart.ru/public/169703/ и Принципы учета номенклатуры в конфигурациях УТ11 и ERP. Ошибки расчета себестоимости - http://infostart.ru/public/441765/..

Успехов Вам!
RibD; user811769; olen_ka; bdennis; корум; AlPi; buch-a; СергейК; +8 Ответить
4. Suxar 07.04.17 19:29 Сейчас в теме
сделать зачистку записей с Реквизитом "Расчет себестоимости" = Истина по регистрам накопления:

А не проще ли было список регистров получить так:
	МассивРегистровСебестоимость = Новый Массив;
	
	Для Каждого МетРегистр Из Метаданные.РегистрыНакопления Цикл
		Для каждого МетРеквизит из МетРегистр.Реквизиты Цикл
			Если МетРеквизит.Имя = "РасчетСебестоимости" Тогда
				МассивРегистровСебестоимость.Добавить(МетРегистр.Имя);
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
Показать
5. AlPi 70 10.05.17 16:55 Сейчас в теме
От себя могу добавить, что еще есть один вариант проблемы, когда остатки и обороты у регистра себестоимости не идут. Например, у нас на 1 января на 00:01 по продукции остаток был, а проверяешь обороты они пустые. Нигде никакой отчет эту ситуацию не покажет, только через прямой запрос. Понятно, обработка "Предварительный расчет себестоимости" сообщает о отрицательных остатках. Лечится такая ситуация очень просто: Тестирование и исправление базы -> Пересчет итогов.

Удачи.
37. Xershi 1555 13.10.24 00:11 Сейчас в теме
(5) было такое на 2.1. С переходом на 2.2 больше не встречал.
6. kristina 168 15.05.17 02:36 Сейчас в теме
Совершенно с Вами согласна - тоже приходилось сталкиваться с таковой проблемой, только лечением я занималась через режим предприятия : НСИ и администрирование - Поддержка и обслуживание - Управление итогами и агрегатами, при открытии формы Управление итогами и агрегатами в правом нижнем углу "полные возможности" .
7. PerlAmutor 155 07.06.17 05:25 Сейчас в теме
Поправьте на "ПустаяСсылка" с одним "С".
Справочник.ВидЗапасов.ПусстаяСсылка КАК ВидЗапасов
8. ifilll 03.07.17 15:48 Сейчас в теме
Спасибо, статья полезная.

Перепроведение в ERP это писец.
9. andreymazurovdwine 04.08.17 14:34 Сейчас в теме
Добрый день,
Отличная статья - очень пригодилась! Спасибо автору

Но.. остался еще вопрос - по очистке Регистров с Реквизитом "Расчет себестоимости" = Истина
Запрос легко строится и такие Движения находятся, но я сомневаюсь как их "Почистить", чтобы не удалить остальные "нужные" движения.

В принципе, можно отменить и пере провести документы..

Плюс в ERP 2.2. более нет такой возможности использовать в Функции ИнициализироватьПараметрыРасчета

ПараметрыРасчета.Отладка.Вставить("ОчищатьСтарыеДвижения", Ложь);

Если кто подскажет фрагмент кода для очисти регистров с "Расчетом себестоимости" = Истина , буду очень признателен.
Своего опыта по коррекции Движений не хватает.
36. jmi 2 14.07.23 15:30 Сейчас в теме
(9) В форме закрытия выбираем Настройки-> Настройка параметров закрытия -> <Общие параметры всех операций->Режим отладки расчета ставим да и сохраняем
Далее
Опять Настройки - > Настройка параметров закрытия ...->Распределение затрат и расчет себестоимости-> Отладка расчета-> Перед расчетом очищать старые расчетные движения ставим да
10. andreymazurovdwine 04.08.17 19:51 Сейчас в теме
Этот фрагмент теперь перенесен в Общий модуль УниверсальныеМеханизмыПартийИСебестомости

ПараметрыРасчета.Отладка.Вставить("ОчищатьСтарыеДвижения", Ложь);

Тем не менее пока не понятно передается ли структура "Отладка", по-моему стандартно - нет. ПараметрыОтладки = Неопределено
Ioexpert; +1 Ответить
11. vvr908 449 17.08.17 20:23 Сейчас в теме
(10) Параметры отладки, похоже, все-таки передаются, т.к. по факту они отрабатывают.
Во всяком случае, сохранение таблиц через "КаталогДляСохраненияДанныхСЛУ" работает.
Жаль только, что в пользовательском режиме воспользоваться этими опциями нельзя, нужно обязательно через конфигуратор включать их.
Нет ли где-нибудь более подробного обзора этих отладочных опций? Там, конечно, в коде неплохие комментарии, но все-таки хотелось бы подробностей... например, про опцию "ОдинЭтап" - как она работает и где именно указать, какой этап интересует?
12. bdennis 27.01.18 14:11 Сейчас в теме
Огромное спасибо автору статьи. Ваша работа сэкономила мне несколько дней жизни, позволив закрыть месяц в ситуации, когда это казалось практически невозможным.
Ioexpert; +1 Ответить
13. Tallas 04.10.18 13:44 Сейчас в теме
Инициировать полный пересчет себестоимости можно добавив вручную запись в регистр сведений "Задания к расчету себестоимости". Записи присваиваем следующий порядковый номер, нужный год-месяц и целевую Организацию. "Старые" документы расчета себестоимости и распределения затрат нужно заранее удалить.
32. beard1 26.07.22 14:23 Сейчас в теме
(13)
Инициировать полный пересчет себестоимости можно добавив вручную запись в регистр сведений "Задания к расчету себестоимости". Записи присваиваем следующий порядковый номер, нужный год-месяц и целевую Организацию. "Старые" документы расчета себестоимости и распределения затрат нужно заранее удалить.


Доброго! Все первичные документы будут пересчитаны? Не могу понять... Что-то считает, но вроде не все, а как полноту проверить неведомо (
Предположим ситуация:
КА 2.4.13 одна организация в базе без изысков учета
Партионный учет 2.2. с самого начала ведения учета
Ввод остатков с отражением по себестоимости 31.07.2021
По неизвестным ныне причинам, наверное, хотелось как лучше, опция "Учет себестоимости товаров ведется с" была установлена 01.10.2021
Заданий к расчету себестоимости за 08 - 09.2021 нет

"хотелка" рассчитать себестоимость за 08 - 09.2021

что сделал
удалил все документы "Распределение расходов"
удалил все документы "Расчет себестоимости"

создал вручную задание к расчету себестоимости,
в задании указал
Месяц 08.2021,
Организация
Номер задания

поле Документ оставил пустым

запустил расчет себестоимости в закрытии месяца за 08.2021... получил
документ расчета себестоимости за 08.2021
задание к расчету себестоимости на 09.2021

вопросы
проделанных шагов достаточно для полного пересчета себестоимости за 08.2021?
есть ли необходимость перепроведения документов за 08 - 09.2021? штатной обработкой достаточно? перепровел несколько документов, но задания к расчету себестоимости не сформировались автоматом, только после отмены проведения с последующим проведением, но надо ли?

терзают смутные сомненья, развейте, пожалуйста.
спасибо!
14. Ioexpert 01.04.19 21:43 Сейчас в теме
Пишите еще, очень годный контент!
15. Xershi 1555 01.04.19 22:56 Сейчас в теме
С версии ут 11.4.6 или уп 2.4.6 очень хорошо все закрывается если перейти на партионный учёт 2.2.
И помощник отлично в этом помогает!
16. kristina 168 02.04.19 11:28 Сейчас в теме
Дорогие коллеги! Спасибо всем за отклики и внимание! Прогресс не останавливается, все куда то движется и развивается, ну и мы как следствие тоже. Статья писалась в свое время и на тот момент на тот уровень erp . Суть статьи была раскрыть то с чем я столкнулась и в надежде, что это кому то пригодиться, кого то натолкнет на некие свои мысли, свои решения и разработки, понимание куда копнуть. Но раз вы сюда проваливаетесь значит что то все таки тяготит, а копать можно в разные стороны начиная с задвоения аналитик учета, у всех свои ситуации ... Желаю всем больших успехов и удачи в работе! Спасибо большое за ваши отклики и внимание! И еще раз терпения и успехов!
user1483428; grey.grouse; +2 Ответить
18. Xershi 1555 13.04.19 22:08 Сейчас в теме
(16) добрый вечер. Напишите что статья рассчитана на партионный учет 2.1 а он как известно очень глючный.
И наверное УП 2.2, если не 2.0.
Потому что как вы поняли ситуация координально изменилась.
Я вот прочитал, что вам пришлось сделать и подумал, что за дичь была раньше...
Думаю разработчики УП пришли к тому же мнению и все исправили.
17. frutty 123 13.04.19 18:18 Сейчас в теме
Если кто-то до сих пор использует эту статью для очистки данных, которые произвела процедура расчёта себестоимости, то в ERP 2.4.6 (возможно раньше) можно запустить клиент с параметром "/С РежимОтладки" и в настройка расчёта себестоимости появится дополнительный пункт, который позволить очистить старые данные, перед очередным расчётом.
AndreySchel; grey.grouse; moralex2k; mie24; Hamann2008; +5 Ответить
19. jn17 17.04.19 10:37 Сейчас в теме
(17)
можно запустить клиент с параметром "/С РежимОтладки" и в настройка расчёта себестоимости появится дополнительный пункт, который позволить очистить старые данные, перед очередным расчётом

А где можно увидеть этот дополнительный пункт, который позволит очистить старые данные?
Не могу найти...
20. frutty 123 17.04.19 14:19 Сейчас в теме
(19)
Прикрепленные файлы:
moralex2k; +1 Ответить
21. jn17 17.04.19 16:11 Сейчас в теме
(20) ну да, а дальше какой из пунктов позволит очистить старые данные перед очередным расчетом себестоимости?
Прикрепленные файлы:
22. frutty 123 17.04.19 19:44 Сейчас в теме
(21) я не знаю как вам ещё более подробнее описать, если только за вас сделать.
23. jn17 18.04.19 09:05 Сейчас в теме
(22) Зачем же так. Режим отладки запускали некорректно. Все нашлось. Спасибо
25. mie24 2 28.05.20 10:34 Сейчас в теме
(23)
м отладки запускали некорре

Подскажите, пожалуйста, где "все нашлось" и в чем была ошибка запуска режима отладки?
26. mie24 2 28.05.20 10:38 Сейчас в теме
(25) Как раз и у меня все получилось.
Ошибка запуска режима отладки - в строке "/C РежимОтладки" С- должна быть английская. Тогда после запуска предприятия в Параметрах операции закрытия месяца выводятся дополнительные ранее скрытые настройки. ТАм все нужное есть.
Прикрепленные файлы:
1274gmar; AlX0id; eeeio; +3 Ответить
24. vse-puchcom 19.04.19 12:46 Сейчас в теме
сталкивался с такой проблемой
но у нас ситуация такая была
1) 1с розница 2.2
2) нужно было настроить отчет валовой прибыли
3) при перепроведении документов полезли минуса
4) проблема была в ордерной схеме (она была включена не после начала работы в 1с а где то через 2 месяца вот)
5) перепроводили документы через групповое проведение документов в меню все функции
по этому все переделывали вручную то включая то отключая орденую схему
6 перепроводили дкумуенты:
перемещения все
возвраты
приемка и отгрузка товара( если использовалась ордерная схема)
вообщем все что связанно с движением товара
НО ПЕРЕД ПРОВЕДЕНИЕМ ОБЯЗАТЕЛЬНО НАДО СДЕЛАТЬ КОПИЮ БАЗЫ
27. Vanch90 24.07.20 12:13 Сейчас в теме
Добрый день.
Столкнулся с такой проблемой, что в регистр себестоимости пишутся неверные количественные данные.
Если распровести и провести то встает нормально, или почистить регистр себестоимости то тоже норм.
Пробовал на копиях воссоздать такой случай, но такого не происходит. В чем может быть проблема? кэш может быть?
28. 1CKEBO 21.11.20 20:48 Сейчас в теме
(27) Если при чистом проведении все хорошо, то, очевидно, при перепроведении в исходные данные для проведения попадают существующие движения себестоимости, либо некорректно обрабатывается предварительное заполнение документа (обработчик "перед записью"). Отладка в помощь!
29. Vanch90 22.11.20 09:15 Сейчас в теме
(28)в большинстве случаев была такая ситуация (по журналу регистрации определил). Бух ставит расчёт себестоимости - > в этот момент берет и перепроводит документ из этого месяца - > расчёт заканчивается с ошибкой, в итоге в документе одно количество, а в движениях восстанавливается, которое было до закрытия.
34. user1483428 16.08.22 16:56 Сейчас в теме
(28)
вующие движения себестоимост

КА 2.5.7
Столкнулись с тем, что при проведении документа движения по количеству в себестоимости одни, а после расчета себестоимости - количество с минусом меняется на положительное значение, или было просто 2 шт, стало +2,+1,-1 что тоже конечно равно 2м, но почему начинает дробиться количество?
30. 1CKEBO 26.11.20 11:21 Сейчас в теме
Ясно, спасибо за комментарий. Очередной не очевидный нюанс.
31. user603532_fan_club_chelsea 16.11.21 08:27 Сейчас в теме
Здравствуйте, есть два вопроса:
1. Почему в Июне 2020г. у меня в закрытии все время появляется задание "Распределение НДС", хотя месяц закрылся корректно, все галочки были зеленные. Но как только рассчитаю следующий и последующие месяца, либо даже просто закрою или открою обработку закрытия месяца, как у меня снова программа требует распределить ндс. Пока просто задание удаляю и делаю закрытие дальше... отчего глюк не понимаю;
2. Почему в документах ГТД в регистры себестоимости и еще парочку, доп.расходы распределяются на товары каким-то "ур%дским" способом. У меня записей в регистре появляется от 30 000 до 85 000. Думал это из-за распределения доп.расходов на выбывшие товары.
а) Отключил эту настройку ("Распределение дополнительных расходов по выбывшим товарам"), чуда не произошло... Все также по 30-80 тыс. записей в регистрах.

б) Думал это из-за не указанной "Аналитики расходов", но даже если указать, все равно по 8-10 тыс. записей в регистрах, при 100-400 строк товаров в документе.

в) Пробовал, вместо "приобретения товаров и услуг" указывать "заказы клиента" в аналитике расходов, результат тот же... и ждешь пока закрытие месяца рассчитается в течении 1,5-3 суток...

г) Проверял на дубли "Ключи аналитики", дублей обработки не нашли, ни типовая, ни скачанная с инфостарта.

Если кто знает куда копать, подскажите....не знаю уже что еще пробовать...как ускорить закрытие месяца...
33. user1483428 16.08.22 16:55 Сейчас в теме
КА 2.5.7
Столкнулись с тем, что при проведении документа движения по количеству в себестоимости одни, а после расчета себестоимости - количество с минусом меняется на положительное значение, или было просто 2 шт, стало +2,+1,-1 что тоже конечно равно 2м, но почему начинает дробиться количество?
35. Serg243 14.04.23 10:20 Сейчас в теме
Спасибо суперская статья! Себестоимость вообще абзац, особенно когда этапы производства переходят в другие месяца и документы производства делают странные люди...
Оставьте свое сообщение