При регулярном переносе документов из внешних учетных систем (например, Альфа-Авто) в конфигурации 1С:Управление производственным предприятием (УПП) или 1С:Комплексная автоматизация 1.1 (КА 1.1) бухгалтеры нередко сталкиваются с ситуацией, когда по результатам закрытия месяца и расчета себестоимости в расходных документах отсутствуют проводки по списанию стоимости товаров. Разберем подробно, почему это происходит, как штатно выявить такие документы и как правильно организовать контроль остатков при автоматическом обмене данными.
Выясним причину отсутствия суммовых списаний в зависимости от применяемого в учетной политике режима учета затрат:
Расчет себестоимости выпуска. Если на момент списания или на конец месяца по позиции образовался отрицательный остаток (или нарушилась аналитика: склад, номенклатурная группа, статус партии), СЛАУ (система линейных алгебраических уравнений) не может вычислить средневзвешенную стоимость, и сумма списания остается нулевой.Проанализируем, почему при загрузке документов из внешних баз стандартные сообщения об ошибках проведения и нехватке остатков не всегда отображаются пользователю:
ОбменДанными.Загрузка = Истина. В этом режиме платформа отключает исполнение большинства проверок в модулях объектов, а также блокирует интерактивный вывод сообщений пользователю.Рассмотрим, с помощью каких отчетов бухгалтер может оперативно получить реестр проблемных позиций без доработки конфигурации.
Для партионного учета:
Ведомость по партиям товаров на складах.Номенклатура, Склад, Документ движения (регистратор).Количество (Расход) > 0 И Стоимость (Расход) = 0 — это позволит вывести все документы, где товар списан количественно, но сумма себестоимости не рассчитана.Количество (Конечный остаток) < 0.Для режима РАУЗ:
Ведомость по учету затрат по регистру накопления «Учет затрат (бухгалтерский и налоговый учет)».Аналитика вида учета, Номенклатура, Документ движения.Количество (Расход) > 0 И Стоимость (Расход) = 0 после проведенного расчета себестоимости.Количество (Конечный остаток) < 0.Попытка проверять остатки в процессе загрузки каждого отдельного документа часто приводит к ложным ошибкам из-за несоблюдения хронологической последовательности пакета. Оптимальный подход заключается в постобменной валидации.
Разберем по шагам правильную организацию процесса:
ОбменДанными.Загрузка = Истина, фиксируя ссылки на проведенные документы и список затронутой номенклатуры в отдельный массив.00:00:01), а расходных — на вторую половину дня.Посмотрим на пример кода постобменной проверки остатков:
// Формируем список измененной номенклатуры и проверяем остатки на момент документов
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаДокументов.Ссылка КАК Документ,
| ТаблицаДокументов.Дата КАК Период,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Склад КАК Склад,
| ТаблицаТоваров.Количество КАК Количество
|ПОМЕСТИТЬ ВТ_ТоварыКПроверке
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаТоваров
|ГДЕ
| ТаблицаТоваров.Ссылка В(&МассивЗагруженныхДокументов)
|;
|
|ВЫБРАТЬ
| ВТ.Документ,
| ВТ.Номенклатура,
| ВТ.Склад,
| ВТ.Количество КАК КоличествоВДокументе,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе
|ИЗ
| ВТ_ТоварыКПроверке КАК ВТ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ГраницаПроверки,
| Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура ИЗ ВТ_ТоварыКПроверке)) КАК ТоварыНаСкладахОстатки
| ПО ВТ.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
| И ВТ.Склад = ТоварыНаСкладахОстатки.Склад
|ГДЕ
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) < 0";
Запрос.УстановитьПараметр("МассивЗагруженныхДокументов", МассивЗагруженныхДокументов);
Запрос.УстановитьПараметр("ГраницаПроверки", Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая));
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Отрицательный остаток по номенклатуре: " + Выборка.Номенклатура +
" на складе: " + Выборка.Склад +
" в документе: " + Выборка.Документ);
КонецЦикла;
КонецЕсли;
Такой подход исключает ложные срабатывания во время процесса загрузки и предоставляет бухгалтеру и системному администратору точный список документов, требующих оперативного исправления в базе-источнике.