При ведении учета производственных услуг и работ в программе «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с ситуацией: на основании выставленного документа Счет покупателю создается и проводится документ Оказание производственных услуг (Акт об оказании производственных услуг), однако статус отгрузки в счете остается в значении «Не отгружен». В то же время при оформлении стандартного документа Реализация (акт, накладная, УПД) статус счета сразу автоматически переходит в состояние «Отгружен».
Разберем детально, почему так происходит в типовой конфигурации, выясним технические причины такого поведения программы и рассмотрим все возможные варианты решения этой задачи как для рядовых пользователей, так и для разработчиков 1С.
Проанализируем, как в типовом решении устроен механизм контроля состояний документов. В конфигурации за хранение информации об оплате и отгрузке отвечает служебный регистр сведений СтатусыДокументов (в ряде версий — СостоянияДокументов).
При проведении первичных документов вызываются процедуры общего модуля СтатусыДокументов. Однако логика работы процедуры ПодготовитьТаблицуСтатусовОтгрузкиПоСчетам и смежных механизмов жестко ориентирована на структуру документов реализации товаров и услуг:
РеализацияТоваровУслуг, АктВыполненныхРабот, а также розничные продажи. Документ АктОбОказанииПроизводственныхУслуг разработчиками 1С не включен в этот перечень.Оказание производственных услуг табличная часть содержит специфические реквизиты (плановую себестоимость, спецификации, счета учета затрат 20.01), структура которых отличается от типовой таблицы Услуги документа Реализация (акт, накладная). Из-за этого стандартная процедура сопоставления строк счета и факта отгрузки не отрабатывает.Рассмотрим подробнее варианты решения данной проблемы в зависимости от используемой версии программы и регламента ведения учета на предприятии.
Если используется базовая версия конфигурации или конфигурация находится на официальной поддержке без возможности изменения кода, самым простым решением является ручная установка статуса.
Разберем по шагам, как изменить статус счета:
Shift или Ctrl).Данный способ не требует доработок, но требует дополнительного контроля со стороны бухгалтера при большом объеме документов.
Часто документ Оказание производственных услуг выбирают только ради возможности автоматического списания материалов по спецификации на основании акта. Если распределение прямых затрат по плановой себестоимости через счет 20 не является критически важным, можно оптимизировать схему оформления:
Реализация (акт, накладная, УПД), введенным на основании документа Счет покупателю. При проведении реализации статус счета автоматически изменится на «Отгружен».Расход материалов (ранее Требование-накладная) с указанием номенклатурной группы и статьи затрат счета 20.01.Если на предприятии обязательно должен использоваться именно производственный акт, а программа работает в версии ПРОФ или КОРП, оптимальным решением будет создание расширения конфигурации (без снятия основной базы с поддержки).
Проанализируем пример доработки модуля проведения документа АктОбОказанииПроизводственныхУслуг. Нам необходимо перед формированием движений подготовить данные для регистра статусов, а затем записать их.
Посмотрим на пример кода, который внедряется в модуль проведения:
// В обработке проведения документа перед формированием движений:
Если Не ПроведениеСервер.ГрупповоеПерепроведение(ЭтотОбъект) Тогда
ТаблицаСтатусовСчетов = СтатусыДокументов.ПодготовитьТаблицуСтатусовОтгрузкиПоСчетам(
ПараметрыПроведения.РеализацияТаблицаДокумента,
НеОпределено,
ПараметрыПроведения.Реквизиты
);
КонецЕсли;
// В завершающей части проведения документа:
Если Не ПроведениеСервер.ГрупповоеПерепроведение(ЭтотОбъект) Тогда
СтатусыДокументов.СформироватьДвиженияСтатусовДокументов(
ТаблицаСтатусовСчетов,
ПараметрыПроведения.Реквизиты
);
КонецЕсли;
Для корректной работы алгоритма необходимо также проконтролировать следующие моменты:
ДокументСсылка.АктОбОказанииПроизводственныхУслуг должен быть добавлен или задействован реквизит СчетНаОплатуПокупателю.СвязанныеДокументы, чтобы документ отображался в дереве подчиненности счета.ПараметрыПроведения.РеализацияТаблицаДокумента при передаче в функцию общего модуля должна быть адаптирована (поля номенклатуры, количества и суммы должны совпадать с ожидаемыми модулем СтатусыДокументов), чтобы статус рассчитывался как полностью «Отгружен», а не «Частично отгружен».Таким образом, для решения проблемы отсутствия автоматической смены статуса счета можно использовать ручное изменение через меню журнала, перейти на стандартный документ реализации либо подключить расширение конфигурации, адаптирующее производственный акт под типовой механизм контроля статусов.